【发布时间】:2014-05-13 07:28:32
【问题描述】:
我正在编写我的语法,但我无法允许空格。如果我写 'hello' + 'world',我的语法可以工作,但如果我尝试编译如下操作,我会遇到问题:
“你好”+“世界”
这是我的语法文件:
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
;
感谢您的帮助!
【问题讨论】: