3

したがって、xtext文法のデフォルトの例があります。

grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals

generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"

Model:
    greetings+=Greeting*;

Greeting:
    'Hello' name=ID '!';

抽象構文木を表示したいのですが、特に対応するxtendファイルが欲しいのですが、次のようになります。

package org.xtext.example.mydsl.generator

import org.eclipse.emf.ecore.resource.Resource
import org.eclipse.xtext.generator.IGenerator
import org.eclipse.xtext.generator.IFileSystemAccess

class MyDslGenerator implements IGenerator {

    override void doGenerate(Resource resource, IFileSystemAccess fsa) {
        //TODO implement me
    }
}

doGenerateが呼び出されるたびに、テキストバージョンのASTを印刷します。私はこれを約2日間ハッキングしてきましたが、基本的な何かが明らかに欠けています-誰かが私を憐れんでいますか?doGenerate関数には何が入りますか?

4

1 に答える 1

0

doGenerate関数のパラメーターは、EMFベースのリソース(基本的にはテキストファイルのモデル表現-つまり、リンクが解決されたAST)とファイルシステムに書き込むためのヘルパークラスです。

ジェネレータのタスクは、生成されたソースコードを作成することです(通常はJavaですが、必須ではありません)。例については、ブログ投稿http://www.rcp-vision.com/?p=1573を参照してください。最後に、使用されているサンプルコードジェネレーターがあります。

于 2012-01-20T12:54:13.347 に答える