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 language. Integrate Xtext with popular third party IDEs and get the best out of both worlds. Discover how to test a DSL implementation and how to customize runtime and IDE aspects of the DSL Who This Book Is For This book is targeted at programmers and developers who want to create a domain-specific language with Xtext. They should have a basic familiarity with Eclipse and its functionality. Previous experience with compiler implementation can be helpful but is not necessary since this book will explain all the development stages of a DSL. What You Will Learn Write Xtext grammar for a DSL; Use Xtend as an alternative to Java to write cleaner, easier-to-read, and more maintainable code; Build your Xtext DSLs easily with Maven/Tycho and Gradle; Write a code generator and an interpreter for a DSL; Explore the Xtext scoping mechanism for symbol resolution; Test most aspects of the DSL implementation with JUnit; Understand best practices in DSL implementations with Xtext and Xtend; Develop your Xtext DSLs using Continuous Integration mechanisms; Use an Xtext editor in a web application In Detail Xtext is an open source Eclipse framework for implementing domain-specific languages together with IDE functionalities. It lets you implement languages really quickly; most of all, it covers all aspects of a complete language infrastructure, including the parser, code generator, interpreter, and more. This book will enable you to implement Domain Specific Languages (DSL) efficiently, together with their IDE tooling, with Xtext and Xtend. Opening with brief coverage of Xtext features involved in DSL implementation, including integration in an IDE, the book will then introduce you to Xtend as this language will be used in all the examples throughout the book. You will then explore the typical programming development workflow with Xtext when we modify the grammar of the DSL. Further, the Xtend programming language (a fully-featured Java-like language tightly integrated with Java) will be introduced. We then explain the main concepts of Xtext, such as validation, code generation, and customizations of runtime and UI aspects. You will have learned how to test a DSL implemented in Xtext with JUnit and will progress to advanced concepts such as type checking and scoping. You will then integrate the typical Continuous Integration systems built in to Xtext DSLs and familiarize yourself with Xbase. By the end of the book, you will manually maintain the EMF model for an Xtext DSL and will see how an Xtext DSL can also be used in IntelliJ. Style and approach A step-by step-tutorial with illustrative examples that will let you master using Xtext and implementing DSLs with its custom language, Xtend. Table of Contents Chapter 1: Implementing a DSL Chapter 2: Creating Your First Xtext Language Chapter 3: Working with the Xtend Programming Language Chapter 4: Validation Chapter 5: Code Generation Chapter 6: Customizing Xtext Components Chapter 7: Testing Chapter 8: An Expression Language Chapter 9: Type Checking Chapter 10: Scoping Chapter 11: Continuous Integration Chapter 12: Xbase Chapter 13: Advanced Topics Chapter 14: Conclusions
2023-03-31 10:19:01 6.17MB Domain Specific Languages Xtext
1
[计算机科学经典著作].Computer.Graphics,.C.Version.(2nd.Ed)
2023-03-29 13:49:21 18.75MB Computer.Graphics .C.Version.(2nd.Ed)
1
英文原名:Programming Applications for Microsoft Windows 中文:Windows核心编程
2023-03-24 10:46:36 12.04MB windows
1
Sipeed 的K210是真的香啊,但是内部的这个esp8285是做的真的不咋地。买回来之后这个8285折腾死我了,好几次固件出问题,掉固件,问了客户姐姐和群主“泽畔”大佬才解决,所以总结下。 下载固件: 首先我们需要先下载8285的固件,在模组的内部是k210是通过串口2和8285进行连接的,8285使用的是AT固件所以我们直接下载乐鑫官网的固件即可。不要使用安信可的固件,因为安信可的固件和8285不兼容。虽然内部是8285但是实际上和8266是没有什么区别的(具体区别可以参考这篇博客:关于ESP8266和ESP8285的对比),所以我们直接下载8266的AT固件即可,如下图所示。 下载烧
2023-03-11 10:03:28 589KB ed esp ip
1
这篇文章主要介绍了PostgreSQL物化视图(materialized view)过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、创建视图 CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name [ (column_name [, ...] ) ] [ WITH ( storage_parameter [= value] [, ... ] ) ] [ TABLESPACE tablespace_name ] AS query [ WITH [ NO ] DATA ] 2、删除
2023-03-06 14:49:16 46KB al ali ed
1
将8个彩灯共阴极接地,阴极分别为EP1C3的8个I/O输出变化的电平,来控制彩灯的点亮,流水灯分不同的时段,指示灯有不同的显示模式,开始时刻LED流水灯从左到右依次点亮,第二时间段LED流水灯从右到左依次熄灭,第三时间段LED流水灯从中间向两边依次点亮,第四时间段LED流水灯从两边向中间依次熄灭,第五时间段LED流水灯由1,4点亮,然后2,5点亮……以此类推,最后完成一次循环又回到开始时刻,进入第二轮循环,来实现LED流水灯的控制实验。
1
Algorithms in Java 3rd Ed Part5 Graph Algorithms
2023-02-22 17:31:30 4.18MB Algorithms in Java 3rd
1
Introduction to Algorithms.3rd ed.算法导论.2013, 中文版,第三版
2023-02-20 21:30:55 140.68MB 算法导论 算法
1
加州理工学院的教授编写的教材(被麻省理工学院数学系作为教材使用)
2023-02-20 14:34:54 6.42MB Calculus
1
具体表现:   调用MediaRecorder的start()与stop()间隔不能小于1秒(有时候大于1秒也崩),否则必崩。  错误信息: java.lang.RuntimeException: stop failed. at android.media.MediaRecorder.stop(Native Method)  解决办法:   在stop以前调用setOnErrorListener(null);就行了!  相关代码: /** 开始录制 */ @Override public MediaPart startRecord() { if (mMediaObj
2023-02-01 19:25:01 42KB c ec ed
1