`
iffiffj
  • 浏览: 158761 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

XText简单例子入门

    博客分类:
  • DSL
阅读更多
教程不详细写,直接代码:
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;
分享到:
评论
1 楼 halu126 2013-08-22  
好乱  

相关推荐

    xtext基础入门说明资料

    为了更好地理解Xtext的语法语言,本节提供了一个简单的例子。通过这个例子,读者可以了解语法的基本结构和特点。 **3.2 语法** **3.2.1 语言声明** 每个Xtext语法文件都以`grammar`关键字开头,后面跟上语言的...

    Xtext Documentation

    通过1.5分钟快速入门教程,用户可以迅速了解如何通过Xtext创建一个简单的DSL。 #### 进阶教程 进阶教程涵盖了如何使用Xtend编写代码生成器、创建自定义验证规则等更高级的功能。 ### 参考文档 #### 概述 概述...

    xtext.第06章-自定义xtext组件.pdf

    Xtext是Eclipse基金会下的一个项目,它允许开发者使用简单的注解快速定义领域特定语言(DSL),并为其生成完整的编程语言编辑器。Xtend是一种基于JVM的语言,它简化了Java代码的编写并提供了与Java的互操作性,可以...

    eclipse Xtext javadoc

    Eclipse Xtext是一款强大的语言工具包,用于构建领域特定的语言(DSL)和代码生成器。它基于Eclipse平台,提供了一套完整的框架,允许开发者创建自己的语法定义,并自动生成编辑器、编译器以及相关的代码生成逻辑。...

    xtext 2.7.3

    《Xtext 2.7.3:构建编程语言的开源框架》 Xtext,作为一款强大的开源框架,专为创建自定义编程语言而设计。它以其高效、灵活和易用性,深受开发者们的喜爱。在Xtext 2.7.3版本中,这一特性得到了进一步的强化和...

    xtext 2.7.0eclipse插件

    "xtext 2.7.0 Eclipse插件"是其中的一个关键组件,主要用于创建和处理领域特定语言(DSL)的工具。本篇文章将详细介绍xtext插件的功能、用途以及如何在Eclipse中安装和使用老版本的插件。 首先,xtext是一款开源的...

    Xtext Documentation解读

    Xtext支持从简单的标记语言到复杂的类型系统,让开发者能够构建出易于理解和使用的定制语言。 二、语法定义 Xtext使用Eclipse Modeling Language (EMF)的扩展——Xtext Grammar来定义语言的语法规则。这种语法定义...

    how to use xtext

    通过一个简单的例子介绍Xtext语法语言的基本用法,包括语言声明、EPackage声明、规则定义等。 #### 4.2 语法 详细解释Xtext语法语言的构成,包括语言声明、EPackage声明、规则、解析器规则、数据类型规则、枚举...

    使用Xtext和Xtend实现域特定语言(第二版)-中文-第四章.pdf

    在本章中,我们将深入探讨如何使用Xtext和Xtend来实现域特定语言(DSL)的验证功能。验证在DSL开发中起着至关重要的作用,因为它允许在用户编辑DSL时实时检查并报告错误和警告,确保代码符合既定的语法规则和约束。 ...

    使用Xtext和Xtend实现域特定语言(第二版)-中文翻译-第一章

    DSL的例子包括SQL、用于符号数学的Mathematica、HTML以及一些用于特定任务的语言,它们可以将程序或规范编译或解释为GPL,或者转换为其他系统可处理的简单数据格式。 虽然XML是一种广泛使用的数据交换格式,它对...

    [Xtext Xtend] 领域特定语言 (Xtext & Xtend 实现) (英文版)

    [Packt Publishing] 领域特定语言 (Xtext & Xtend 实现) (英文版) [Packt Publishing] Implementing Domain-Specific Languages with Xtext and Xtend (E-Book) ☆ 图书概要:☆ Learn how to implement a DSL ...

    Xtend官方文档-第一章-入门

    Xtend 是一种静态类型的编程语言,可以转化为可理解的 Java 源代码。其 语法和语义构成基于 Java 编程语言,但在许多方面得到改进: 扩展方法 - 增强封闭类型新功能 Lambda表达式 - 简洁的匿名函数常量语法 ...

    使用Xtext和Xtend实现域特定语言(第二版)-中文-第二章

    在本章中,我们将实现一个简单的DSL,它能够建模entities,类似于简单的Java类。每个entity可以有超类和属性。在Xtext中,DSL的语法是通过一个专门的描述文件定义的,通常以.xtext扩展名结尾。通过修改语法文件,...

    Implementing.Domain.Specific.Languages.with.Xtext.and.Xtend.2nd.Ed

    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 ...

    xtext.第05章-代码生成.pdf

    在第五章中,我们专注于使用Xtext和Xtend来实现代码生成,这是域特定语言(DSL)开发中一个重要的环节。DSL允许开发者专注于特定的业务领域,而Xtext和Xtend则是实现这些语言的强大工具。Xtext框架能够帮助我们构建...

    XTEXT 开发教程

    1. **第一个例子**:通过一个简单的例子来了解 Xtext 语法的基本结构。 2. **语法** - **语言声明**:定义 DSL 的名称和版本。 - **EPackage 声明**:声明 EPackage 以便于与其他 EMF 模型交互。 - **规则**:...

    用XText工具开发的自定义DSL语言

    在本案例中,我们用XText创建了一个自定义的DSL语言,目的是实现一个简单的表达式解释器。 DSL的开发首先需要定义其语法规则。XText通过Ecore模型来定义这些规则,这是一种元模型,用于描述数据结构和关系。Ecore...

    xtext.第09章-类型检查.pdf

    使用Xtext和Xtend来开发特定领域语言.包括实现IDE编辑环境(语法高亮,快速更正,语法检查等),实现独立的编译器

Global site tag (gtag.js) - Google Analytics