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
|
||||
{
|
||||
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;
|
||||
|
||||
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user