Skip to content

Commit ca677af

Browse files
author
linzhijun
committed
修改 删除歧义语法
1 parent c98eea3 commit ca677af

8 files changed

Lines changed: 5221 additions & 2078 deletions

File tree

README-EN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ ToolGood.Algorithm is a powerful, lightweight, `Excel formula` compatible algori
3131
var d = engine.TryEvaluate("'2016-1-1'+1", DateTime.MinValue); //Return date: 2016-1-2 返回日期:2016-1-2
3232
var t = engine.TryEvaluate("'2016-1-1'+9*'1:0'", DateTime.MinValue);//Return datetime:2016-1-1 9:0 返回日期:2016-1-1 9:0
3333
var j = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}').Age", null);//Return 51 返回51
34-
var k = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare \", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}')[Name].Trim()", null);//Return to "William Shakespeare" 返回"William Shakespeare" (不带空格)
34+
var k = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare \", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}')['Name'].Trim()", null);//Return to "William Shakespeare" 返回"William Shakespeare" (不带空格)
3535
var l = engine.TryEvaluate("json('{\"Name1\":\"William Shakespeare \", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}')['Name'& 1].Trim().substring(2, 3)", null); ;//Return "ill" 返回"ill"
3636
var n = engine.TryEvaluate("{Name:\"William Shakespeare\", Age:51, Birthday:\"04/26/1564 00:00:00\"}.Age", null);//Return 51 返回51
3737
var m = engine.TryEvaluate("[1,2,3,4,5,6].has(13)", true);//Return false 返回false

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ WebAssembly版本,请看csharp文件夹下`ToolGood.Algorithm.WebAssembly`,`To
3232
var d = engine.TryEvaluate("'2016-1-1'+1", DateTime.MinValue); //Return date: 2016-1-2 返回日期:2016-1-2
3333
var t = engine.TryEvaluate("'2016-1-1'+9*'1:0'", DateTime.MinValue);//Return datetime:2016-1-1 9:0 返回日期:2016-1-1 9:0
3434
var j = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}').Age", null);//Return 51 返回51
35-
var k = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare \", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}')[Name].Trim()", null);//Return to "William Shakespeare" 返回"William Shakespeare" (不带空格)
35+
var k = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare \", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}')['Name'].Trim()", null);//Return to "William Shakespeare" 返回"William Shakespeare" (不带空格)
3636
var l = engine.TryEvaluate("json('{\"Name1\":\"William Shakespeare \", \"Age\":51, \"Birthday\":\"04/26/1564 00:00:00\"}')['Name'& 1].Trim().substring(2, 3)", null);//Return "ill" 返回"ill"
3737
var n = engine.TryEvaluate("{Name:\"William Shakespeare\", Age:51, Birthday:\"04/26/1564 00:00:00\"}.Age", null);//Return 51 返回51
3838
var m = engine.TryEvaluate("[1,2,3,4,5,6].has(13)", true);//Return false 返回false

csharp/ToolGood.Algorithm.Test/AlgorithmEngine/AlgorithmEngineTest_csharp.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,13 +265,13 @@ public void Json()
265265
AlgorithmEngine engine = new AlgorithmEngine();
266266
var dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}').Age", null);
267267
Assert.AreEqual(dt.ToString(), "51");
268-
dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Birthday]", null);
268+
dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare\",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')['Birthday']", null);
269269
Assert.AreEqual(dt, "04/26/1564 00:00:00");
270270

271271
dt = engine.TryEvaluate("json('[1,2,3]')[1]", null);
272272
Assert.AreEqual(dt, "1");
273273

274-
dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')[Name].Trim()", null);
274+
dt = engine.TryEvaluate("json('{\"Name\":\"William Shakespeare \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')['Name'].Trim()", null);
275275
Assert.AreEqual(dt, "William Shakespeare");
276276

277277
dt = engine.TryEvaluate("json('{\"Name1\":\"William Shakespeare \",\"Age\":51,\"Birthday\":\"04/26/1564 00:00:00\"}')['Name'& 1].Trim().substring(2,3)", null);

csharp/ToolGood.Algorithm.Test/Tests/IssuesTest.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,18 @@ public void issues_27()
3737
var dt = engine.TryEvaluate("DATE(2024, 8, 1) + TIME(8, 0, 0)", DateTime.Now);
3838
Assert.AreEqual(dt, DateTime.Parse("2024-08-01 8:0"));
3939
}
40-
}
40+
41+
42+
43+
[Test]
44+
public void issues_0()
45+
{
46+
AlgorithmEngineEx engine = new AlgorithmEngineEx();
47+
engine.AddParameter("瓦楞", "BC");
48+
var dt = engine.TryEvaluate(@"{""A"": 0.6,""B"": 0.4,""C"": 0.6,""E"": 0.33,""F"": 0.29,""Z"": 0.15
49+
,""EB"": 0.7,""EE"": 0.65,""EA"": 0.85,""AB"": 1.0,""BC"": 1.0,""AA"":1.0
50+
,""EBC"": 1.15,""BAB"": 1.25,""BCB"": 1.25,""BBC"": 1.25,""CBB"": 1.25,""EBA"": 1.2,""AAA"": 1.4}[瓦楞]", 0);
51+
Assert.AreEqual(dt, 1.0);
52+
}
53+
}
4154
}

csharp/ToolGood.Algorithm/Internals/MathFunctionVisitor.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System;
33
using System.Globalization;
44
using System.Text;
5+
using System.Xml.Linq;
56
using ToolGood.Algorithm.Internals.Functions;
67
using ToolGood.Algorithm.math;
78

@@ -1963,6 +1964,10 @@ public FunctionBase VisitGetJsonValue_fun(mathParser.GetJsonValue_funContext con
19631964
{
19641965
var exprs = context.expr();
19651966
var args1 = exprs[0].Accept(this);
1967+
if (context.PARAMETER()!=null) {
1968+
var op = new Function_PARAMETER(context.PARAMETER().GetText());
1969+
return new Function_GetJsonValue(args1, op);
1970+
}
19661971
if (context.parameter2() != null) {
19671972
var op = context.parameter2().Accept(this);
19681973
return new Function_GetJsonValue(args1, op);

csharp/ToolGood.Algorithm/ToolGood.Algorithm.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<Product>ToolGood.Algorithm</Product>
2020
<PackageLicenseFile>LICENSE</PackageLicenseFile>
2121
<SignAssembly>true</SignAssembly>
22-
<Version>6.0.0.1</Version>
22+
<Version>6.0.0.2</Version>
2323
<AssemblyOriginatorKeyFile>ToolGood.Algorithm.snk</AssemblyOriginatorKeyFile>
2424
<DelaySign>false</DelaySign>
2525
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\ToolGood.Algorithm.xml</DocumentationFile>

0 commit comments

Comments
 (0)