0
문법을 쓰고 있지만 공백을 허용하는 데 문제가 있습니다. 내 문법 일 나는 내가 문제가 다음과 같이 작업을 컴파일하려고하면 내가하지만 '안녕하세요'+ '세계 작성하는 경우 : 이것은 내 문법 파일입니다antlr4에서 공백 허용
'안녕하세요 '+'세계
:
를grammar Common;
identifierNum: hostId DOT observableId DOT method ':Num';
identifierString: hostId DOT observableId DOT method ':String';
hostId: ID;
observableId: ID;
method: ID'('')';
MUL: '*';
DIV: '/';
ADD: '+';
SUB: '-';
DOT: '.';
MIN: '<';
MAX: '>';
ID: [a-zA-Z] [a-zA-Z0-9]*;
STRING: '\''[a-zA-Z0-9]+ '\'';
DIGIT: [0-9]+ ;
DOUBLE: [0-9]* DOT [0-9]+ ;
WS: [ \n\t]+ -> skip;
여러분의 도움이
grammar Expression;
import Common;
expression: stringExpr # StringExpression
| numExpr # NumExpression
;
stringExpr: stringExpr ADD stringExpr # Concat
| STRING # BaseStr
| identifierString # IdString
| '(' stringExpr ')' # ParensString
;
numExpr: numExpr op=(MUL|DIV) numExpr # MulDiv
| numExpr op=(ADD|SUB) numExpr # AddSub
| DIGIT # Int
| DOUBLE # Double
| identifierNum # IdNum
| '(' numExpr ')' # ParensNum
;
감사합니다!