ANTLR IDL语法
使用ANTLR我试图创建一个非常简单的IDL风格的语法。这是我到目前为止所拥有的。
grammar idl;
data_type
: 'DataType' ID LCURLY attribute_list RCURLY
;
modifier
: 'public'
;
primitive
: 'byte'
| 'short'
| 'int'
| 'float'
| 'double'
;
attribute
: modifier primitive ID END
;
attribute_list
: attribute+
;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
;
COMMENT
: '//' ~('n'|'r')* 'r'? 'n' {$channel=HIDDEN;}
| '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
;
WS : ( ' '
| 't'
| 'r'
| 'n'
) {$channel=HIDDEN;}
;
LCURLY : '{'
;
RCURLY : '}'
;
END : ';'
;
但是,当我在'data_type'上运行调试器时,这似乎不起作用。当它到达'attribute_list'时它就会停止。将'attribute_list'更改为'attribute'工作正常,但显然我想要一个或多个属性,而不仅仅是一个属性。
谢谢
没有找到相关结果
已邀请:
0 个回复