讨论为 ANTLR 创建新语言目标的过程在哪里?尽管由于可用目标的数量,这似乎是 ANTLR3 的一些常识,但我没有看到源代码中捆绑了任何文档,也没有在 Google 中找到任何明显的地方。
我希望找不到任何关于 ANTLR4 的此类文档,但我根本没有看到任何此类文档。
ANTLR 3 和 ANTLR 4 的过程完全不同。
可以从C# 目标的源代码控制历史中推断出一种方法,但可能不是唯一的方法。除此之外,您应该对 Java 和您的目标语言中可用和使用的数据结构有很好的理解。运行时算法对哈希码的计算方式和用于在映射中存储对象的方式极为敏感,因此需要准确保留 Java 目标的行为语义,即使这意味着生成的代码看起来不一样像Java目标一样。
在撰写本文时,还没有关于如何创建新 ANTLR 目标的指南。Sam Harwell,ANTLR4 的共同作者,C# target的作者,已经开始记录如何创建一个新的 target,但它还没有完成(还没有完成)。
对编写新目标感兴趣的人可以查看 C# 是如何实现的(当然还有原始的 Java 目标)。但要意识到这绝不是一项微不足道的任务!
也许有人可以制作一个 Jython 桥,这样我们至少可以轻松获得 Python?