Skip to content

Commit 2e83264

Browse files
committed
fix
1 parent 009b364 commit 2e83264

File tree

2 files changed

+27
-48
lines changed

2 files changed

+27
-48
lines changed

g4/math.g4

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ OPGT: '>';
133133
OPGE: '>=';
134134
OPLT: '<';
135135
OPLE: '<=';
136-
OPNE: '!=' | '!==' | '<>';
137-
OPEQ: '=' | '==' | '===';
136+
OPNE: '!' '=' '='? | '<>';
137+
OPEQ: '=' ('=' '='?)?;
138138
OPAND: '&&';
139139
OPOR: '||';
140140

@@ -145,27 +145,9 @@ STRING:
145145
| '`' (~[`\\] | '\\' .)* '`';
146146
147147
148-
UNIT:
149-
'M'
150-
| 'KM'
151-
| 'DM'
152-
| 'CM'
153-
| 'MM'
154-
| 'M2'
155-
| 'KM2'
156-
| 'DM2'
157-
| 'CM2'
158-
| 'MM2'
159-
| 'M3'
160-
| 'KM3'
161-
| 'DM3'
162-
| 'CM3'
163-
| 'MM3'
164-
| 'L'
165-
| 'ML'
166-
| 'G'
167-
| 'KG';
168-
148+
UNIT: [KDCM]? 'M' [23]?
149+
| 'M'? 'L'
150+
| 'K'? 'G';
169151
170152
// BOOL_fun
171153
TRUE: 'TRUE' | 'YES';

g4/mathjs.g4

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,40 @@ grammar mathjs;
33
prog: expr EOF;
44

55
expr:
6-
'(' expr ')'
7-
| expr '.' PARAMETER ('(' (expr (',' expr)*)? ')')?
8-
| expr '[' (PARAMETER | expr) ']'
9-
// 运算符优先级 开始
10-
| '!' expr
11-
| expr OPMOD
12-
| expr (OPMOD|OP) expr
13-
| expr '?' expr ':' expr
14-
// 运算符优先级 结束
15-
16-
| PARAMETER '(' (expr (',' expr)*)? ')'
17-
| '{' arrayJson (',' arrayJson)* ','? '}'
18-
| '[' expr (',' expr)* ','? ']'
19-
| '-'? NUM
20-
| STRING
21-
| PARAMETER
6+
'(' expr ')'
7+
| expr '.' PARAMETER ('(' (expr (',' expr)*)? ')')?
8+
| expr '[' (PARAMETER | expr) ']'
9+
| '!' expr
10+
| expr OPMOD
11+
| expr (OPMOD|OPSUB|OP) expr
12+
| expr '?' expr ':' expr
13+
14+
| PARAMETER '(' (expr (',' expr)*)? ')'
15+
| '{' arrayJson (',' arrayJson)* ','? '}'
16+
| '[' expr (',' expr)* ','? ']'
17+
| OPSUB? NUM
18+
| STRING
19+
| PARAMETER
2220
;
2321

2422
arrayJson: (NUM | STRING | PARAMETER) ':' expr;
25-
23+
2624
OPMOD: '%';
27-
OP: '+'| '-'| '*'| '/'|'&'| '>'| '>='|'<'|'<='| '!=' | '!==' | '<>'| '=' | '==' | '==='| '&&'|'||';
25+
OPSUB: '-';
26+
OP: [+*/&><=]| [>=<!] '=' '='? | '<>' | '&&' | '||' ;
2827

2928
NUM: [0-9]+ ('.' [0-9]+)? ('E' [+-]? [0-9]+)?
30-
| [0-9]+ ('.' [0-9]+)? ('M'
31-
| 'KM' | 'DM' | 'CM' | 'MM'
32-
| 'M2' | 'KM2' | 'DM2' | 'CM2' | 'MM2'
33-
| 'M3' | 'KM3' | 'DM3' | 'CM3' | 'MM3' | 'L' | 'ML'
34-
| 'G' | 'KG' | 'T')
29+
| [0-9]+ ('.' [0-9]+)? (
30+
[KDCM]? 'M' [23]?
31+
| 'M'? 'L'
32+
| 'K'? 'G' | 'T')
3533
;
3634
STRING:
3735
'\'' (~['\\] | '\\' .)* '\''
3836
| '"' (~["\\] | '\\' .)* '"'
3937
| '`' (~[`\\] | '\\' .)* '`';
4038
41-
PARAMETER: ([A-Z_] | FullWidthLetter) ( [A-Z0-9_] | FullWidthLetter )*;
39+
PARAMETER: ([A-Z_] | FullWidthLetter) ([A-Z0-9_] | FullWidthLetter)*;
4240
4341
fragment FullWidthLetter:
4442
'\u00c0' ..'\u00d6'
@@ -53,7 +51,6 @@ fragment FullWidthLetter:
5351
| '\ua000' ..'\ud7ff'
5452
| '\uf900' ..'\ufaff'
5553
| '\uff00' ..'\ufff0'
56-
// | '\u10000'..'\u1F9FF' //not support four bytes chars | '\u20000'..'\u2FA1F'
5754
;
5855
5956
WS: [ \t\r\n\f]+ -> skip;

0 commit comments

Comments
 (0)