ANTLR 4如何解析注释



我正在解析一种类似SQL的语言,在解析注释时遇到了问题。我们的想法是忽略它们。

我有以下规则:

NEWLINE: 'r'? 'n' -> skip 
WS  :    [ t]+ -> skip 

如何忽略:

  • "--"或"#"与下一个"\n"之间的所有内容
  • "/'和"/"之间的所有内容(斜线+星号直到星号+斜线-星号不知怎么消失了)

我在WS和NEWLINW:之前尝试过这样的东西

COMMENT1 : ('--'|'#') ~'n'* -> skip;

不起作用-我得到了:

line 1:115 missing ';' at '<EOF>'

可能是因为它不符合我的主要规则:parse:(statments(';')+)*EOF;

有人能帮我吗?

尊敬的idob

当有疑问时,看看别人做了什么;)

有一些现成的语法适用于不同的语言,或多或少起作用。

所以我查看Java的语法,发现:

COMMENT
: '/*' .*? '*/' -> skip
;
LINE_COMMENT
: '//' ~[rn]* -> skip
;

所以你的总体想法似乎是正确的。我猜问题出在别的地方。你能提供你测试的样本输入和语法(相关部分)吗?

相关内容

  • 没有找到相关文章

最新更新