Xtext什么
在Xtext官方网站是这么说的
“Building your own domain-specific languages has never been so easy. Just put your grammar in place and you not only get the working parser and linker but also first class Eclipse support.”
翻译过来就是说创建你自己的DSL从来没有这么简单过。你仅仅须要写好你的语法,然后剩下的事情交给Xtext来做(包含parser。linker和在Eclipse中的无缝支持)。
想要学习Xtext,你至少须要了解下面技术:
- Principles of grammar (parser(left associativity, precedence, etc ) and lexer), EBNF --> Write xtext
- Antlr --> generate parser
- mwe2
- EMF and Ecore --> in memory expression of model
- Dependency Injection and Google Guice.--> put it in together
- Developing using Eclipse --> IDE support
- Java language, libraries and JVM
- Xtend --> one DSL for made Java developer more easy
- Xbase --> make write xtext more easy
在进一步之前,先解释一下,什么是DSL,翻译过来就是某一个详细领域的语言。DSL开发人员能够给某一个领域或者行业。开发一种在这个领域或者行业的专家
都能理解的方言。他们意识不究竟层的详细实现,从而来专注于自己的本职工作。提高效率,隔离责任等。
Xtext就是来实现DSL的一个免费开源的项目。
使用Xtext你仅仅须要编写Xtext文件。就是你的DSL的语法。和扩展Xtext提供给你的一些方法,就能够实现一个由Eclipse支持的使用DSL语言的开发环境,
这个环境能够向JDT或或者PDT一样,提供语法高亮。自己主动不全,代码辅助,语法错误检查和改动方法建议等功能。
Xtext的工作流程:
- 编写Xtext文件
- 通过mwe2生成全部你须要的代码的基本框架。这个框架就能够执行。
当中包含EMF须要的Ecore和相应的对象,相应的编辑器,UT測试等。
- 在执行的过程中,是通过Guice来讲个方面连接起来的
以后有时间的话,我会将各个部分连接起来说一说的。
http://www.euclideanspace.com/software/development/eclipse/xtext/index.htm
版权声明:本文博客原创文章。博客,未经同意,不得转载。
Xtext什么的更多相关文章
- 2018-01-19 Xtext试用: 5步实现一个(中文)JVM语言
续上文Xtext试用: 快速实现简单领域专用语言(DSL). 基于官方教程: Five simple steps to your JVM language 达成如下语言: 它被Quan6JvmMode ...
- 2018-01-19 Xtext试用: 快速实现简单领域专用语言(DSL)
环境搭建 使用的Eclipse版本: Oxygen.1a Release (4.7.1a) Build id: 20171005-1200, 通过添加Xtext - Download上列出的Relea ...
- IDEA启动报错Internal error. Please report to http://jb.gg/ide/critical-startup-errors java.lang.NoClassDefFoundError: org/eclipse/xtext/xbase/lib/Exceptions
报错内容: IDEA 启动报错 Internal error. Please report to http://jb.gg/ide/critical-startup-errors 报错图为: 我尝试找 ...
- 年度巨献-WPF项目开发过程中WPF小知识点汇总(原创+摘抄)
WPF中Style的使用 Styel在英文中解释为”样式“,在Web开发中,css为层叠样式表,自从.net3.0推出WPF以来,WPF也有样式一说,通过设置样式,使其WPF控件外观更加美化同时减少了 ...
- C# listview 单击列头实现排序 <二>
单击列头实现排序,首先在羡慕中添加下面的帮助实现的类:具体的代码: using System; using System.Collections; using System.Windows.Forms ...
- LINQ系列:LINQ to XML类
LINQ to XML由System.Xml.Linq namespace实现,该namespace包含处理XML时用到的所有类.在使用LINQ to XML时需要添加System.Xml.Linq. ...
- NHibernate生成实体类、xml映射文件
最近工作电脑装完win10后,之前使用的codeSmith安装不了,索性自己写一个. 界面比较简单,如下图: 第一行为Oracle数据库的连接字符串.连接成功后,填充表到第4行的下拉列表中. 第二行为 ...
- 转!!MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎: 1.存储引擎其实就是如何实现存储数 ...
- JVM 平台上的各种语言的开发指南
JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...
随机推荐
- QT中.pro文件的写法
QT中.pro文件的写法 qmake 变量 含义 #xxxx 注释, 从“#”开始,到这一行结束 SOURCES 指定源文件 SOURCES = *.cpp 对于多源文件,可用空格分开 SOURC ...
- Delphi 拖放文件编程(覆盖WM_DROPFILES消息)
unit Unit1; interface usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ...
- 北京出dell s2740显示器 1900 - V2EX
水木社区归档站 北京出dell s2740显示器 1900 - V2EX 北京出dell s2740显示器 1900 By kekex · 6 小时 6 分钟前 · 188 次点击 购于今年4月份 镜 ...
- Python中的继承
继承: 面向对象程序语言的一个重要特点是继承.继承提供了在已存在类的基础上创建新类的方法.继承的子类 拥有被继承的父类的所有方法,在此基础上,子类还可以添加自己的专有方法.继承是类的强有力的特点.一些 ...
- shakes hands
Description On February, 30th n students came in the Center for Training Olympiad Programmers (CTOP) ...
- 由于“Table(T_Test)”没有主键,因此无法在其上执行 Create、Update 或 Delete 操作
在使用Linq To Sql查询的时候,遇到这么个问题,如图所示: 出现这个问题的原因就像途中所说的——没有主键(现在终于初步知道“为什么别人常说数据库中的逻辑主键是为了在编程中方便使用”的原因了,估 ...
- 基于visual Studio2013解决面试题之0304镜像二叉树
题目
- C++ overloading contructor
// overloading class constructors #include <iostream> using namespace std; class Rectangle ...
- HDU 4296 Buildings (YY)
题意: 给定N个物体,每个物体有两个参数w,s. w代表它自身的重量: s代表它的强度.现在要把这些物体叠在一起,会产生一个PDV值. PDV解释:(Σwj)-si, where (Σwj) st ...
- Android studio ElasticDownloadView
找到个开源项目,地址:https://github.com/Tibolte/ElasticDownload 下载进度效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...