ANTLR 4 如何解析评论
ANTLR 4 how to parse comments
我正在解析类似 SQL 的语言,但在解析评论时遇到了问题。
我们的想法是忽略它们。
我有这些规则:
NEWLINE: '\r'? '\n' -> skip
WS : [ \t]+ -> skip
我怎么能忽略:
- '--'or '#'和下一个'\n'之间的所有内容
- “/”和“/”之间的所有内容(斜线 + 星号直到星号 + 斜线 - 星号不知何故消失了)。
我在 WS 和 NEWLINW 之前尝试过类似的东西:
COMMENT1 : ('--'|'#') ~'\n'* -> skip;
没用 - 我得到了:
line 1:115 missing ';' at '<EOF>'
可能是因为它不符合我的主要规则:
解析 : (语句 (';')+)* EOF;
谁能帮帮我?
问候 idob
如有疑问,请查看其他人的做法 ;)
There are some ready-made grammars for different languages,或多或少在工作。
所以我查看了 Java 的语法,发现:
COMMENT
: '/*' .*? '*/' -> skip
;
LINE_COMMENT
: '//' ~[\r\n]* -> skip
;
看来你的大致思路是正确的。我猜问题出在其他地方。你能提供你测试的样本输入和你的语法(相关部分)吗?
我正在解析类似 SQL 的语言,但在解析评论时遇到了问题。 我们的想法是忽略它们。
我有这些规则:
NEWLINE: '\r'? '\n' -> skip
WS : [ \t]+ -> skip
我怎么能忽略:
- '--'or '#'和下一个'\n'之间的所有内容
- “/”和“/”之间的所有内容(斜线 + 星号直到星号 + 斜线 - 星号不知何故消失了)。
我在 WS 和 NEWLINW 之前尝试过类似的东西:
COMMENT1 : ('--'|'#') ~'\n'* -> skip;
没用 - 我得到了:
line 1:115 missing ';' at '<EOF>'
可能是因为它不符合我的主要规则: 解析 : (语句 (';')+)* EOF;
谁能帮帮我?
问候 idob
如有疑问,请查看其他人的做法 ;)
There are some ready-made grammars for different languages,或多或少在工作。
所以我查看了 Java 的语法,发现:
COMMENT
: '/*' .*? '*/' -> skip
;
LINE_COMMENT
: '//' ~[\r\n]* -> skip
;
看来你的大致思路是正确的。我猜问题出在其他地方。你能提供你测试的样本输入和你的语法(相关部分)吗?