Skip to content

Commit f1abce8

Browse files
author
linzhijun
committed
fix
1 parent 05c88bf commit f1abce8

File tree

3 files changed

+24
-28
lines changed

3 files changed

+24
-28
lines changed

README-EN.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ ToolGood.Algorithm is a powerful, lightweight, `Excel formula` compatible algori
3838
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" (不带空格)
3939
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"
4040
var n = engine.TryEvaluate("{Name:\"William Shakespeare\", Age:51, Birthday:\"04/26/1564 00:00:00\"}.Age", null);//Return 51 返回51
41-
var m = engine.TryEvaluate("{1,2,3,4,5,6}.has(13)", true);//Return false 返回false
42-
41+
var m = engine.TryEvaluate("[1,2,3,4,5,6].has(13)", true);//Return false 返回false
4342
```
4443
Constants`pi`, `e`, `true`, `false`are supported.
4544

@@ -61,6 +60,8 @@ Note: Use `&` for string concatenation.
6160

6261
Note: `find` is an Excel formula , find (the string to be searched, the string to be searched [, start position])
6362

63+
Note: Starting from version 6.0, the `[X,X]` array code replaces `{X,X}`.
64+
6465
## Custom parameters
6566
``` csharp
6667
//Define cylinder information 定义圆柱信息
@@ -93,18 +94,20 @@ Note: `find` is an Excel formula , find (the string to be searched, the string t
9394
}
9495
//Call method 调用方法
9596
Cylinder c = new Cylinder(3, 10);
96-
c.TryEvaluate("[半径]*[半径]*pi()", 0.0); //Round bottom area 圆底面积
97-
c.TryEvaluate("[直径]*pi()", 0.0); //The length of the circle 圆的长
98-
c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //Volume of circle 圆的体积
99-
c.TryEvaluate("['半径']*[半径]*pi()*[高]", 0.0); //Volume of circle 圆的体积
100-
c.EvaluateFormula("'圆'-[半径]-高", '-'); // Return: 圆-3-10
97+
c.TryEvaluate("半径*半径*pi()", 0.0); //Round bottom area 圆底面积
98+
c.TryEvaluate("直径*pi()", 0.0); //The length of the circle 圆的长
99+
c.TryEvaluate("半径*半径*pi()*高", 0.0); //Volume of circle 圆的体积
100+
c.EvaluateFormula("'圆'-半径-高", '-'); // Return: 圆-3-10
101101
c.GetSimplifiedFormula("半径*if(半径>2, 1+4, 3)"); // Return: 3 * 5
102102
```
103-
Parameter definitions, such as`[parameter name]`, `【parameter name】` , `#parameter name#` , `@parameterName`.
103+
104+
Parameter Definition: parameter name
105+
106+
Note: Versions below 5.9 do not support `[parameter name]`, `【parameter name】`, `#parameter name#`, or `@parameterName`.
104107

105108
Note: You can also use `AddParameter`, `AddParameterFromJson` to add methods, and use `DiyFunction`+= to customize functions.
106109

107-
Note 2: use `AlgorithmEngineHelper.GetDiyNames` get `parameter name` and `custom function name`.
110+
Note: use `AlgorithmEngineHelper.GetDiyNames` get `parameter name` and `custom function name`.
108111

109112

110113
## Custom parameters

README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ WebAssembly版本,请看csharp文件夹下`ToolGood.Algorithm.WebAssembly`,`To
3838
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" (不带空格)
3939
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"
4040
var n = engine.TryEvaluate("{Name:\"William Shakespeare\", Age:51, Birthday:\"04/26/1564 00:00:00\"}.Age", null);//Return 51 返回51
41-
var m = engine.TryEvaluate("{1,2,3,4,5,6}.has(13)", true);//Return false 返回false
41+
var m = engine.TryEvaluate("[1,2,3,4,5,6].has(13)", true);//Return false 返回false
4242
```
4343

4444
支持常量`pi`, `e`, `true`, `false`
@@ -55,6 +55,8 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
5555

5656
注:`find`为Excel公式,find(要查找的字符串, 被查找的字符串[, 开始位置])
5757

58+
注:6.0版本开始,`[X,X]`数组代码替换`{X,X}`
59+
5860
## 自定义参数
5961
``` csharp
6062
//Define cylinder information 定义圆柱信息
@@ -87,20 +89,21 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
8789
}
8890
//Call method 调用方法
8991
Cylinder c = new Cylinder(3, 10);
90-
c.TryEvaluate("[半径]*[半径]*pi()", 0.0); //Round bottom area 圆底面积
91-
c.TryEvaluate("[直径]*pi()", 0.0); //The length of the circle 圆的长
92-
c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //Volume of circle 圆的体积
93-
c.TryEvaluate("['半径']*[半径]*pi()*[高]", 0.0); //Volume of circle 圆的体积
94-
c.EvaluateFormula("'圆'-[半径]-高", '-'); // Return: 圆-3-10
92+
c.TryEvaluate("半径*半径*pi()", 0.0); //Round bottom area 圆底面积
93+
c.TryEvaluate("直径*pi()", 0.0); //The length of the circle 圆的长
94+
c.TryEvaluate("半径*半径*pi()*高", 0.0); //Volume of circle 圆的体积
95+
c.EvaluateFormula("'圆'-半径-高", '-'); // Return: 圆-3-10
9596
c.GetSimplifiedFormula("半径*if(半径>2, 1+4, 3)"); // Return: 3 * 5
9697
9798
```
9899

99-
参数定义,如 `[参数名]``【参数名】``#参数名#``@参数名`
100+
参数定义`参数名`
101+
102+
注:不支持5.9版本以下 `[参数名]``【参数名】``#参数名#``@参数名`
100103

101104
注:还可以使用`AddParameter``AddParameterFromJson`添加方法,使用`DiyFunction`+=来自定义函数。
102105

103-
注2:使用 `AlgorithmEngineHelper.GetDiyNames` 获取`参数名``自定义方法名`
106+
:使用 `AlgorithmEngineHelper.GetDiyNames` 获取`参数名``自定义方法名`
104107

105108

106109
## 自定义参数

g4/math.g4

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -340,12 +340,9 @@ expr:
340340
| HAS '('expr ',' expr ')' # HAS_fun
341341
| HASVALUE '(' expr ','expr ')' # HASVALUE_fun
342342
| '{' arrayJson (',' arrayJson)* ','* '}' # ArrayJson_fun
343-
| '{' expr (',' expr)* ','* '}' # Array_fun
343+
| '[' expr (',' expr)* ','* ']' # Array_fun
344344
| ALGORITHMVERSION # Version_fun
345-
| '[' PARAMETER ']' # PARAMETER_fun
346-
| '[' expr ']' # PARAMETER_fun
347345
| PARAMETER # PARAMETER_fun
348-
| PARAMETER2 # PARAMETER_fun
349346
| num unit? # NUM_fun
350347
| STRING # STRING_fun
351348
| NULL # NULL_fun;
@@ -843,13 +840,6 @@ PARAMETER: ([A-Z_] | FullWidthLetter) (
843840
[A-Z0-9_]
844841
| FullWidthLetter
845842
)*;
846-
PARAMETER2:
847-
'' (~('' | ''))+ ''
848-
| '#' (~('#'))+ '#'
849-
| '@' ([A-Z_] | FullWidthLetter) (
850-
[A-Z0-9_]
851-
| FullWidthLetter
852-
)*;
853843

854844
fragment FullWidthLetter:
855845
'\u00c0' ..'\u00d6'

0 commit comments

Comments
 (0)