nom*_*ian 5 eclipse dsl interpreter xtext
我使用Xtext编写了一个DSL.我想要的是执行该DSL以执行其中的好事.
我编写了myDslGenerator类,在xtend中实现接口IGenerator以生成java代码,并且它工作正常.
我有两个问题;
谢谢,
萨尔曼
基本上,解释器和代码生成器的工作原理完全不同。代码生成器就像一个编译器:它们以另一种语言创建DSL的可执行代码。另一方面,解释器用于遍历您的DSL并在您自己的环境中执行它们。这意味着生成的代码不必(但当然可以)取决于您的DSL,可以更快/更优化。口译员需要理解您语言的结构,但可以在开发IDE中执行,而无需运行其他应用程序。
AFAIK Xtext不支持编写解释器,它有点超出了它们的范围(并非完全-对于Xbase表达式,有一个XbaseInterpreter实例,可以重用-只要您正确设置其类路径),因为它们是特定于语言的。
我也不知道任何有关解释Xtext DSL的分步教程(甚至不包括XbaseInterpreter),但是它基本上可以归结为AST的遍历,并且当遍历一个节点时,相应的语句将动态执行。 。为了使这种遍历正常工作,解释器必须维护变量和其他引用的(可能是分层的)上下文。
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |