教程不详细写,直接代码:
1.MyDsl.xtext
grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals
generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"
DomainModel:
entities+=Entity;
Entity:
'entity' name=ID '{' '}';
2.运行GenerateMyDsl.mwe2
3.Template.xpt
«IMPORT org::xtext::example::mydsl::myDsl»
«EXTENSION templates::Extensions»
«DEFINE main FOR myDsl::Entity-»
«FILE name+".java"-»
public class «name» {
public «name»(){}
}
«ENDFILE-»
«ENDDEFINE»
4.MyDslGenerator.mwe2
下面这句很重要,没有的话一般都不成功:
metaModel = org.eclipse.xtend.typesystem.emf.EmfRegistryMetaModel{}
module workflow.MyDslGenerator
import org.eclipse.emf.mwe.utils.*
var targetDir = "src-gen"
var fileEncoding = "UTF-8"
var modelPath = "src/model"
Workflow {
component = org.eclipse.xtext.mwe.Reader {
// lookup all resources on the classpath
// useJavaClassPath = true
// or define search scope explicitly
path = modelPath
// this class will be generated by the xtext generator
register = org.xtext.example.mydsl.MyDslStandaloneSetup {}
load = {
slot = "entities"
type = "Entity"
}
}
component = org.eclipse.xpand2.Generator {
metaModel = org.eclipse.xtend.typesystem.emf.EmfRegistryMetaModel{}
expand = "templates::Template::main FOREACH entities"
outlet = {
path = targetDir
}
fileEncoding = fileEncoding
}
}
5.Example.mydsl
entity EmptyEntity {
}
6.Extensions.ext
import org::xtext::example::mydsl::myDsl;
分享到:
相关推荐
xtext基础入门说明资料
Xtext 2.0 的文档。描述了Xtext2.0的新特性。
a tutorail for Xtext to develop your own DSL
Xtext 2.0.0 JavaDoc
[Packt Publishing] 领域特定语言 (Xtext & Xtend 实现) (英文版) [Packt Publishing] Implementing Domain-Specific Languages with Xtext and Xtend (E-Book) ☆ 图书概要:☆ Learn how to implement a DSL ...
使用Xtext和Xtend来开发特定领域语言.包括实现IDE编辑环境(语法高亮,快速更正,语法检查等),实现独立的编译器
Xtext是一个真正的实现编程语言的开源框架。它使用了人们熟知的方法来实现语言,比如解释器、符号表、编译器等。
Learn how to implement a DSL with Xtext and Xtend using easy-to-understand examples and best practices About This Book Leverage the latest features of Xtext and Xtend to develop a domain-specific ...
走eclipse的商店或者更新只能下载的最新版本的插件,有些依赖必须老版本的。
the xtext user manual
使用Xtext和Xtend来开发特定领域语言.包括实现IDE编辑环境(语法高亮,快速更正,语法检查等),实现独立的编译器
了解如何使用易于理解的示例和最佳实践,使用xtext和Xtend来实现DSL。
使用Xtext和Xtend来开发特定领域语言.包括实现IDE编辑环境(语法高亮,快速更正,语法检查等),实现独立的编译器
使用Xtext和Xtend来开发特定领域语言.包括实现IDE编辑环境(语法高亮,快速更正,语法检查等),实现独立的编译器
org.xtext.example.statemachine :所述的statemachine的Xtext语言(一个例子的Xtext语言的变型)和运行时代码(解析器,串行化器等)的定义org.xtext.example.statemachine.ui :对的statemachine语言的文本编辑器...
Eclipse Xtext:trade_mark: Eclipse Xtext是用于开发编程语言和的框架。 它涵盖了完整语言基础结构的所有方面,从解析器,链接器,编译器或解释器,到用于Eclipse和基于Web的IDE的功能完善的顶级IDE集成。 此外,...
Implementing Domain Specific Languages with Xtext and Xtend(2nd) 英文epub 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
NULL 博文链接:https://hoonee.iteye.com/blog/2078959
Implementing Domain Specific Languages with Xtext and Xtend(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 ...
使用Xtext和Xtend来开发特定领域语言.包括实现IDE编辑环境(语法高亮,快速更正,语法检查等),实现独立的编译器