問題タブ [xtext]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - OCL 型を Xtext 文法に統合する際の問題
OCL 型を再利用したい文法 (Xtext プロジェクト) に取り組んでいます。通常、Xtext では import ステートメントを使用して既存の型を参照します。
OCL 型を文法に統合するサンプル Xtext プロジェクト (CompleteOCL) が既に存在します。残念ながら、プロジェクトはインポートステートメントでローカルプラグインを参照しています。
そのため、Manifest.MF ファイルで定義された依存関係はありません。文法でOCL型を再利用したい場合は、たとえば書く必要があります
org.eclipse.ocl.examples.xtext.base 依存関係を追加し、(OCL) BaseCST タイプを参照するルールを文法に記述できます。Xtext アーティファクトを生成しようとすると、次のエラーが発生します。
それで、おそらく私は何かが欠けていますか?この問題は非常に簡単に再現できます。新しい Xtext プロジェクトを作成し、依存関係を追加し、文法を編集して、最後のインポート ステートメント ("import "http://...") を追加し、Xtext アーティファクトの生成を試みます。どんなアイデアでも大歓迎です!
前もって感謝します!
マイケル
編集: 文法を使用するには、MWE2 ワークフロー (Xtext ドキュメント (バージョン 1.0.1) のセクション 3.2.2.2 を参照) で ecore モデルの対応する genmodel ファイルを参照する必要があります。たとえば、
それにもかかわらず、それはまだ私にとってはうまくいきません。
java - Java プラグイン拡張ポイント
私は xtext でプログラミング言語を作成しています。
プラグイン開発で独自の Run-As ハンドラーを作成するには、どの拡張ポイントを選択する必要があるかを知る必要があります。Run As 拡張機能に貢献して、プログラムを実行するハンドラーを作成します。
ユーザーがデータ ソース エクスプローラーでテーブルを右クリックしたときにコマンドをアタッチする方法。テーブル ツリー ノードを使用してコードを生成したいと考えています。
しかし、どの拡張ポイントが Eclipse でこれらの機能を提供しているかはわかりません。
ありがとう、あぶ
php - Xtext の PHP 文法
モダナイゼーションと Web Reigieneria のプロセスを研究しており、メタモデルを定義した後にコード XText を生成するために、PHP と XHTML の文法を定義する必要があります。
誰かが私が基礎とすることができるいくつかの進歩を遂げましたか?
dsl - Xtext や MPS などのさまざまな言語のワークベンチ ツールの長所と短所は?
Xtext、Spoofax、JetBrains の MPS などの言語ワークベンチ ツールを使用した経験のある人はいますか? 試してみようと思っていますが、さまざまなツールの適切な比較を見つけるのに苦労しています。それぞれの長所と短所は何ですか?
私は Python コードを生成する DSL を構築しようと考えているので、Python でこれらのツールのいずれかを使用したことがある人の意見を聞くことに特に興味があります (3 つすべてがかなり Java に焦点を当てているように見えますが、それはなぜでしょうか?)。DLS は主に私自身が使用するためのものなので、KISS で構文を定義してコード ジェネレーターを作成するよりも、本当にきれいな IDE を構築することには関心がありません。DLS の型チェック/静的解析を行う機能も非常に優れています。
道をずっと下って壁にぶつかり、すべてのコードが他のものに移植できない形式になっていることに気付くことを少し恐れています。これらのツールにはリスクがありますか? 特にMPSは少し怖いように思えます。私が理解しているように、テキストベースの構文を実際に生成するのではなく、AST専用のエディターを構築するからです。
actionscript-3 - xpand 用 Actionscript 3 コード ビューティファイア (MWE2 ワークフロー)
私
現在、Java と Actionscript3 のコード ジェネレーターを開発しています。
ジェネレーターは静かに動作しますが、Actionscript3 のコードはあまり良くありません。
Java の場合、xpand (MWE2 ワークフロー) と統合された既存のコード ビューティファイアーがありますが、Actionscript3 の場合は何も見つかりません。
何か案が?おそらく誰かが AS3 コード ビューティファイアをすぐに使用できるか、xpand および MWE2 ワークフローと統合できるサード パーティのビューティ ファイアを知っています。
eclipse - Xtext/Xpand で同じ要素名を介して参照または端末にアクセスできるようにしますか?
ステートマシンを記述する Xtext 文法があり、以前に宣言されたイベントと状態への参照を使用して遷移を記述しています。
MWE を使用してエディターを生成すると、参照アイテムの存在が検証されます。たとえば、
これらが必要になります:
コード内の別の場所に存在する必要があります(ところで、ステートマシンごとに1つのファイルを使用しているため、同じファイルにある必要があります)。私の Xpand コード テンプレートでは、遷移の要素としてイベントと状態にアクセスできます。
これは非常にうまく機能し、かなり長い間使用しています。
しかし、多くのイベントがすべてのステートマシン ( init
、show
、hide
、 、およびその他いくつか) に共通しているため、以前の方法でイベントを参照するか、上記のイベント名のいずれかfinish
を入力せずに入力できるようにしたいと考えています。すべてのファイルでイベントを宣言します。
しかし、私はこれを行うことはできません:
そこでEventID
、上記のキーワードのいずれかである terminal を定義することにしました。
しかし、私もこれを行うことはできません:
次に、イベントを組み合わせたルールにしようとしました:
どちらも機能しませんでした。
今のところ、回避策に落ち着くことにしました。
これは機能しますが、すべてのテンプレートを変更してイベントとベースイベントの両方を探す必要があります。
これは非常に多くのテキストです...最後に、私の質問は次のとおりです。
参照またはEventIDに同じ要素名を使用する方法はありますか?
syntax-highlighting - Xtext: ISemanticHighlightingCalculator の文法クラスの使用
聞いてください、私には文法があります。処理する必要がある特定の部分だけを参照してください。
私が取得したいものは次のとおりです。
そして、ここに私のSemanticHighlightingCalculatorがあります
私はここでドキュメントに書かれているようにこれをやっています。コンパイル時にエラーは発生しません。の出力例を次に示します。System.out.println(node.getGrammarElement().toString());
types - Xtext: 解析中にタイプ マップを作成する
Xtextで、モデル ファイルの型宣言から型マップ (つまり Java マップ) を作成するにはどうすればよいですか? モデル ファイルが次のようになっているとします。
私のXtext文法は次のように言っています:
<String,DataType>
パーサーの実行中またはテンプレートが評価される前のマップを作成するにはどうすればよいですか? 後で Xpand テンプレートからマップにアクセスするにはどうすればよいですか?
注: 2011 年です。グローバル変数 ( static
) は使用しないでください。
java - Xtext を使用した Java インポートの最適なリストの生成
Xtext が Java コードを生成している間に必要なインポートのリストを収集し、モデルの処理後にこのリストを一番上に挿入する方法はありますか?
java - SQL DB へのマッピングを備えたかなり標準的なオブジェクト モデルの DSL
かなり標準的なオブジェクト モデルを記述するための DSL ( Xtext用) が必要です。
- エンティティがあります
- それらには、プリミティブまたは他のエンティティへの参照のいずれかになるフィールドがあります
- 参照は 1:1、1:N、N:1、または N:M のいずれかです。
車輪の再発明をしたくないのですが、これを実装する DSL はありますか?