1
我有以下的语法:antlr4语法错误
grammar Token;
prog: (expr NL?)+ EOF;
expr: '[' type ']';
type : typeid ':' value;
typeid : 'TXT' | 'ENC' | 'USR';
value: Text | INT;
INT : '0' | [1-9] [0-9]*;
//WS : [ \t]+;
WS : [ \t\n\r]+ -> skip ;
NL: '\r'? '\n';
Text : ~[\]\[\n\r"]+ ;
,我需要解析的文字是这样的下面
[TXT:look at me!]
[USR:19700]
[TXT:, can I go there?]
[ENC:124124]
[TXT:this is needed for you to go...]
我需要拆分这个文本,但我得到了一些当我运行错误grun.bat Token prog -gui -trace -diagnostics
enter prog, LT(1)=[
enter expr, LT(1)=[
consume [@0,0:0='[',<3>,1:0] rule expr
enter type, LT(1)=TXT:look at me!
enter typeid, LT(1)=TXT:look at me!
line 1:1 mismatched input 'TXT:look at me!' expecting {'TXT', 'ENC', 'USR'}
... much more ...
我的语法有什么问题?请帮帮我!
文本相匹配的方式太多了。例如,它匹配“TXT”。尝试使其更具体。 – 2014-10-06 16:51:40
@TheANTLRGuy,但我需要匹配'TXT'和']'之间的任何文本,我怎样才能让'Text'更具体呢? – thiagoh 2014-10-06 16:54:39
尝试〜']'也许? – 2014-10-06 18:02:55