Skip to content

Commit fad14e4

Browse files
author
linzhijun
committed
修改 增加函数定义
1 parent 6d59611 commit fad14e4

File tree

3 files changed

+23
-19
lines changed

3 files changed

+23
-19
lines changed

g4/_run_math_cs.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
java -jar antlr-4.12.0-complete.jar math.g4 -no-listener -visitor -Dlanguage=CSharp -long-messages -o bin
1+
java -jar antlr-4.13.0-complete.jar math.g4 -no-listener -visitor -Dlanguage=CSharp -long-messages -o bin
22

33
pasue

g4/_run_math_java.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
java -jar antlr-4.12.0-complete.jar math.g4 -no-listener -visitor -Dlanguage=Java -long-messages -o bin
1+
java -jar antlr-4.13.0-complete.jar math.g4 -no-listener -visitor -Dlanguage=Java -long-messages -o bin
22

33
pasue

g4/math.g4

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ expr:
4949
| expr '.' TRIM '(' ')' # TRIM_fun
5050
| expr '.' UPPER '(' ')' # UPPER_fun
5151
| expr '.' VALUE '(' ')' # VALUE_fun
52-
| expr '.' DATEVALUE '(' ')' # DATEVALUE_fun
52+
| expr '.' DATEVALUE '(' expr? ')' # DATEVALUE_fun
5353
| expr '.' TIMEVALUE '(' ')' # TIMEVALUE_fun
5454
| expr '.' YEAR ('(' ')')? # YEAR_fun
5555
| expr '.' MONTH ('(' ')')? # MONTH_fun
@@ -100,12 +100,13 @@ expr:
100100
| expr '.' ADDHOURS '(' expr ')' # ADDHOURS_fun
101101
| expr '.' ADDMINUTES '(' expr ')' # ADDMINUTES_fun
102102
| expr '.' ADDSECONDS '(' expr ')' # ADDSECONDS_fun
103+
| expr '.' TIMESTAMP '(' expr? ')' # TIMESTAMP_fun
103104

104105
| expr '[' parameter2 ']' # GetJsonValue_fun
105106
| expr '[' expr ']' # GetJsonValue_fun
106107
| expr '.' parameter2 # GetJsonValue_fun
107108

108-
// 运算符优先级 开始
109+
// 运算符优先级 开始
109110
| '(' expr ')' # Bracket_fun
110111
| '!' expr # NOT_fun
111112
| expr '%' # Percentage_fun
@@ -128,7 +129,7 @@ expr:
128129
| expr op = ('&&' | AND) expr # AndOr_fun
129130
| expr op = ('||' | OR) expr # AndOr_fun
130131
| expr '?' expr ':' expr # IF_fun
131-
// 运算符优先级 结束
132+
// 运算符优先级 结束
132133

133134
| ARRAY '(' expr (',' expr)* ')' # Array_fun
134135
| IF '(' expr ',' expr (',' expr)? ')' # IF_fun
@@ -233,7 +234,7 @@ expr:
233234
| TRIM '(' expr ')' # TRIM_fun
234235
| UPPER '(' expr ')' # UPPER_fun
235236
| VALUE '(' expr ')' # VALUE_fun
236-
| DATEVALUE '(' expr ')' # DATEVALUE_fun
237+
| DATEVALUE '(' expr (',' expr)? ')' # DATEVALUE_fun
237238
| TIMEVALUE '(' expr ')' # TIMEVALUE_fun
238239
| DATE '(' expr ',' expr ',' expr (
239240
',' expr (',' expr (',' expr)?)?
@@ -345,6 +346,7 @@ expr:
345346
| ADDHOURS '(' expr ',' expr ')' # ADDHOURS_fun
346347
| ADDMINUTES '(' expr ',' expr ')' # ADDMINUTES_fun
347348
| ADDSECONDS '(' expr ',' expr ')' # ADDSECONDS_fun
349+
| TIMESTAMP '(' expr (',' expr)? ')' # TIMESTAMP_fun
348350

349351
| '[' PARAMETER ']' # PARAMETER_fun
350352
| '[' expr ']' # PARAMETER_fun
@@ -567,6 +569,7 @@ parameter2:
567569
| ADDHOURS
568570
| ADDMINUTES
569571
| ADDSECONDS
572+
| TIMESTAMP
570573
| NULL
571574
| PARAMETER;
572575

@@ -581,7 +584,7 @@ STRING: '\'' ( ~'\'' | '\\\'')* '\''
581584
;
582585
NULL: 'NULL';
583586

584-
// 逻辑函数
587+
// 逻辑函数
585588
IF: 'IF';
586589
IFERROR: 'IFERROR';
587590
ISNUMBER: 'ISNUMBER';
@@ -598,18 +601,18 @@ OR: 'OR';
598601
NOT: 'NOT';
599602
TRUE: 'TRUE';
600603
FALSE: 'FALSE';
601-
// 数学与三角函数
604+
// 数学与三角函数
602605
E: 'E';
603606
PI: 'PI';
604607
DEC2BIN: 'DEC2BIN';
605608
DEC2HEX: 'DEC2HEX';
606609
DEC2OCT: 'DEC2OCT';
607-
HEX2BIN: 'HEX2BIN'; // 将十六进制数转换为二进制数
608-
HEX2DEC: 'HEX2DEC'; // 将十六进制数转换为十进制数
609-
HEX2OCT: 'HEX2OCT'; // 将十六进制数转换为八进制数
610-
OCT2BIN: 'OCT2BIN'; // 将八进制数转换为二进制数
611-
OCT2DEC: 'OCT2DEC'; // 将八进制数转换为十进制数
612-
OCT2HEX: 'OCT2HEX'; // 将八进制数转换为十六进制数
610+
HEX2BIN: 'HEX2BIN'; // 将十六进制数转换为二进制数
611+
HEX2DEC: 'HEX2DEC'; // 将十六进制数转换为十进制数
612+
HEX2OCT: 'HEX2OCT'; // 将十六进制数转换为八进制数
613+
OCT2BIN: 'OCT2BIN'; // 将八进制数转换为二进制数
614+
OCT2DEC: 'OCT2DEC'; // 将八进制数转换为十进制数
615+
OCT2HEX: 'OCT2HEX'; // 将八进制数转换为十六进制数
613616
BIN2OCT: 'BIN2OCT';
614617
BIN2DEC: 'BIN2DEC';
615618
BIN2HEX: 'BIN2HEX';
@@ -660,7 +663,7 @@ MULTINOMIAL: 'MULTINOMIAL';
660663
PRODUCT: 'PRODUCT';
661664
SQRTPI: 'SQRTPI';
662665
SUMSQ: 'SUMSQ';
663-
// 文本函数
666+
// 文本函数
664667
ASC: 'ASC';
665668
JIS: 'JIS' | 'WIDECHAR';
666669
CHAR: 'CHAR';
@@ -686,7 +689,7 @@ TEXT: 'TEXT';
686689
TRIM: 'TRIM';
687690
UPPER: 'UPPER' | 'TOUPPER';
688691
VALUE: 'VALUE';
689-
// 日期与时间函数
692+
// 日期与时间函数
690693
DATEVALUE: 'DATEVALUE';
691694
TIMEVALUE: 'TIMEVALUE';
692695
DATE: 'DATE';
@@ -707,7 +710,7 @@ EOMONTH: 'EOMONTH';
707710
NETWORKDAYS: 'NETWORKDAYS';
708711
WORKDAY: 'WORKDAY';
709712
WEEKNUM: 'WEEKNUM';
710-
// 统计函数
713+
// 统计函数
711714
MAX: 'MAX';
712715
MEDIAN: 'MEDIAN';
713716
MIN: 'MIN';
@@ -754,7 +757,7 @@ POISSON: 'POISSON';
754757
TDIST: 'TDIST';
755758
TINV: 'TINV';
756759
WEIBULL: 'WEIBULL';
757-
// 增加函数 类C# 方法
760+
// 增加函数 类C# 方法
758761
URLENCODE: 'URLENCODE';
759762
URLDECODE: 'URLDECODE';
760763
HTMLENCODE: 'HTMLENCODE';
@@ -800,10 +803,11 @@ ADDDAYS:'ADDDAYS';
800803
ADDHOURS:'ADDHOURS';
801804
ADDMINUTES:'ADDMINUTES';
802805
ADDSECONDS:'ADDSECONDS';
806+
TIMESTAMP:'TIMESTAMP';
803807

804808
PARAMETER: ([A-Z_]| FullWidthLetter)([A-Z0-9_] | FullWidthLetter)*;
805809
PARAMETER2: '{' (~('{'|'}'))+ '}'
806-
| '' (~(''|''))+ ''
810+
| '' (~(''|''))+ ''
807811
| '#' (~('#'))+ '#'
808812
| '@' ([A-Z_]| FullWidthLetter)([A-Z0-9_] | FullWidthLetter)*
809813
;

0 commit comments

Comments
 (0)