我正在解析类似 SQL 的语言,但在解析注释时遇到问题。我们的想法是忽略它们。
我有这些规则:
NEWLINE: '\r'? '\n' -> skip
WS : [ \t]+ -> skip
Run Code Online (Sandbox Code Playgroud)
我怎样才能忽略:
我在 WS 和 NEWLINW 之前尝试过类似的事情:
COMMENT1 : ('--'|'#') ~'\n'* -> skip;
Run Code Online (Sandbox Code Playgroud)
没用 - 我得到:
line 1:115 missing ';' at '<EOF>'
Run Code Online (Sandbox Code Playgroud)
可能是因为它不符合我的主要规则: parse : (statements (';')+)* EOF;
谁能帮我?
问候伊多布
如有疑问,请看看其他人做了什么;)
有一些针对不同语言的现成语法,或多或少有效。
所以我查看了 Java 的语法,发现:
COMMENT
: '/*' .*? '*/' -> skip
;
LINE_COMMENT
: '//' ~[\r\n]* -> skip
;
Run Code Online (Sandbox Code Playgroud)
所以你的总体想法似乎是正确的。我猜问题出在其他地方。您能否提供您测试的示例输入和语法(相关部分)?
| 归档时间: |
|
| 查看次数: |
3136 次 |
| 最近记录: |