2 Commits
0.2.7 ... 0.2.8

Author SHA1 Message Date
44f3d58db4 0.2.8 2022-03-01 19:14:46 +01:00
551da30a7e Fix functions without parameters. 2022-03-01 19:13:57 +01:00
3 changed files with 31 additions and 7 deletions

View File

@@ -241,6 +241,19 @@ namespace VAR.ExpressionEvaluator.Tests
Assert.Equal(4m, result);
}
[Fact]
public void Functions__ZeroParameters()
{
EvaluationContext evaluationContex = new EvaluationContext();
evaluationContex.SetFunction("constant", (parameters) =>
{
return 9m;
});
string expression = "constant()";
object result = Parser.EvaluateString(expression, evaluationContex);
Assert.Equal(9m, result);
}
#endregion Functions
#region Strings
@@ -252,6 +265,14 @@ namespace VAR.ExpressionEvaluator.Tests
object result = Parser.EvaluateString(expression);
Assert.Equal("Hello World", result);
}
[Fact]
public void Strings__Contatenate_Hello_World_SimpleQuotes()
{
string expression = "'Hello' + ' ' +'World'";
object result = Parser.EvaluateString(expression);
Assert.Equal("Hello World", result);
}
[Fact]
public void Strings__Contatenate_Hello_World_WithVariables()

View File

@@ -239,15 +239,18 @@ namespace VAR.ExpressionEvaluator
{
_tokenizer.NextToken();
var parameters = new List<IExpressionNode>();
while (true)
if (_tokenizer.Token != Token.ParenthesisEnd)
{
parameters.Add(ParseBooleanOp());
if (_tokenizer.Token == Token.Comma)
while (true)
{
_tokenizer.NextToken();
continue;
parameters.Add(ParseBooleanOp());
if (_tokenizer.Token == Token.Comma)
{
_tokenizer.NextToken();
continue;
}
break;
}
break;
}
if (_tokenizer.Token != Token.ParenthesisEnd)
{

View File

@@ -8,7 +8,7 @@
<PropertyGroup>
<PackageId>VAR.ExpressionEvaluator</PackageId>
<Title>VAR.ExpressionEvaluator</Title>
<Version>0.2.7</Version>
<Version>0.2.8</Version>
<Description>Expression Evaluation Library</Description>
<Authors>VAR</Authors>
<Company>VAR</Company>