3 Commits
0.2.7 ... Main

Author SHA1 Message Date
63bc30aa7f Sync 2025-08-01 01:16:35 +02:00
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
7 changed files with 62 additions and 7 deletions

13
.idea/.idea.VAR.ExpressionEvaluator/.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,13 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/.idea.VAR.ExpressionEvaluator.iml
/modules.xml
/contentModel.xml
/projectSettingsUpdater.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

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>