問題タブ [xtend]
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.
xtext - XFeatureCall が実際に何かを参照しているかどうかを確認する方法
ast をスキャンしているときに、XFeatureCall 型の要素を解決できるかどうかを確認したいと考えています。
具体例:
そんなこと知ってる
ただし、XFeatureCall "z" のみが true になるはずです (検索しているまだ見つかっていない述語を適用する場合)。
これまでのところ、私はパターンを見つけることができませんでした。ただし、解決できないすべての変数が次の条件を満たす場合を除きます。
fc は XFeatureCall を意味します
しかし、これでは十分ではありません。「System.out.println」も見えるからです。
注: ルート AST 要素から取得した TreeIterator を使用します
必要に応じて、XbaseCompiler がどのようにそれを行うかを調べますが、私はそうしないことを好みます :)
xtext - 同じリソースから生成されたこれら 2 つの Eobjects の違いは何ですか?
(私にとって) 同じことを意味するはずの 2 つの異なる EObject がある理由がわかりません
それらには異なる情報が含まれているようで、その理由がわかりません。同じソースコード/リソース)。
script1 が推論元に渡されます。なぜscript2ではないのですか?
dsl - XTEND DomainmodelGenerator.xtend の For-Loop インデックス制御 (XTEXT コード生成プロジェクト)
私は eclipse.org/Xtext/documentation のチュートリアルに取り組み、これらのサンプルを拡張していきました。Domainmodel.xtext サンプルを使用して、チュートリアルで説明されているように、エンティティごとに Java クラスファイルを生成します。
DSL は任意の数の機能 (別名クラス プロパティ) を指定します。
DomainmodelGenerator.xtend に、JAVA クラス コンストラクターを生成するコードを追加しました。XTEND-Forloop はすべての引数を循環します - 次のようになります:
問題 この最後のパラメータにはまだコンマが出力されています。XTEND で loopindex を制御して、ジェネレーターが正当な JAVA コードを発行できるようにするにはどうすればよいですか?
java - Xtext QuickFix API の Xtend ラムダ式のオーバーロード
Xtend を使用して、Xtext 言語の Eclipse UI プラグイン用のカスタム QuickFixes を作成しています。アイデアは、のメソッドを拡張org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider
して使用することです。accept
org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor
accept
には、次のようなオーバーロードされたシグネチャがいくつかあります。
void accept(Issue issue, String label, String description, String image, IModification modification)
void accept(Issue issue, String label, String description, String image, ISemanticModification semanticModification)
Xtend のラムダ式の構文を使用すると、これらのシグネチャの最初のものを簡単に使用できます。
Xtend コンパイラは、次の Java コードを生成します。
ここで、文字列だけでなく、基礎となる EMF モデルにアクセスできるように、ISemanticModification
代わりにを使用する 2 つ目の QuickFix を書きたいと思います。IModification
ただし、使用したいメソッドのオーバーロードを Xtend コンパイラに伝えるのに苦労しています。
IModification
Xtend は、常に an の代わりに anを渡したいと考えISemanticModification
、コンパイルされた Java コードでエラーを生成します。これは、2 つのメソッドのapply
シグネチャがIModification
異なりIModificationContext
、.ISemanticModification
EObject
どのオーバーロードを使用するかを Xtend に伝えるにはどうすればよいですか? 私の知る限り、Xtend で無名オブジェクトを作成することはできないため、別の方法で をIssueResolutionAcceptor.accept
渡す必要がありますISemanticModification
。
java - 現在の作業ディレクトリのフルパスを取得する方法を拡張する
ユーザーが相対パスを入力できるようにする文法を作成しました。(例: "../../temp/out/path"
ユーザーからの入力に基づいて絶対パスを取得し、現在の作業ディレクトリの絶対パスを取得して、入力パスが有効かどうかも確認できるようにすることを目的とする場合があります。
絶対パスを取得するために使用できるライブラリまたは組み込み関数はありますか? C の _getcwd() 関数に似たもの。
java - xtext-xbase-xtend ツールチェーンを使用して単純なドメイン固有言語を作成する
これは、ドメイン固有言語 (DSL) を作成するためのクラス プロジェクトです。考慮すべき空想は何もありません。私自身は、このプロジェクトを、関連する手順を学ぶための純粋な演習として設定しました。
関連するファイル (添付のコード ファイルを含む)::
1) Xtext の文法 (entities.xtext)
2) xtend の JvmModelInferrer (entitiesJvmModelInferrer.xtend)
3) 新しい言語のソース ファイル (Animal.xentities および Main.xentities)。.xentities 拡張子は、この DSL プロジェクトのファイルに固有のものです。- Main.xentities
-生成された Main.java
-Animal.xentities
-生成された Animal.java コード
私の目的:: 関連する関数と属性を持つクラスを定義できるように、基本的なワークフロー インフラストラクチャを開発したいと考えています。それから私はそれらを実行できるようになりたいです。
私の問題:: 「選択にメインタイプが含まれていません」というメッセージが表示され続けます。
私の試み: エンティティ (クラス) 'Main.xentities' で、'op main()' 関数を作成します。生成された .java コードでは、これは public static String main() 関数として表示されます。これはうまくいくと思いました。しかし、そうではありませんでした。何が欠けているのかわからない。どんな助けでも大歓迎です。
eclipse - クイックフィックスによる xtext AST のソート
クイックフィックスを使用してノードの順序を変更しようとしましたが、何かが間違っています。xtend の私のコードは次のとおりです。
コンソールに例外はスローされません。デバッグで UnsupportedOperationException がスローされ、xtext によって処理されることがわかりました。EList は不変だと思います。では、AST をソートするにはどうすればよいでしょうか。
(生成されたコードは次のとおりです:)
ありがとう!
generics - Xtend: 文字列リストの作成
List<String>
Xtendで型を持つ変数を作成するにはどうすればよいですか?
動作しません。の型はadd()
伝播されません。
実行時に例外を発生させます。
Xtend で特定のタイプのリストを作成するにはどうすればよいですか?