首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写ANTLR目标

编写ANTLR目标
EN

Stack Overflow用户
提问于 2013-10-30 06:37:46
回答 3查看 317关注 0票数 2

在哪里讨论了为ANTLR创建新语言目标的过程?虽然从可用的目标数量来看,这似乎是ANTLR3的一些常识,但我没有看到源代码中捆绑的任何文档,也没有发现谷歌有任何明显的地方。

我希望找不到任何这样的ANTLR4文档,但我一点也看不到。

EN

回答 3

Stack Overflow用户

发布于 2013-10-30 06:55:05

ANTLR 3和ANTLR 4的过程完全不同。

  • ANTLR 3
    • 大多数处理都是由ANTLR工具执行的,因此运行时非常简单。多个目标的
    • 源代码存储为主要ANTLR 3 repository.

的一部分

  • ANTLR4
    • 大多数处理都是由ANTLR运行时执行的,因此运行时实际上是一小部分复杂的、精致的、对性能极为敏感的源代码。即使对散列码或数据结构的选择稍有改变,也可能意味着O(n³)或更差的速度或内存usage.
    • Targets是独立开发和维护的,而不是存储在all.

的主ANTLR4库中

可以从C# target的源代码控制历史中推断出一种方法,但可能不是唯一的方法。除此之外,您还应该对Java和目标语言中可用和使用的数据结构有很好的理解。运行时算法对散列代码的计算方式和用于在map中存储对象的方式非常敏感,因此需要准确地保留Java目标的行为语义,即使这意味着生成的代码看起来不像Java目标。

票数 1
EN

Stack Overflow用户

发布于 2013-10-30 06:54:00

在撰写本文时,还没有关于如何创建新的ANTLR目标的指南。Sam Harwell,ANTLR4的合著者,the C# target的作者,已经启动了making notes on how to create a new target,但它还没有完成。

对编写新目标感兴趣的人可以查看C#是如何实现的(当然还有原始的Java目标)。但要意识到这绝不是一项微不足道的任务!

票数 0
EN

Stack Overflow用户

发布于 2013-11-01 01:57:04

也许有人可以做一个Jython桥,这样我们至少可以很容易地获得Python?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19670493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档