antlr4:令牌识别错误“。”点和其他标点符号

时间:2017-12-02 18:29:01

标签: parsing antlr4

我有一个解析器规则定义为:

text: '"'.*?'"' ;

但是,如果文本包含标点符号'。'。

,则会失效
",;:!?./§/*-+)({}[]abc"   
line 1:1 token recognition error at: ','
line 1:2 token recognition error at: ';'
line 1:4 token recognition error at: '!'
line 1:5 token recognition error at: '?'
line 1:6 token recognition error at: '.'
line 1:7 token recognition error at: '/'
line 1:8 token recognition error at: '§'
line 1:9 token recognition error at: '/'
line 1:10 token recognition error at: '*'
line 1:11 token recognition error at: '-'
line 1:12 token recognition error at: '+'
line 1:13 token recognition error at: ')'
line 1:14 token recognition error at: '('

奇怪的是,curlies被认出来了。 是否有任何帮助接受任何作为字符串的一部分?

1 个答案:

答案 0 :(得分:1)

您需要将text定义为词法分析规则,如下所示:

TEXT: '"'.*?'"' ;

如果在解析器规则中使用通配符运算符,ANTLR将匹配任何规则而不是任何字符。