Je inopinément je développe une calculatrice simple avec la grammaire de formule:Antlr4 arrête l'analyse syntaxique expression
grammar Formula ;
expr : <assoc=right> expr POW expr # pow
| MINUS expr # unaryMinus
| PLUS expr # unaryPlus
| expr PERCENT # percent
| expr op=(MULTIPLICATION|DIVISION) expr # multiplyDivide
| expr op=(PLUS|MINUS) expr # addSubtract
| ABS '(' expr ')' # abs
| '|' expr '|' # absParenthesis
| MAX '(' expr (',' expr)* ')' # max
| MIN '(' expr (',' expr)* ')' # min
| '(' expr ')' # parenthesis
| NUMBER # number
| '"' COLUMN '"' # column
;
MULTIPLICATION: '*' ;
DIVISION: '/' ;
PLUS: '+' ;
MINUS: '-' ;
PERCENT: '%' ;
POW: '^' ;
ABS: [aA][bB][sS] ;
MAX: [mM][aA][xX] ;
MIN: [mM][iI][nN] ;
NUMBER: [0-9]+('.'[0-9]+)? ;
COLUMN: (~[\r\n"])+ ;
WS : [ \t\r\n]+ -> skip ;
entrée "column a"*"column b"
me donne l'arbre suivant comme prévu:
Mais l'entrée "column a" * "column b"
arrête de façon inattendue l'analyse syntaxique:
Qu'est-ce qui me manque?
Merci beaucoup pour les explications détaillées! – tiktak