More tokens
This commit is contained in:
@@ -174,5 +174,43 @@ namespace VAR.ExpressionEvaluator.Tests
|
|||||||
|
|
||||||
Assert.AreEqual(t.Token, Token.EOF);
|
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,
|
Division,
|
||||||
Multiply,
|
Multiply,
|
||||||
Equals,
|
Equals,
|
||||||
|
ExclusiveEquals,
|
||||||
|
GreaterThan,
|
||||||
|
GreaterOrEqualThan,
|
||||||
|
LessThan,
|
||||||
|
LessOrEqualThan,
|
||||||
ParentesisStart,
|
ParentesisStart,
|
||||||
ParentesisEnd,
|
ParentesisEnd,
|
||||||
Keyword,
|
Keyword,
|
||||||
@@ -119,6 +124,35 @@ namespace VAR.ExpressionEvaluator
|
|||||||
case '=':
|
case '=':
|
||||||
NextChar();
|
NextChar();
|
||||||
_currentToken = Token.Equals;
|
_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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user