如何处理antlr4 lexer中的嵌套注释?即我需要计算此令牌内的"/*"数,并在收到相同数量的"*/"后才关闭.例如,D语言的嵌套注释为"/ + ... + /"
例如,以下行应被视为一个注释块:
/* comment 1
comment 2
/* comment 3
comment 4
*/
// comment 5
comment 6
*/
Run Code Online (Sandbox Code Playgroud)
我当前的代码如下,它不适用于上面的嵌套注释:
COMMENT : '/*' .*? '*/' -> channel(HIDDEN)
;
LINE_COMMENT : '//' ~('\n'|'\r')* '\r'? '\n' -> channel(HIDDEN)
;
Run Code Online (Sandbox Code Playgroud)
mik*_*dge 11
Terence Parr在他的Swift Antlr4语法中有两条lexer行,用于删除嵌套注释:
COMMENT : '/*' (COMMENT|.)*? '*/' -> channel(HIDDEN) ;
LINE_COMMENT : '//' .*? '\n' -> channel(HIDDEN) ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2275 次 |
| 最近记录: |