diff --git a/VAR.ExpressionEvaluator/ITokenizer.cs b/VAR.ExpressionEvaluator/ITokenizer.cs new file mode 100644 index 0000000..ac5a737 --- /dev/null +++ b/VAR.ExpressionEvaluator/ITokenizer.cs @@ -0,0 +1,13 @@ +namespace VAR.ExpressionEvaluator +{ + public interface ITokenizer + { + Token Token { get; } + + string Text { get; } + + decimal? Number { get; } + + void NextToken(); + } +} \ No newline at end of file diff --git a/VAR.ExpressionEvaluator/Token.cs b/VAR.ExpressionEvaluator/Token.cs new file mode 100644 index 0000000..abc5f1b --- /dev/null +++ b/VAR.ExpressionEvaluator/Token.cs @@ -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, + } + +} diff --git a/VAR.ExpressionEvaluator/Tokenizer.cs b/VAR.ExpressionEvaluator/Tokenizer.cs index 7122724..57f9e8b 100644 --- a/VAR.ExpressionEvaluator/Tokenizer.cs +++ b/VAR.ExpressionEvaluator/Tokenizer.cs @@ -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; diff --git a/VAR.ExpressionEvaluator/VAR.ExpressionEvaluator.csproj b/VAR.ExpressionEvaluator/VAR.ExpressionEvaluator.csproj index 49d1738..6495ec0 100644 --- a/VAR.ExpressionEvaluator/VAR.ExpressionEvaluator.csproj +++ b/VAR.ExpressionEvaluator/VAR.ExpressionEvaluator.csproj @@ -45,7 +45,9 @@ + +