XText - Embebiendo XBase en nuestro DSL

Extendiendo o embebiendo XBase

XBase es el lenguaje en el cual se basa xtend. Y está hecho, lógicamente con xtext. Con lo cual cualquiera de nuestros lenguajes puede extender XBase, o bien utilizar algunas de sus construcciones, por ejemplo para escribir código "java" o similar dentro de nuestros lenguajes.
Para eso, en nuestra gramática debemos agregar

grammar org.uqbar.paco.dsl.xtext.mapping.MappingDsl with org.eclipse.xtext.xbase.Xbase

generate mappingDsl "http://www.uqbar.org/paco/dsl/xtext/mapping/MappingDsl"

import "http://www.eclipse.org/xtext/common/JavaVMTypes" as types

Al hacer esto se va a generar automáticamente el paquete "jvmmodel" y una clase Inferrer.

Además se van a incluir dependencias a varios plugins de xbase que tienen bastante código de ejemplo o para reutilizar en los diferentes extension points de xtext.

El ejemplo de ORM Mappings usa elementos Java embebidos. Ahí mismo explica como hacer varias cositas útiles.

Comments