More tokens
This commit is contained in:
@@ -174,5 +174,43 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
|
||||
Assert.AreEqual(t.Token, Token.EOF);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Tokenizer__MoreTokens()
|
||||
{
|
||||
var testString = "= < > <= >= == === ";
|
||||
var t = new Tokenizer(new StringReader(testString));
|
||||
|
||||
// "="
|
||||
Assert.AreEqual(t.Token, Token.Equals);
|
||||
t.NextToken();
|
||||
|
||||
// "<"
|
||||
Assert.AreEqual(t.Token, Token.LessThan);
|
||||
t.NextToken();
|
||||
|
||||
// ">"
|
||||
Assert.AreEqual(t.Token, Token.GreaterThan);
|
||||
t.NextToken();
|
||||
|
||||
// "<="
|
||||
Assert.AreEqual(t.Token, Token.LessOrEqualThan);
|
||||
t.NextToken();
|
||||
|
||||
// ">="
|
||||
Assert.AreEqual(t.Token, Token.GreaterOrEqualThan);
|
||||
t.NextToken();
|
||||
|
||||
// "=="
|
||||
Assert.AreEqual(t.Token, Token.Equals);
|
||||
t.NextToken();
|
||||
|
||||
// "==="
|
||||
Assert.AreEqual(t.Token, Token.ExclusiveEquals);
|
||||
t.NextToken();
|
||||
|
||||
Assert.AreEqual(t.Token, Token.EOF);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,11 @@ namespace VAR.ExpressionEvaluator
|
||||
Division,
|
||||
Multiply,
|
||||
Equals,
|
||||
ExclusiveEquals,
|
||||
GreaterThan,
|
||||
GreaterOrEqualThan,
|
||||
LessThan,
|
||||
LessOrEqualThan,
|
||||
ParentesisStart,
|
||||
ParentesisEnd,
|
||||
Keyword,
|
||||
@@ -119,6 +124,35 @@ namespace VAR.ExpressionEvaluator
|
||||
case '=':
|
||||
NextChar();
|
||||
_currentToken = Token.Equals;
|
||||
if (_currentChar == '=')
|
||||
{
|
||||
NextChar();
|
||||
if (_currentChar == '=')
|
||||
{
|
||||
NextChar();
|
||||
_currentToken = Token.ExclusiveEquals;
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
case '>':
|
||||
NextChar();
|
||||
_currentToken = Token.GreaterThan;
|
||||
if (_currentChar == '=')
|
||||
{
|
||||
NextChar();
|
||||
_currentToken = Token.GreaterOrEqualThan;
|
||||
}
|
||||
return;
|
||||
|
||||
case '<':
|
||||
NextChar();
|
||||
_currentToken = Token.LessThan;
|
||||
if (_currentChar == '=')
|
||||
{
|
||||
NextChar();
|
||||
_currentToken = Token.LessOrEqualThan;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user