In order to be able to parse models written in your language, Xtext needs to provide a special parser for it. The parser is generated from the language grammar.
Currently it is recommended to use the ANTLR-based parser. ANTLR is a very sophisticated parser generator framework based on a so called LL(*) algorithm. It is fast, simple and at the same time has some very nice and sophisticated features. Especially its support for error recovery is much better than what other parser generators provide.
ANTLR comes in two parts: the runtime and the generator. Both are shipped under the BSD license and have a clean intellectual property history. However the generator is still implemented in an older version of ANTLR (v 2.x), where it was not possible for the Eclipse Foundation to be sure where exactly every line of code originated. Therefore ANTLR v 2.x didn’t get the required approval. Eclipse has a strict IP policy, which makes sure that everything provided by Eclipse can be consumed under the terms of the Eclipse Public License. The details are described in this document.
Unfortunately as the generator of ANTLR V3 needs ANTLR V2 it is as well not yet IP approved. That is why we are not allowed to ship Xtext with the ANTLR generator (the runtime is IP approved), but have to provide it separately via update-site at:
IMPORTANT : Although if you use the non-IP approved ANTLR generator, you can still ship any languages and the IDEs you’ve developed with Xtext without any worrying, because the ANTLR runtime is IP approved
If you, against all recommendations, need to stick to a fully IP approved generator, you can use the parser generator we’ve developed. But be warned, although it’s fully functional and equally fast, it does not have any error recovery. This makes the editing experience in the editor more or less unacceptable.