【问题标题】:Handling clike comments in Jison在 Jison 中处理 clike 评论
【发布时间】:2016-03-17 11:06:10
【问题描述】:

我正在使用 Jison 作为带有角度前端的词法分析器/解析器生成器,在 JS 中编写 clike 语言的编译器。我几乎得到了我预期的结果,但有一件事让我感到困惑——如何让 Jison 忽略 cmets(/* block */// line)?

有什么简单的方法可以实现吗?请记住,注释可能会插入到任何语句/表达式的中间?

【问题讨论】:

    标签: jison


    【解决方案1】:

    您忽略 cmets 的方式与忽略空格相同:使用没有操作的词法分析器规则。

    例如:

    \s+                                   /* IGNORE */
    "//".*                                /* IGNORE */
    [/][*][^*]*[*]+([^/*][^*]*[*]+)*[/]   /* IGNORE */
    

    第一行忽略空格。第二个忽略单行 cmets。第三个忽略块 cmets。

    【讨论】:

    • 就是这个主意!虽然块注释对我不起作用(我使用 .jison 文件格式),但它给了我一个线索,我发现以下正则表达式可以完成这项工作:"/*"((\*+[^/*])|([^*]))*\**"*/"
    • @Vees:是的,有一个错字(右括号后面的星号不见了)。固定的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    相关资源
    最近更新 更多