Tokenizer: interface and split enum to file.

This commit is contained in:
2019-12-01 02:51:05 +01:00
parent 3467697552
commit bdf675f592
4 changed files with 39 additions and 21 deletions

View File

@@ -0,0 +1,13 @@
namespace VAR.ExpressionEvaluator
{
public interface ITokenizer
{
Token Token { get; }
string Text { get; }
decimal? Number { get; }
void NextToken();
}
}

View 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,
}
}

View File

@@ -4,27 +4,7 @@ using System.Text;
namespace VAR.ExpressionEvaluator
{
public enum Token
{
EOF,
Plus,
Minus,
Division,
Multiply,
Equals,
ExclusiveEquals,
GreaterThan,
GreaterOrEqualThan,
LessThan,
LessOrEqualThan,
ParentesisStart,
ParentesisEnd,
Keyword,
String,
Number,
}
public class Tokenizer
public class Tokenizer : ITokenizer
{
private TextReader _reader;
private int _currentPosition = 0;

View File

@@ -45,7 +45,9 @@
<Compile Include="ExpressionStringNode.cs" />
<Compile Include="ExpressionNumberNode.cs" />
<Compile Include="IExpressionNode.cs" />
<Compile Include="ITokenizer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Token.cs" />
<Compile Include="Tokenizer.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />