Index
A
- abstract factory / Dependency injection
- Abstract Syntax Tree (AST)
- about / The Abstract Syntax Tree (AST)
- access level modifiers / Visibility and accessibility
- Ace
- about / Your DSL editor on the Web
- Active Annotations / Other Xtend expressions
- actual type / Expected types
- additional operators
- about / Additional operators
- polymorphic method invocation / Polymorphic method invocation
- enhanced switch expressions / Enhanced switch expressions
- Xtend expressions / Other Xtend expressions
- Xtend IDE / Xtend IDE
- Xtend code, debugging / Debugging Xtend code
- aggregator project
- about / Using the Xtext project wizard
- Android applications
- about / IntelliJ and Gradle
- annotations
- about / Annotations
- ANTLR (ANother Tool for Language Recognition)
- about / Parsing
- ANTLR parser / Left recursive grammars
- assert methods
- about / JUnit 4
- assignment operator
- about / Associativity
- associative operation
- about / Associativity
- associativity
- about / Left recursive grammars
- atomic
- about / Left recursive grammars
- automatic features / Additional automatic features
B
- batch mode
- about / Customizing the type system
- Bintray
- reference link / Continuous Integration systems
- Buildship
- about / IntelliJ and Gradle
C
- CamelCase / Other customizations
- casts / Other Xtend expressions
- classes
- of same package / Classes of the same package
- clean code
- writing / Clean code
- code generation
- about / Introduction to code generation
- testing / Testing code generation
- code generator
- writing, in Xtend / Writing a code generator in Xtend
- integrating, with Eclipse build mechanism / Integration with the Eclipse build mechanism
- CodeMirror
- about / Your DSL editor on the Web
- common Java type model
- about / The common Java type model
- compiler
- customizing / Customizing the compiler
- Xbase type system, using / Using the type system in the compiler
- component interaction
- about / Component interaction
- container
- containers
- about / The index and the containers
- containment reference
- content assist
- testing / Testing the content assist
- context
- continuous integration (CI)
- about / Continuous integration
- continuous integration systems
- about / Continuous Integration systems
- Continuous Integration systems
- examples / Maintaining the examples of this book
- cross-reference resolution, Xtext
- about / Cross-reference resolution in Xtext
- containments / Containments and cross-references
- cross references / Containments and cross-references
- index / The index
- qualified names / Qualified names
- exported objects / Exported objects
- linker / The linker and the scope provider
- scope provider / The linker and the scope provider
- component interaction / Component interaction
- cross reference
- custom content assist
- about / Custom Content Assist
- custom formatting / Custom formatting
- customizations / Other customizations
- custom scoping
- about / Custom scoping
- scope, for blocks / Scope for blocks
- scope, for inheritance / Scope for inheritance and member visibility
- scope, for member visibility / Scope for inheritance and member visibility
- visibility / Visibility and accessibility
- accessibility / Visibility and accessibility
D
- Dangling Else Problem / Rules for statements and syntactic predicates
- data type rule
- about / Packages and imports
- Dependency Injection pattern / Dependency injection
- dependency inversion principle / Google Guice in Xtext
- derived state
- about / Derived State
- Dispatch Methods / Polymorphic method invocation
- Domain-Specific Languages (DSLs)
- about / Domain-Specific Languages
- need for / Need for a new language
- implementing / Implementing a DSL, Summarizing DSL implementation
- parsing / Parsing
- Abstract Syntax Tree (AST) / The Abstract Syntax Tree (AST)
- DSL
- improvements, performing / Improvements to the DSL
- types, dealing with / Dealing with types
- tests, implementing / Implementing tests for your DSL
- optimizations / Optimizations and fine tuning
- fine tuning / Optimizations and fine tuning
- installation, requisites / Installation requirements
- contributions / Make contributions easy
- DSL, for entities
- about / A DSL for entities
- creating / Creating the project
- Xtext projects / Xtext projects
- grammar, modifying / Modifying the grammar
- editor, using / Let's try the Editor
- DSL editor
- porting, on web / Your DSL editor on the Web
- duplicates
- checking, across files / Checking duplicates across files
- dynamic overloading / Polymorphic method invocation
E
- Eclipse
- URL / Installing Xtext
- Eclipse build mechanism
- code generator, integrating with / Integration with the Eclipse build mechanism
- Eclipse feature
- Eclipse Oomph Authoring
- URL / Make contributions easy
- Ecore diagram editor / Defining the Ecore model
- Ecore model
- Xtext project, creating / Creating an Xtext project from an Ecore model
- defining / Defining the Ecore model
- URL / Defining the Ecore model
- tweaking / Tweaking the Ecore model
- new rules, adding / Adding new rules to the language
- editor
- testing / Testing the editor
- EMF
- reference link / The Eclipse Modeling Framework (EMF)
- about / The Eclipse Modeling Framework (EMF)
- EMF classes
- generating / Generating EMF classes during the build
- EMF Java classes
- customizing / Customizing the EMF Java classes
- Entities DSL
- with Xbase / The Entities DSL with Xbase
- project, creating / Creating the project
- attributes, defining / Defining attributes
- operations, defining / Defining operations
- imports / Imports
- validation / Validation
- enum rule / Visibility and accessibility
- expected type / Expected types
- exponentiation operator
- about / Associativity
- exported objects
- about / Exported objects
- expressions
- typing / Typing expressions
- expressions, typing
- loose-type computation / Loose type computation, strict type checking
- strict-type checking / Loose type computation, strict type checking
- type computer / Type computer
- validator / Validator
- expressions DSL
- with Xbase / The Expressions DSL with Xbase
- project, creating / Creating the project
- IJvmModelInferrer interface / The IJvmModelInferrer interface
- code generation / Code generation
- debugging / Debugging
- Expressions DSL
- about / The Expressions DSL
- project, creating / Creating the project
- Xtext grammar rules, digression / Digression on Xtext grammar rules
- grammar / The grammar for the Expressions DSL
- extension
- using / Using 'extension'
- extension methods / Extension methods
- extension methods providers / Using 'extension'
F
- factory method / Dependency injection
- formatter
- testing / Testing the formatter
- about / Formatter
- formatting request / Custom formatting
- forward reference
- about / Forward references
- custom content assist / Custom Content Assist
- Functional Tests
- about / Other testing frameworks
G
- General Purpose Languages (GPL)
- about / Domain-Specific Languages
- generation gap pattern
- about / Customizing the EMF Java classes
- Generation Gap Pattern / The Xtext generator
- global scoping
- about / Global scoping
- Google Guice
- reference link / Dependency injection
- in Xtext / Google Guice in Xtext
- Gradle
- about / IntelliJ and Gradle
- URL / IntelliJ and Gradle
- Gradle Wrapper
- about / IntelliJ and Gradle
- Groovy
- URL / IntelliJ and Gradle
H
- Hollywood Principle / Writing a code generator in Xtend
- Home Automation / Improvements to the DSL
- hovering
- about / Hyperlinking
- hyperlinking
- about / Hyperlinking
I
- IDE concepts customization
- about / Customizations of IDE concepts
- labels / Labels
- Outline view / The Outline view
- content assistant / Customizing other aspects
- IDE integration
- about / IDE integration
- syntax, highlighting / Syntax highlighting
- background validation / Background validation
- error markers / Error markers
- content assist / Content assist
- hyperlinking / Hyperlinking
- quickfixes / Quickfixes
- outline / Outline
- automatic build / Automatic build
- Domain-Specific Languages (DSLs), implementing / Summarizing DSL implementation
- IJvmModelInferrer interface
- about / The IJvmModelInferrer interface
- imported Ecore model
- switching / Switching to an imported Ecore model
- EMF classes, generating / Generating EMF classes during the build
- EMF Java classes, customizing / Customizing the EMF Java classes
- import mechanism
- about / Packages and imports
- index
- indexing
- about / Component interaction
- integration tests
- about / Testing workbench integration
- IntelliJ
- about / Enter Xtext
- IntelliJ IDEA
- about / IntelliJ and Gradle
- URL / IntelliJ and Gradle
- interpreter
- writing / Writing an interpreter
- using / Using the interpreter
- inversion of control / Google Guice in Xtext
- ISetup interface
- about / The ISetup interface
J
- Java 8 Streams / Lambda expressions
- Java Development Tools (JDT)
- about / JUnit 4
- Java error markers
- reusing / Reusing Java error markers
- Java model / The common Java type model
- JavaScript
- about / Your DSL editor on the Web
- Java servlet
- about / Your DSL editor on the Web
- JDT (Java Development Tools)
- about / Summarizing DSL implementation
- Jenkins
- Jetty
- about / Your DSL editor on the Web
- Jetty server
- about / Your DSL editor on the Web
- JSON (JavaScript Object Notation) / Need for a new language
- Jubula
- URL / Other testing frameworks
- JUnit 4
- about / JUnit 4
L
- lambda expression (lambda) / Lambda expressions
- learning tests
- about / Learning Tests
- left associativity
- about / Associativity
- left factoring
- about / Left recursive grammars
- left recursive grammars
- about / Left recursive grammars
- associativity / Associativity
- precedence / Precedence
- complete grammar / The complete grammar
- library
- providing / Providing a library
- default imports / Default imports
- using, outside Eclipse / Using the library outside Eclipse
- using, in type system / Using the library in the type system and scoping
- using, in scoping / Using the library in the type system and scoping
- linking
- about / Component interaction
- loose-type computation
M
- M2Eclipse
- about / Introduction to Maven/Tycho
- URL / Introduction to Maven/Tycho
- Maven
- about / Introduction to Maven/Tycho
- pitfalls / Pitfalls with Maven/Tycho
- versioning / Versioning
- PDE test problems / PDE test problems
- Maven binaries
- Maven build
- executing / Running the Maven build
- Maven Central repository
- about / Introduction to Maven/Tycho
- mismatch errors
- about / Customizing the type system
- Modeling Workflow Engine 2 (MWE2) / The Xtext generator
- modularity
- testing / Testing and modularity
- modules
- about / Using the Xtext project wizard
- multiple dispatch / Polymorphic method invocation
- mvn / Introduction to Maven/Tycho
N
- namespaces
- about / Qualified names, Packages and imports
- namespace URI / Switching to an imported Ecore model
- Neon / Installing Xtext
- nested
- node model / Custom formatting
- about / Using the interpreter
O
- Oomph
- URL / Make contributions easy
- Oomph Eclipse Installer
- about / Make contributions easy
- operator precedence
- about / Left recursive grammars
- Orion
- about / Your DSL editor on the Web
- outer scope
P
- p2 repository
- package
- about / Packages and imports
- parent project
- about / Using the Xtext project wizard
- parent scope
- parser
- testing / Testing the parser
- parser rule fragment / Rule fragments
- parsing
- about / Component interaction
- PDE
- URL, for bugs / PDE test problems
- Plug-in Development Environment (PDE)
- about / Introduction to Maven/Tycho
- Polymorphic Dispatcher mechanism / Labels
- polymorphic method invocation / Polymorphic method invocation
- pom files
- customizing / Customizing the pom files
- primitive types / Type computer for SmallJava
- project wizard
- providing / Providing a project wizard
- provider / Dependency injection
- provisioning platform (p2)
Q
- qualified names
- about / Qualified names
- quickfixes
- about / Quickfixes
- implementing / Quickfixes
- textual modification / Textual modification
- model modification / Model modification
- for default validators / Quickfixes for default validators
R
- Racc / Parsing
- RCP Testing Tool
- URL / Other testing frameworks
- release engineering (releng)
- about / Release engineering
- headless builds / Headless builds
- target platform / Target platforms
- continuous integration (CI) / Continuous integration
- releng project
- about / Using the Xtext project wizard
- right-associative
- about / Associativity
- running platform
S
- scope
- about / The linker and the scope provider
- unwanted objects, filtering from / Filtering unwanted objects from the scope
- scoping
- library, using in / Using the library in the type system and scoping
- Scoping
- about / Forward references
- Scripting Language
- about / The Expressions DSL with Xbase
- self-contained p2 repository
- about / Installation requirements
- seven languages example
- URL / Introduction to Xbase
- Single Abstract Method (SAM) / Lambda expressions
- about / Learning Tests
- SmallJava
- about / SmallJava
- project, creating / Creating the project
- grammar / SmallJava grammar
- complete grammar / The complete grammar
- utility methods / Utility methods
- grammar, testing / Testing the grammar
- SmallJava grammar
- about / SmallJava grammar
- declarations rules / Rules for declarations
- statements and syntactic predicates rules / Rules for statements and syntactic predicates
- expressions rules / Rules for expressions
- fragments rules / Rule fragments
- smoke test
- about / Smoke tests
- Sourceforge
- reference link / Continuous Integration systems
- standalone
- about / The ISetup interface
- standalone command-line compiler
- exporting / Standalone command-line compiler
- StandaloneSetup
- fixing / Fixing the StandaloneSetup
- strict-type checking
- super
- dealing with / Dealing with super
- switch expressions / Enhanced switch expressions
- SWTBot
- URL / Other testing frameworks
- synthetic variables
- about / Customizing the compiler
T
- target definition
- about / Target platforms
- target platform
- about / Target platforms
- using / Using and customizing the target platform
- customizing / Using and customizing the target platform
- Target Platform Definition DSL and Generator
- Test Driven Development
- about / Type computer
- Test Driven Development (TDD)
- about / Introduction to testing
- testing
- about / Introduction to testing
- modularity / Testing and modularity
- testing frameworks
- reference link / Other testing frameworks
- test methods
- about / JUnit 4
- tests
- implementing, for DSL / Implementing tests for your DSL
- parser, testing / Testing the parser
- validator, testing / Testing the validator
- formatter, testing / Testing the formatter
- code generation, testing / Testing code generation
- test suite
- about / Test suite
- text hovering
- about / Using the interpreter
- textual replacement / Custom formatting
- Tomcat
- about / Your DSL editor on the Web
- transient feature
- about / Derived State
- Travis
- Tycho
- about / Introduction to Maven/Tycho
- pitfalls / Pitfalls with Maven/Tycho
- versioning / Versioning
- PDE test problems / PDE test problems
- Tycho documentation
- type checking
- about / Typing expressions, Type checking
- type computer, for SmallJava / Type computer for SmallJava
- type conformance (subtyping) / Type conformance (subtyping)
- expected types / Expected types
- type conformance, checking / Checking type conformance
- method overriding, checking / Checking method overriding
- type computation
- about / Typing expressions
- type computer
- about / Type computer
- type computer, Xbase
- testing / Testing the type computer
- type conformance (subtyping) / Type checking
- type inference
- about / Typing expressions
- type parameters
- using / Using type parameters
- type system
- about / Typing expressions
- library, using in / Using the library in the type system and scoping
- type system, Xbase
- customizing / Customizing the type system
- using, in compiler / Using the type system in the compiler
U
- UI
- testing / Testing the UI
- content assist, testing / Testing the content assist
- workbench integration, testing / Testing workbench integration
- editor, testing / Testing the editor
- learning tests / Learning Tests
- outline, testing / Testing the outline
- testing frameworks / Other testing frameworks
- improving / Improving the UI
- Unified Modeling Language (UML) / The Eclipse Modeling Framework (EMF)
- unwanted objects
- filtering, from scope / Filtering unwanted objects from the scope
- update site
- URI
- about / The index
V
- validation, Xtext
- about / Validation in Xtext
- default validators / Default validators
- custom validators / Custom validators
- validation rules
- about / First validation rules
- cycles, checking in class hierarchies / Checking cycles in class hierarchies
- member selections, checking / Checking member selections
- return statements, checking / Checking return statements
- duplicates, checking / Checking for duplicates
- validator / Validation in Xtext
- testing / Testing the validator
- about / Validator
- customizing / Customizing the validator
W
- WAR file / Your DSL editor on the Web
- web
- DSL editor, porting / Your DSL editor on the Web
- workbench integration
- testing / Testing workbench integration
X
- Xbase
- about / Introduction to Xbase
- common Java type model / The common Java type model
- expressions DSL / The Expressions DSL with Xbase
- Entities DSL / The Entities DSL with Xbase
- extending / Extending Xbase
- rule, overriding in Xtext grammar / Overriding a rule in an Xtext grammar
- type system, customizing / Customizing the type system
- type computer, testing / Testing the type computer
- validator, customizing / Customizing the validator
- compiler, customizing / Customizing the compiler
- type system, using in compiler / Using the type system in the compiler
- compiled code, testing / Testing the compiled code
- code generation, improving / Improving code generation
- smoke test / Smoke tests
- Xbase features
- annotations / Annotations
- Java error markers, reusing / Reusing Java error markers
- extension, using / Using 'extension'
- type parameters, using / Using type parameters
- formatter / Formatter
- customization / Further Customizations
- Xcore / The Eclipse Modeling Framework (EMF)
- about / Xcore
- project, creating / Creating the Xcore project
- URL / Creating the Xcore project
- Xtext project, creating from existing Xcore model / Creating the Xtext project from an existing Xcore model
- model, modifying / Modifying the Xcore model
- XML Schema Definition (XSD) / Need for a new language
- Xpect
- URL / Other testing frameworks
- Xtend
- about / An introduction to Xtend
- reference link / An introduction to Xtend
- using, in projects / Using Xtend in your projects
- advantages / Xtend – a better Java with less "noise"
- types / Types
- annotation, reference link / Types
- methods / Methods
- fields / Fields and Variables
- variables / Fields and Variables
- operators / Operators
- syntactic sugar / Syntactic sugar
- static members / Static members and inner types
- inner types / Static members and inner types
- literals / Literals
- extension methods / Extension methods
- it variable / The implicit variable – it
- lambda expressions / Lambda expressions
- multi-line template expressions / Multi-line template expressions
- code generator, writing / Writing a code generator in Xtend
- Xtend classes / The Xtext generator
- Xtend code
- debugging / Debugging Xtend code
- Xtend expressions / Other Xtend expressions
- Xtext
- about / Enter Xtext
- installing / Installing Xtext
- URL / Installing Xtext
- project, creating / Let's try Xtext
- URL, for documentation / The aim of this book
- validation / Validation in Xtext
- Google Guice / Google Guice in Xtext
- documentation, reference link / The Outline view
- cross-reference resolution / Cross-reference resolution in Xtext
- references / Using and customizing the target platform
- Xtext documentation
- reference link / Modifying the grammar
- Xtext generator
- about / The Xtext generator
- Xtext grammar
- rule, overriding / Overriding a rule in an Xtext grammar
- Xtext grammar rules
- digression / Digression on Xtext grammar rules
- Xtext nature
- about / Testing workbench integration
- Xtext project
- creating, from Ecore model / Creating an Xtext project from an Ecore model
- creating / Creating the Xtext project
- StandaloneSetup, fixing / Fixing the StandaloneSetup
- derived state / Derived State
- creating, from existing Xcore model / Creating the Xtext project from an existing Xcore model
- Xtext projects
- org.example.entities / Xtext projects
- org.example.entities.ide / Xtext projects
- org.example.entities.tests / Xtext projects
- org.example.entities.ui.tests / Xtext projects
- org.example.entities.ui / Xtext projects
- Xtext project wizard
- using / Using the Xtext project wizard
- Maven build, executing / Running the Maven build
- feature, customizing / Customizing the feature
- target platform, customizing / Using and customizing the target platform
- target platform, using / Using and customizing the target platform
- pom files, customizing / Customizing the pom files