我正在用JS编写clike语言的编译器,使用Jison作为具有角度前端的lexer/parser生成器。我几乎得到了我预期的结果,但有一件事让我困惑——如何让Jison忽略评论(/* block */
和// line
)?
有什么简单的方法可以实现吗?请记住,注释可能被插入到任何语句/表达式的中间?
您可以像忽略空白一样忽略注释:使用没有操作的lexer规则。
例如:
s+ /* IGNORE */
"//".* /* IGNORE */
[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] /* IGNORE */
第一行忽略空白。第二个忽略单行注释。第三个忽略块注释。