私は自分の DSL の推論を作成しようとしていますが、ドキュメントの助けだけでは解決できない質問がいくつかあります。
最初のもの:機能からstatic void main()を作成する必要があります: .toMethod()でstaticを追加するにはどうすればよいですか?
2 つ目: DSL に次のようなルールがあるとします。
Sequence:
'SEQ' name=ID '{'
statements+=Statement*
'}'
;
Where ステートメント:
Statement:
Sequence | others...
;
シーケンスはvoid メソッドにマップする必要があり、そのメソッドの本体はステートメントの翻訳から構成されます。しかし、問題は次のとおりです。シーケンス内で別のシーケンスを見つけると、新しいシーケンスのメソッドを作成し、スーパー シーケンスで呼び出しを追加する必要があります。
例えば:
SEQ first {
instructions...
SEQ second {
other instructions....
}
instructions...
}
生成する必要があります:
void first(){
instructions(translated)...
second();
instructions(translated)...
}
void second(){
other instructions(translated)...
}
それを実現することは可能ですか?