我正在解析类似SQL的语言,我在解析注释时遇到问题。 我们的想法是忽略它们。
我有这些规则:
NEWLINE: '\r'? '\n' -> skip
WS : [ \t]+ -> skip
我怎么能忽略:
我在WS和NEWLINW之前尝试过类似的东西:
COMMENT1 : ('--'|'#') ~'\n'* -> skip;
没有工作 - 我得到了:
line 1:115 missing ';' at '<EOF>'
可能是因为它没有符合我的主要规则: 解析:(陈述(&#39 ;;&#39;)+)* EOF;
任何人都可以帮助我吗?
关心idob
答案 0 :(得分:1)
如果有疑问,请看看其他人做了什么;)
There are some ready-made grammars for different languages,或多或少的工作。
所以我查看Java的语法并看到:
COMMENT
: '/*' .*? '*/' -> skip
;
LINE_COMMENT
: '//' ~[\r\n]* -> skip
;
所以你的总体想法似乎是正确的。我猜这个问题出在其他地方。你能提供你测试的样本输入和你的语法(相关部分)吗?