Implementing domain-specific languages with Xtext and Xtend

If you know Eclipse then learning how to implement a DSL using Xtext is a natural progression. And this guide makes it easy to get started through a step-by-step approach accompanied with simple examples. Learn to quickly develop a domain-specific language with Xtext Implement any aspect of a DSL us...

Full description

Bibliographic Details
Main Author: Bettini, Lorenzo (-)
Format: eBook
Language:Inglés
Published: Birmingham : Packt Publishing 2013.
Edition:1st edition
Series:Community experience distilled
Subjects:
See on Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009627880106719
Table of Contents:
  • Cover
  • Copyright
  • Credits
  • About the Author
  • Acknowledgement
  • About the Reviewers
  • www.PacktPub.com
  • Table of Contents
  • Preface
  • Chapter 1: Implementing a DSL
  • Domain Specific Languages
  • So, why should you create a new language?
  • Implementing a DSL
  • Parsing
  • The Abstract Syntax Tree (AST)
  • IDE integration
  • Syntax highlighting
  • Background parsing
  • Error markers
  • Content Assist
  • Hyperlinking
  • Quickfixes
  • Outline
  • Automatic build
  • Summarizing DSL implementation
  • Enter Xtext
  • Installing Xtext
  • Let's try Xtext
  • The aim of this book
  • Summary
  • Chapter 2: Creating Your First Xtext Language
  • A DSL for entities
  • Creating the project
  • Xtext projects
  • Modifying the grammar
  • Let's try the Editor
  • The Xtext generator
  • The Eclipse Modeling Framework (EMF)
  • Improvements to the DSL
  • Dealing with types
  • Summary
  • Chapter 3: The Xtend Programming Language
  • An introduction to Xtend
  • Using Xtend in your projects
  • Xtend - a better Java with less "noise
  • Extension methods
  • The implicit variable - it
  • Lambda expressions
  • Multi-line template expressions
  • Additional operators
  • Polymorphic method invocation
  • Enhanced switch expressions
  • Debugging Xtend code
  • Summary
  • Chapter 4: Validation
  • Validation in Xtext
  • Default validators
  • Custom validators
  • Quickfixes
  • Textual modification
  • Model modification
  • Quickfixes for default validators
  • Summary
  • Chapter 5: Code Generation
  • Introduction to code generation
  • Writing a code generator in Xtend
  • Integration with the Eclipse build mechanism
  • Standalone command-line compiler
  • Summary
  • Chapter 6: Customizations
  • Dependency injection
  • Google Guice in Xtext
  • Customizations of IDE concepts
  • Labels
  • The Outline view
  • Customizing other aspects
  • Custom formatting
  • Other customizations.
  • Summary
  • Chapter 7: Testing
  • Introduction to testing
  • Junit 4
  • The ISetup interface
  • Implementing tests for your DSL
  • Testing the parser
  • Testing the validator
  • Testing the formatter
  • Testing code generation
  • Test suite
  • Testing the UI
  • Testing the content assist
  • Testing workbench integration
  • Testing the editor
  • Other UI testing frameworks
  • Testing and modularity
  • Clean code
  • Summary
  • Chapter 8: An Expression Language
  • The Expressions DSL
  • Creating the project
  • Digression on Xtext grammar rules
  • The grammar for the Expressions DSL
  • Left recursive grammars
  • Associativity
  • Precedence
  • The complete grammar
  • Forward references
  • Typing expressions
  • Type provider
  • Validator
  • Writing an interpreter
  • Using the interpreter
  • Summary
  • Chapter 9: Type Checking
  • SmallJava
  • Creating the project
  • SmallJava grammar
  • Rules for declarations
  • Rules for statements and syntactic predicates
  • Rules for expressions
  • The complete grammar
  • Utility methods
  • Testing the grammar
  • First validation rules
  • Checking cycles in class hierarchies
  • Checking member selections
  • Checking return statements
  • Checking for duplicates
  • Type checking
  • Type provider for SmallJava
  • Type conformance (subtyping)
  • Expected types
  • Checking type conformance
  • Checking method overriding
  • Improving the UI
  • Summary
  • Chapter 10: Scoping
  • Cross-reference resolution in Xtext
  • Containments and cross-references
  • The index
  • Qualified names
  • Exported objects
  • The linker and the scope provider
  • Component interaction
  • Custom scoping
  • Scope for blocks
  • Scope for inheritance and member visibility
  • Visibility and accessibility
  • Filtering unwanted objects from the scope
  • Global scoping
  • Packages and imports
  • The index and the containers
  • Checking duplicates across files.
  • Providing a library
  • Default imports
  • Using the library outside Eclipse
  • Using the library in the type system and scoping
  • Dealing with super
  • What to put in the index?
  • Additional automatic features
  • Summary
  • Chapter 11: Building and Releasing
  • Release engineering
  • Headless builds
  • Target platforms
  • Continuous integration
  • Introduction to Buckminster
  • Installing Buckminster
  • Using the Xtext Buckminster wizard
  • Building the p2 repository from Eclipse
  • Customizations
  • Defining the target platform
  • Build headlessly
  • Maintaining the examples of this book
  • Summary
  • Chapter 13: Xbase
  • Getting introduced with Xbase
  • The Expressions DSL with Xbase
  • Creating the project
  • The IJvmModelInferrer interface
  • Code generation
  • Debugging
  • The Entities DSL with Xbase
  • Creating the project
  • Defining attributes
  • Defining operations
  • Imports
  • Customizations
  • Summary
  • Bibliography
  • Index.