Java 有没有使用ANTLR或类似工具实现的简单语言?

Java 有没有使用ANTLR或类似工具实现的简单语言?,java,antlr,interpreter,Java,Antlr,Interpreter,我正在尝试建立一种简单的解释语言,用于学习目的。我已经阅读了无数关于ANTLR和JavaCC的理论和教程,但我不知道如何让它真正发挥作用 我的最佳学习方法是“拆开一些东西,然后再把它们重新组装起来”,那么,有没有一些简单语言的工作示例是通过ANTLR或类似工具实现的 类似于以下的内容可能很好: x = 1 if x == 1 print "true" 注意:您可以使用另一种方法,查看为您生成所有代码 从XText文档中: 与常见的解析器生成器(如JavaCC或ANTLR)不同,

我正在尝试建立一种简单的解释语言,用于学习目的。我已经阅读了无数关于ANTLR和JavaCC的理论和教程,但我不知道如何让它真正发挥作用

我的最佳学习方法是“拆开一些东西,然后再把它们重新组装起来”,那么,有没有一些简单语言的工作示例是通过ANTLR或类似工具实现的

类似于以下的内容可能很好:

x = 1

if x == 1  
     print "true"

注意:您可以使用另一种方法,查看为您生成所有代码

从XText文档中:

与常见的解析器生成器(如JavaCC或ANTLR)不同,Xtext从输入语法派生的不仅仅是解析器和词法分析器(lexer)。语法语言用于描述和生成:

  • 基于ANTLR 3的增量解析器和词法分析器,用于从文本中读取模型
  • Ecore型号(可选)
  • 将模型写回文本的序列化程序
  • 链接器,用于在模型元素之间建立交叉链接
  • EMF资源接口的实现,完全支持加载和保存EMF模型,以及
  • 将该语言集成到EclipseIDE中
生成所有零件后,您可以根据需要对其进行分析(和测试)


为什么不为一种非常简单的语言定义一种语法,并尝试实现它呢?使用ANTLR创建解析树,然后找出如何“评估”树。首先,不要为声明或数据类型(每个值都是整数)操心,支持3种语句类型:赋值、if语句和
打印

在Google代码和Github上可能会找到很多小语言

这是我几年前在ANTLR做的一个课堂项目中使用的一种玩具语言:
[无耻插头]为什么不买我的书?我有所有你需要的东西来组合一种语言,包括多个口译员等等。

非常好

当然,还有StackOverflow,它有大量的ANTLR内容。例如:


尽管语言实现模式非常简要地提到了ANTLR是如何工作的。因此,您真的应该建议etheros首先购买ANTLR参考书,然后再购买一本语言实现模式:我从那个链接中查看了“Q”语言的代码,它正是我要找的!谢谢你的链接,我期待着购买这本书。我没有测试它,但浏览了你的谷歌页面:看起来不错,而且有很好的文档记录!我只是想补充一点,尽管我使用的是ANTLRv3,但您的语言是一个非常宝贵的学习助手。