eclipse antlr dsl parser-generator xtext

eclipse - ¿Cuáles son las características de ANTLR que XText no proporciona?



dsl parser-generator (1)

No puede especificar predicados semánticos en una gramática Xtext. Además, no es posible incluir acciones arbitrarias (leer: bloques de código de idioma de destino) con Xtext. La única plataforma de destino soportada es Java.

La buena noticia es que Xtext obtiene un gran beneficio al inducir estas restricciones, por ejemplo, obtendrá un desaprensivo que le permite serializar modelos de sintaxis / gráficos arbitrarios que coinciden con su gramática. Hablando de gráficos de sintaxis, con Xtext obtendrá un AST escrito para su idioma que puede editar en su IDE.

Una característica gramatical que es única en la representación de Xtext son grupos desordenados. Es decir, puede expresar directamente que ciertos elementos de su gramática pueden aparecer en orden arbitrario, pero cada uno solo una vez. Si piensas en los modificadores de java, esto puede ser muy útil:

visibility=(''public''|''private'') // this is a mandatory assignment & abstractOrFinal=(''abstract''|''final'')? // this is optional & static?=''static''? // this will become a boolean value in your ast

Eche un vistazo a los documentos Xtext para obtener más detalles sobre el lenguaje gramatical.

Acabo de encontrar una muy buena herramienta Xtext para crear DSL, así como IDE para editar. Hice una búsqueda en la web y encontré personas que dijeron que no ofrece todas las características de ANTLR. Estoy usando ANTLR como mi generador de analizador.

Ni siquiera estoy seguro de qué funciones de ANTLR necesitaré para escribir un analizador completo para mi idioma, pero ANTLR existe desde hace bastante tiempo y probablemente admita más funciones que Xtext.

¿Alguien puede dar algunos ejemplos de lo que NO PUEDE especificarse en una gramática Xtext?