From bdf675f592405055e51b269ee9b6d8f8bc5ea848 Mon Sep 17 00:00:00 2001 From: "Valeriano A.R" Date: Sun, 1 Dec 2019 02:51:05 +0100 Subject: [PATCH] Tokenizer: interface and split enum to file. --- VAR.ExpressionEvaluator/ITokenizer.cs | 13 +++++++++++ VAR.ExpressionEvaluator/Token.cs | 23 +++++++++++++++++++ VAR.ExpressionEvaluator/Tokenizer.cs | 22 +----------------- .../VAR.ExpressionEvaluator.csproj | 2 ++ 4 files changed, 39 insertions(+), 21 deletions(-) create mode 100644 VAR.ExpressionEvaluator/ITokenizer.cs create mode 100644 VAR.ExpressionEvaluator/Token.cs 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 @@ + +