Tokenicer: Better identifier tokening.
This commit is contained in:
@@ -171,6 +171,17 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
Assert.AreEqual(50m, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Variables__Var1DivideVar2()
|
||||
{
|
||||
EvaluationContext evaluationContex = new EvaluationContext();
|
||||
evaluationContex.SetVariable("_v1", 100);
|
||||
evaluationContex.SetVariable("$v2", 20);
|
||||
string expression = "_v1 / $v2";
|
||||
object result = Parser.EvaluateString(expression, evaluationContex);
|
||||
Assert.AreEqual(5m, result);
|
||||
}
|
||||
|
||||
#endregion Variables
|
||||
|
||||
#region Funcitions
|
||||
|
||||
@@ -90,9 +90,9 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Tokenizer__Keywords()
|
||||
public void Tokenizer__Identifiers()
|
||||
{
|
||||
var testString = "null true false";
|
||||
var testString = "null true false _$variable1 $variable2";
|
||||
var t = new Tokenizer(new StringReader(testString));
|
||||
|
||||
// "null"
|
||||
@@ -110,6 +110,16 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
Assert.AreEqual(t.Text, "false");
|
||||
t.NextToken();
|
||||
|
||||
// "_$variable1"
|
||||
Assert.AreEqual(t.Token, Token.Identifier);
|
||||
Assert.AreEqual(t.Text, "_$variable1");
|
||||
t.NextToken();
|
||||
|
||||
// "$variable2"
|
||||
Assert.AreEqual(t.Token, Token.Identifier);
|
||||
Assert.AreEqual(t.Text, "$variable2");
|
||||
t.NextToken();
|
||||
|
||||
Assert.AreEqual(t.Token, Token.EOF);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user