【问题标题】:How to modify input stream in Javacc?如何在 Javacc 中修改输入流?
【发布时间】:2013-06-08 01:55:43
【问题描述】:

有没有一种方法可以在使用 Javacc 进行解析时修改输入流?我有一个用例,我想在解析期间用字符串替换标记,然后解析替换的字符串。

例如,

define var $x="2*2";
evaluate $x;

因此,在这种情况下,当我在解析过程中遇到任何以 $ 开头的标记时,例如 $x,我应该进行内联替换,然后使用 Javacc 正常解析它。

所以,从上面的例子来看,这意味着我应该在内联替换后解析以下语句:

evaluate "2*2";

这在 Javacc 中可行吗?我们能否修改输入流,以便在看到特殊标记时将其内联替换附加到输入流?

谢谢。

【问题讨论】:

    标签: parsing javacc


    【解决方案1】:

    执行此操作的通常方法是在解析开始之前进行预处理 - 这就是 C 编译器通常的工作方式。如果您必须在解析期间执行此操作,那么您将需要使用自定义输入流——请参阅有关如何执行此操作的文档。而且您必须非常小心前瞻。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多