为简单的Java / Groovy DSL构建运行器/执行器/解释器

时间:2014-05-19 20:06:28

标签: java compiler-construction antlr interpreter dsl

我正在构建一个超级简单,面向任务的脚本语言,甚至可能成为DSL的主要候选者。我们的想法是,非程序员能够一起拍摄"脚本"写在这"语言"没有真正需要了解(好)编程。一些超级超级简单如:

Dog dog = new Dog   
dog goto waterBowl
dog drinks water
dog takes nap

粗略关于"陈述类型的概念"脚本将包含(不要过多地读入它们)。

所以我需要在运行时解释这些语句,并在执行时实际执行某些操作(顺序执行,一次一个语句)。

可以ANTLR用于此类运行时解释吗?我的理解是它的只是一个编译器生成器。我真的不需要编译器;我只需要能够执行超简单语言/ DSL语句的东西。关于哪些工具/库可能是我的主要候选人的想法?

1 个答案:

答案 0 :(得分:1)

  

ANTLR可用于此类运行时解释吗?

不,ANTLR不能用于解释/评估。 ANTLR是一个解析器生成器:给定语言的语法,它为它生成一个解析器。然后可以使用此解析遍历解析树,您自己可以使用普通代码对其进行求值。

  

我的理解是它只是一个编译器生成器。

如果是"编译器"你的意思是翻译,然后,是的,你可以称之为,虽然我找到"解析器生成器"一个更好的术语。

  

我真的不需要编译器;我只需要能够执行超简单语言/ DSL语句的东西。关于哪些工具/库可能是我的主要候选人的想法?

Any parser generator可以帮助您为您的语言创建解析器,但解析后应该发生的事情是您需要自己编程的。