我正在尝试使用 antlr 来解析日志文件。因为我只对部分日志感兴趣,所以我只想写一个部分解析器来处理重要的部分。
例如:我想解析段:
[ 123 begin ]
所以我写了语法:
log :
'[' INT 'begin' ']'
;
INT : '0'..'9'+
;
NEWLINE
: '\r'? '\n'
;
WS
: (' '|'\t')+ {skip();}
;
但是该段可能出现在一行的中间,例如:
111 [ 123 begin ] 222
根据讨论: 简单的ANTLR语法有什么问题? 我知道为什么我的语法无法处理上述语句。
我想知道,有没有办法让antlr忽略任何错误,继续处理剩余的文本?
感谢您的任何建议!莱昂