표현식을위한 비동기 코드를 생성해야하는 간단한 DSL이 있습니다 (이것이 가장 중요한 예입니다).XExpression 하위 유형에 대한 코드를 생성하는 방법은 무엇입니까?
grammar org.xtext.scripting.Scripting with org.eclipse.xtext.xbase.Xbase
generate scripting "http://www.xtext.org/scripting/Scripting"
import "http://www.eclipse.org/xtext/xbase/Xbase" as xbase
Script returns xbase::XBlockExpression:
{Script}
(expressions+=XExpressionOrVarDeclaration ';'?)*;
XExpression returns xbase::XExpression:
super | Async
;
Async:
'async' expression=XExpression
;
아이디어가 async
코드가 다른 스레드에서 실행되는 것 : 난 그냥 scripting example에 새로운 async
문을 추가했다.
제 질문은 ScriptingJvmModelInferrer
을 사용하여 Async.expression
에 대한 코드를 어떻게 생성 할 수 있습니까?
가장 간단한 경우에 나는 단지 Async.expression
에서 코드를 래핑하겠습니까?
AsyncRunner.exec(new Runnable() {
@Override
public void run() {
// the Async.expression would end up here
}
})
어떻게해야할까요?
내가 HTTPS의 예를 발견 :
식의 유형은 모두 확장 주입 할 필요가
지정해야합니다 : //eclipse.org/Xtext/documentation/207_template.html (템플릿 언어) * 컴파일러 확장 * –