Tokenizer: interface and split enum to file.
This commit is contained in:
13
VAR.ExpressionEvaluator/ITokenizer.cs
Normal file
13
VAR.ExpressionEvaluator/ITokenizer.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
namespace VAR.ExpressionEvaluator
|
||||||
|
{
|
||||||
|
public interface ITokenizer
|
||||||
|
{
|
||||||
|
Token Token { get; }
|
||||||
|
|
||||||
|
string Text { get; }
|
||||||
|
|
||||||
|
decimal? Number { get; }
|
||||||
|
|
||||||
|
void NextToken();
|
||||||
|
}
|
||||||
|
}
|
||||||
23
VAR.ExpressionEvaluator/Token.cs
Normal file
23
VAR.ExpressionEvaluator/Token.cs
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
namespace VAR.ExpressionEvaluator
|
||||||
|
{
|
||||||
|
public enum Token
|
||||||
|
{
|
||||||
|
EOF,
|
||||||
|
Plus,
|
||||||
|
Minus,
|
||||||
|
Division,
|
||||||
|
Multiply,
|
||||||
|
Equals,
|
||||||
|
ExclusiveEquals,
|
||||||
|
GreaterThan,
|
||||||
|
GreaterOrEqualThan,
|
||||||
|
LessThan,
|
||||||
|
LessOrEqualThan,
|
||||||
|
ParentesisStart,
|
||||||
|
ParentesisEnd,
|
||||||
|
Keyword,
|
||||||
|
String,
|
||||||
|
Number,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -4,27 +4,7 @@ using System.Text;
|
|||||||
|
|
||||||
namespace VAR.ExpressionEvaluator
|
namespace VAR.ExpressionEvaluator
|
||||||
{
|
{
|
||||||
public enum Token
|
public class Tokenizer : ITokenizer
|
||||||
{
|
|
||||||
EOF,
|
|
||||||
Plus,
|
|
||||||
Minus,
|
|
||||||
Division,
|
|
||||||
Multiply,
|
|
||||||
Equals,
|
|
||||||
ExclusiveEquals,
|
|
||||||
GreaterThan,
|
|
||||||
GreaterOrEqualThan,
|
|
||||||
LessThan,
|
|
||||||
LessOrEqualThan,
|
|
||||||
ParentesisStart,
|
|
||||||
ParentesisEnd,
|
|
||||||
Keyword,
|
|
||||||
String,
|
|
||||||
Number,
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Tokenizer
|
|
||||||
{
|
{
|
||||||
private TextReader _reader;
|
private TextReader _reader;
|
||||||
private int _currentPosition = 0;
|
private int _currentPosition = 0;
|
||||||
|
|||||||
@@ -45,7 +45,9 @@
|
|||||||
<Compile Include="ExpressionStringNode.cs" />
|
<Compile Include="ExpressionStringNode.cs" />
|
||||||
<Compile Include="ExpressionNumberNode.cs" />
|
<Compile Include="ExpressionNumberNode.cs" />
|
||||||
<Compile Include="IExpressionNode.cs" />
|
<Compile Include="IExpressionNode.cs" />
|
||||||
|
<Compile Include="ITokenizer.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Token.cs" />
|
||||||
<Compile Include="Tokenizer.cs" />
|
<Compile Include="Tokenizer.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
|||||||
Reference in New Issue
Block a user