Index
A
- access level modifiers / Visibility and accessibility
- actions / The Abstract Syntax Tree (AST)
- actual type / Expected types
- array feature / Dealing with types
- AST
- about / The Abstract Syntax Tree (AST)
- automatic features
- additional features / Additional automatic features
B
- backtracking / Rules for statements and syntactic predicates
- Bison / Parsing
- Buckminster
- about / Introduction to Buckminster
- installing / Installing Buckminster
- Build Path | Use as Source Folder / Integration with the Eclipse build mechanism
C
- @Check method / Checking member selections
- @Check methods / Validator
- CamelCase / Other customizations
- clean code / Clean code
- code generation
- about / Introduction to code generation
- Code Generation
- testing / Testing code generation
- code generator
- writing, in Xtend / Writing a code generator in Xtend
- compiler-compilers / Parsing
- component query (CQUERY) / Defining the target platform
- component specification (CSPEC) / Defining the target platform
- configureFormatting method / Custom formatting
- configure method / Google Guice in Xtext
- Console view / Let's try Xtext
- container
- containment reference / Containments and cross-references
- content assist
- testing / Testing the content assist
- continuous Integration(CI)
- about / Continuous integration
- createEObjectDescriptions method / What to put in the index?
- cross-reference resolution, Xtext
- containment reference / Containments and cross-references
- container / 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
- components interaction / Component interaction
- Ctrl + Shift + R / Other customizations
- Ctrl + Shift + T / Other customizations
- custom formatting / Custom formatting
- customizations / Other customizations
- CustomLogger class / Dependency injection
- custom scoping
- about / Custom scoping
- block scope / Scope for blocks
- inheritance scope / Scope for inheritance and member visibility
- member visibility / Scope for inheritance and member visibility
- access level modifiers / Visibility and accessibility
- unwanted objects, filtering / Filtering unwanted objects from the scope
- custom validators / Custom validators
D
- Dangling Else Problem / Rules for statements and syntactic predicates
- default validators / Default validators
- Dependency Injection
- about / Dependency injection
- Dispatch Methods / Polymorphic method invocation
- DSL
- about / Domain Specific Languages, So, why should you create a new language?
- implementing / Implementing a DSL
- parsing / Parsing
- improvements / Improvements to the DSL
- types, dealing with / Dealing with types
- tests, implementing / Implementing tests for your DSL
- DSL, for entity modeling
- text editor / Let's try the Editor
- DSL customizations
- imports / Customizations
E
- Eclipse build mechanism
- integrating with / Integration with the Eclipse build mechanism
- Eclipse Juno
- URL / Installing Buckminster
- Eclipse Kepler
- URL / Installing Buckminster
- Ecore format / The Eclipse Modeling Framework (EMF)
- editor
- testing / Testing the editor
- Elvis ?* operator / Additional operators
- EMF
- Enter Xtext
- about / Enter Xtext
- Xtext, installing / Installing Xtext
- Xtext / Let's try Xtext
- Entities DSL, with XBase
- project, creating / Creating the project
- attributes, defining / Defining attributes
- operations, defining / Defining operations
- imports / Imports
- EntitiesRuntimeModule class / Other customizations
- EntitiesValidator validator / Custom validators
- enum rule / Visibility and accessibility
- error markers / Error markers
- examples
- expected types / Expected types
- exported objects / Exported objects
- Expressions DSL
- about / The Expressions DSL
- program, writing / The Expressions DSL
- project, creating / Creating the project
- Xtext grammar rules / Digression on Xtext grammar rules
- grammar / The grammar for the Expressions DSL
- Xbase / The Expressions DSL with Xbase
- Expressions DSL, with Xbase
- about / The Expressions DSL with Xbase
- project, creating / Creating the project
- IJvmModelInferrer interface / The IJvmModelInferrer interface
- code, generating / Code generation
- debugging / Debugging
- ExpressionsValidatorTest class / Validator
F
- factory method or abstract factory patterns / Dependency injection
- Flex / Parsing
- FooBar entity / Quickfixes for default validators
- formatter
- testing / Testing the formatter
- FormattingConfig method / Custom formatting
- forward reference / Forward references
- Functional Tests / Other UI testing frameworks
- function types / Lambda expressions
G
- General Purpose Languages / Domain Specific Languages
- Generation Gap Pattern / The Xtext generator
- getStyledDisplayString method / Improving the UI
- global scoping
- about / Global scoping
- packages / Packages and imports
- imports / Packages and imports
- index / The index and the containers
- containers / The index and the containers
- duplicates files, checking / Checking duplicates across files
- duplicates. checking across files / Checking duplicates across files
- Google Guice
- in Xtext / Google Guice in Xtext
- grammar / Parsing
H
- Hollywood Principle / Writing a code generator in Xtend
- hovering / Hyperlinking
- Hyperlinking / Hyperlinking
I
- IDE concepts
- Labels, customizing / Labels
- Outline view, customizing / The Outline view
- IDE integration
- about / IDE integration
- syntax highlighting / Syntax highlighting
- background parsing / Background parsing
- error markers / Error markers
- hyperlinking / Hyperlinking
- quickfixes / Quickfixes
- outline / Outline
- automatic build / Automatic build
- DSL implementation, summarizing / Summarizing DSL implementation
- identifier / Parsing
- import mechanism / Packages and imports
- index
- about / The index
- scoping / What to put in the index?
- indexing / Component interaction
- installation
- Buckminster / Installing Buckminster
- installing
- Xtext / Installing Xtext
- interpreter
- writing / Writing an interpreter
- using / Using the interpreter
- ISetup interface
- about / The ISetup interface
- it variable / The implicit variable – it
J
- JDT
- about / Summarizing DSL implementation
- Jubula / Other UI testing frameworks
- Junit
- Test suite / Test suite
- Junit 4
- about / Junit 4
K
- keyword / Parsing
L
- Labels / Labels
- lambda
- about / Lambda expressions
- Learning Tests (Beck 2002) / Testing the editor
- left-factoring / Left recursive grammars
- left associativity / Associativity
- length feature / Improvements to the DSL
- lexer / Parsing
- lexical analysis / Parsing
- lexical analyzer / Parsing
- libraray
- providing / Providing a library
- library approach
- providing / Providing a library
- about / Providing a library
- default imports / Default imports
- Eclipse / Using the library outside Eclipse
- exterior Eclipse library, using / Using the library outside Eclipse
- type system, updating / Using the library in the type system and scoping
- scoping / Using the library in the type system and scoping
- linker / The linker and the scope provider
- linking / Component interaction
- literals / Parsing
M
- metamodel / The Eclipse Modeling Framework (EMF)
- modular code
- writing / Testing and modularity
N
- namespaces / Qualified names
- node model / Custom formatting, Using the interpreter
- null-safe version / Additional operators
O
- outline / Outline
- Outline view / The Outline view
P
- p2 repository
- building, from Xtext Buckminster wizard / Building the p2 repository from Eclipse
- p2 sites / Release engineering
- parse method / Using the library outside Eclipse
- parser
- testing / Testing the parser
- parser generators / Parsing
- parsing / Parsing, Component interaction
- Polymorphic Dispatcher / Labels
- primitive types / Type provider for SmallJava
Q
- qualified names / Qualified names
- Quickfixes / Quickfixes
- about / Quickfixes
- textual modification / Textual modification
- model modification / Model modification
- for default validators / Quickfixes for default validators, Summary
R
- receiver / Rules for expressions
- recursive grammars
- associativity / Left recursive grammars, Associativity
- left recursive / Left recursive grammars
- left-factoring / Left recursive grammars
- operator precedence / Left recursive grammars, Precedence
- atomic / Left recursive grammars
- tree rewrite action / Left recursive grammars
- left associativity / Associativity
- associative operation / Associativity
- complete grammar / The complete grammar
- forward reference / Forward references
- releng
- about / Release engineering
- projects, building headlessly / Headless builds
- target platform / Target platforms
- target definition file / Target platforms
- continuous Integration / Continuous integration
- returned / Digression on Xtext grammar rules
- right-associative / Associativity
S
- SAM types / Lambda expressions
- scanner / Parsing
- scope provider / The linker and the scope provider
- Scripting Language / The Expressions DSL with Xbase
- SDK feature project feature / Let's try Xtext
- semantic analysis / The Abstract Syntax Tree (AST)
- SmallJava
- about / SmallJava
- project, creating / Creating the project
- grammar / SmallJava grammar
- SmallJava grammar
- about / SmallJava grammar
- decleration rules / Rules for declarations
- statements rule / Rules for statements and syntactic predicates
- syntactic predicates rule / Rules for statements and syntactic predicates
- expression rule / Rules for expressions
- complete grammar / The complete grammar
- utility methods / Utility methods
- testing / Testing the grammar
- src-gen folder / Standalone command-line compiler
- standalone command line compiler
- about / Standalone command-line compiler
- static extension import / Extension methods
- stringRepr method / Precedence
- Subtyping / Type checking
- SWTBot / Other UI testing frameworks
- symbol name / Parsing
- symbol table / The Abstract Syntax Tree (AST)
- syntactic analysis / Parsing
T
- target definition / Target platforms
- target platform / Target platforms
- TDD / Introduction to testing
- Test Driven Development strategy / Type provider
- test implementaion, for DSL
- about / 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
- testing
- about / Introduction to testing
- tests
- implementing, DSL used / Implementing tests for your DSL
- Test suite
- about / Test suite
- text hovering / Using the interpreter
- tree rewrite action / Left recursive grammars
- type checking / Typing expressions
- about / Type checking
- method overrides, checking / Checking method overriding
- type computation / Typing expressions
- type computation / Typing expressions
- Type Conformance / Type checking
- type conformance
- about / Type conformance (subtyping)
- checking / Checking type conformance
- type guards / Enhanced switch expressions
- type inference / Typing expressions
- type literal / Xtend – a better Java with less "noise"
- type provider / Type provider, Type provider for SmallJava
- type system / Typing expressions
U
- UI
- improving / Improving the UI
- UI testing
- about / Testing the UI
- content assist, testing / Testing the content assist
- workbench integration, testing / Testing workbench integration
- editor, testing / Testing the editor
- testing frameworks / Other UI testing frameworks
- utility methods / Utility methods
V
- validation, Xtext
- about / Validation in Xtext
- default validators / Default validators
- custom validators / Custom validators
- validation rules
- about / First validation rules
- cyclic class hierarchies / Checking cycles in class hierarchies
- member selections, checking / Checking member selections
- return statements, checking / Checking return statements
- duplicates, checking for / Checking for duplicates
- validator
- testing / Testing the validator
- about / Validator
W
- warning method / Quickfixes
- well-typed / Typing expressions
- With Operator / Additional operators
- workbench integration
- testing / Testing workbench integration
X
- Xbase
- about / Getting introduced with Xbase
- Entities DSL / The Entities DSL with Xbase
- Xbase
- Expressions DSL / The Expressions DSL with Xbase
- Xtend
- benefits / Xtend – a better Java with less "noise"
- features, type inference / Xtend – a better Java with less "noise"
- features, expression / Xtend – a better Java with less "noise"
- extension methods / Extension methods
- it variable / The implicit variable – it
- lambda expression / Lambda expressions
- additional operators / Additional operators
- polymorphic method invocation / Polymorphic method invocation
- switch expressions / Enhanced switch expressions
- code generator, writing / Writing a code generator in Xtend
- Xtend SDK 2.4.1 / Installing Xtext
- Xtext
- about / Enter Xtext
- documentation / The aim of this book
- validation / Validation in Xtext
- Google Guice / Google Guice in Xtext
- cross-reference resolution / Cross-reference resolution in Xtext
- Xtext Buckminster wizard
- about / Using the Xtext Buckminster wizard
- using / Using the Xtext Buckminster wizard
- p2 repository, building / Building the p2 repository from Eclipse
- customizations / Customizations
- target platform, defining / Defining the target platform
- building headlessly / Build headlessly
- Xtext generator
- about / The Xtext generator
- XtextProjectHelper class / Testing workbench integration
- Xtext SDK 2.4.1 / Installing Xtext