我一直在帮助增强公司内部的一种20多年专有语言。它是一种大型、图灵完备的语言。将其翻译成其他语法体系(如Antlr)不是一个选项(这不由我决定)。
在大多数情况下,扩展语法都很顺利。但偶尔会出现减少-减少或移位-减少的情况
- 很难消除
- 有时根本没有意义(对我这个脑子笨的人来说)
经过漫长而痛苦地查看 y.output文件和实验性的语法重构后,我通常能够得到我想要的结果。有时我不得不做出不满意的妥协。
那么,有没有工具可以吸入yacc语法,增强浏览、实验和允许调试更改?
如果我添加一个产生式,我想看到的不止是“用于所有地方的原子产生式”(比如标识符)“与规则foo冲突”(是的,还有更多的信息,s/r,r/r,但我想你明白我的意思)。除了戴上我的头脑风暴帽子,试图想象符号栈和状态机的相互作用之外,还会有一些提示是很好的。
更新:我想我应该澄清一下。我们使用Berkeley Yacc。我一直在使用最新版本的Bison进行测试。对于输出,我已经编译了带有 --report=itemset 的语法。
我的目标是寻找能够增强 yacc 附带的语法调试工具的 外部 工具。默认集合今天很痛苦。帮我找到更好的交互式工具,比如您可以与Antlr一起使用的那些工具。