2017-05-07 3 views
0

現在、私は、Eclipseアプリケーションのメニューから起動した私のDSLのインタプリタを書いています。インタプリタが持つアクティブなファイルをお読みください。xtextライティングとインタプリタ

IXtextDocument document = ((XtextEditor) activeEditor).getDocument().get();

は、すべての行を読んで、それから私は、スキャナ、アクティブファイルと行ずつ読んで、本当に難しいです(文字列を返す)とのためのスイッチおよびIFSを作ります彼らの実行のためのすべての可能性。

私は文法情報を使用する方法があります(宣言、関数、...という行が分かります)。 、または通常の文字列のようにファイルを読み取らずにこれを実装するより良い方法はありますか?あなたはここのように、editor.document.readOnly(...)を呼び出すことができるはずですので

答えて

0
+0

私はあなたが言ったことでしたが、この時点で、私はリソース 'TreeIteratorから情報を取得しようとしていました contents = resource.getAllContents(); \t \t一方(contents.hasNext()){ \t \t \t EObject O = contents.next()。 \t \t \t console.out.println(o.eClass()。toString()); \t \t \t console.out.println(o.toString()); \t \t} ' (console.outは自分のコンソールに書き込むためだけですが)出力は奇妙なものや不完全なものがあります。どのように私のインタプリタのリソースを読むべきですか?ありがとうございました – Aikas

+0

通常、 resource.getContents()。get(0) '推測されたものがない場合、ルートは1つだけです。その後、インタプリタでモデルをトラバースします。ファイルにエラーがある場合、モデルが壊れる可能性があり、インタプリタがそれを処理できるはずです。 –