|
Re: Scoping and inferring inner classes [message #1184914 is a reply to message #1184685] |
Wed, 13 November 2013 19:42 |
|
Hi,
just a 5 mins try
grammar org.xtext.example.mydsl3.MyDsl with org.eclipse.xtext.xbase.Xbase
generate myDsl "http://www.xtext.org/example/mydsl3/MyDsl"
import "http://www.eclipse.org/xtext/xbase/Xbase" as xbase
Model:
body=MyXBlockExpression;
MyXBlockExpression returns xbase::XExpression:
{xbase::XBlockExpression}
'{'
(expressions+=MyXIfExpression ';'?)
'}';
MyXIfExpression returns xbase::XExpression:
{xbase::XIfExpression}
'if' '(' if=XExpression ')'
then=XClosureX
(=>'else' else=XClosureX)?;
XClosureX returns xbase::XExpression:
{xbase::XClosure}
explicitSyntax?="{"expression=XExpressionInClosure"}";
class MyDslJvmModelInferrer extends AbstractModelInferrer {
@Inject extension JvmTypesBuilder
def dispatch void infer(Model element, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
acceptor.accept(element.toClass("my.company.greeting.MyGreetings"))
.initializeLater([
members += element.toMethod("doSomething", element.newTypeRef(Runnable)) [
body = element.body
]
])
}
}
Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
|
|
|
|
Powered by
FUDForum. Page generated in 0.02682 seconds