我使用伟大的ANTLR4库实现简单的预处理器。程序本身在几次迭代中运行 - 在每次迭代中,未来的输出都会稍微修改。
目前我使用TokenStreamRewriter及其方法delete
,insertAfter
,replace
和getText
。
不幸的是,我无法重写以前重写过的令牌(得到IllegalArgumentException
)。这个is not a bug但根据source code多次替换无法以任何方式实现。
我认为存在适当的解决方案,因为这似乎是一个常见问题。任何人都可以提示我吗?我宁愿使用一些现有的和经过测试的解决方案而不是重新实现重写器本身。
也许重写者不是正确的工具。
感谢您的帮助