問題タブ [rascal]
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.
rascal - M3 でインターフェイスを実装している匿名クラスはどこで確認できますか?
Rascal を使用して、M3 モデルを介してポリモーフィック型 (1 つ以上の実装) を検出しています。JHotDraw 6 ( http://www.jhotdraw.org/org::jhotdraw::framework::ViewChangeListener
) には、匿名クラスによってのみ実装されるインターフェースがありますが、JHotDraw の m3 モデルにはこの情報が含まれていないようです。
空集合を返します。
匿名クラス|java+anonymousClass:///org/jhotdraw/standard/AbstractTool/createViewChangeListener()/$anonymous1|
は m3 モデルにありますが、ViewChangeListener インターフェイスを実装しているとは認識されません。
この情報を取得する信頼できる方法はありますか?
eclipse - Rascal Eclipse ライブラリとプラグインの例外 (インストール直後) UPDATED
RCP および RAP 開発者向けの Eclipse の最新バージョンをインストールしたところです。次に、インストール プロセスのすべての手順に従って、Rascal をインストールします。1+1 コマンドを試して結果が得られたので問題なく動作しますが、次の例外があります。
そして日食の設定:
そして、2 つの警告 (問題) があります。
初め:
リソース ファイルの内容:bin.includes = META-INF/
2番:
リソース ファイルの内容:
私の出力には、次の警告があります。
私の eclipse.ini ファイル:
それで、私は2つの質問があります。まず、例外を解決するにはどうすればよいですか? そして 2 つ目は、この例外は Rascal の通常の機能を妨げるのでしょうか?(私は TU/e - ソフトウェア進化コースの学生です。課題の例外を解決する必要がありますか?)
どうもありがとうございました!アレックス。
eclipse - RCP および RAP 開発者向けの Eclipse: Juno Service Release 2
Rascal プログラムを実行することはできますが、このエラーと警告のトレースは、パーペティブを開くことによってのみ得られます (エラーが関連しているかどうかさえわかりません)。1 つの警告と 2 つの例外があります。
java - Rascal を使用して Eclipse プロジェクトからクラスの依存関係を抽出する
Rascal を使用して Eclipse Java プロジェクトを分析し、このプロジェクトのクラスの依存関係を特定しています。より正確に言うと、クラス A がクラス B に依存するのは、(1) タイプ B のパラメーターを使用するか、(2) タイプ B のローカル変数を使用するメソッドがクラス A にある場合のみです。ここでは、依存関係のみに関心があります。ここで、A と B は両方とも私のプロジェクト内のクラスであり、両方とも異なるクラスです。私はすでに Eclipse プロジェクトから M3 モデルを作成しており、以下を使用して (タイプ B の) 必要なパラメーターを特定できました。
ここでは、M3 モデルのすべての宣言を取得し、パラメーターをフィルター処理し、@typeDependency
注釈を使用して対応する型を取得します (代わりに使用するときに取得した情報を操作する方法がわかりませんでした@types
)。最後に、最後の 2 つのステートメントを使用して、型がプロジェクト内のクラスに関連していないすべてのパラメーター (String パラメーターや Integer パラメーターなど) を除外します。私は Rascal にまったく慣れていないので、これを達成する別の方法を思いつきませんでした。
私の質問は次のとおりです。プロジェクトのタイプ B のローカル変数を取得するにはどうすればよいですか? スキーム"java+variable"
を と組み合わせて使用するだけでは不十分です@typeDependency
。これには、プロジェクト内の他のクラスと依存関係があるタイプ Iterator または String の変数も含まれており、これらのタイプの変数には興味がないからです。さらに、結果のセットには次のような変数が含まれます
wherefield
はそのクラス内のグローバル変数です。このため、クラス自体に型の依存関係が存在しb
、これらも結果から除外したいと思います。ですから、それでは@typeDependency
必要な情報が得られないと思います。
Rascal でローカル変数を扱っていると思われるこの関連記事を見つけましたが、M3 ではなく AST を使用しています。この設定で AST を使用する方法がわかりません (私が言ったように、私は Rascal の初心者です)。M3 でできるかどうか疑問に思っていました。どのように進めればよいですか?
編集:私が達成したいことを明確にするために、小さな例を挙げます。私のプロジェクトには と の 2 つのクラスがA
ありB
、B
いくつかのメソッド ( methodB1
、methodB2
、 ...) が含まれているとします。さらに、クラスA
には次の構造があります。
取得できるようにしたい変数は ですimportantVar
。これはローカル変数であり、タイプB
(プロジェクト内のクラス) であるためです。と には興味がありませんsomeVar1
。someVar2
なぜなら、それらは私のプロジェクトに関連しない型を持つローカル変数だからです。前に示したパラメーターのコード例では、最後の 2 つのステートメントでこれらの型を除外しました。さらに、 にも興味がありません。someVar3
型A
があり、この同じクラス内で発生するからです。
を使用して必要なローカル変数を取得できるはずだと思いますが、@types
方法がわかりません。を使用@types
すると が得られ、TypeSymbol
このデータ型の定義を調べて、それを操作する方法を確認しました。内のほとんどのデータ型にTypeSymbol
は という名前の場所がありdecl
、その操作方法を私は知っています。ただし、問題は、たとえば\int()
や など、この場所を持たないタイプも受け取ることです。\array(..)
これらの場合、場所decl
は未定義です。
java - M3 の classes()、fields()、methods() 関数はどこに文書化されていますか?
それらがここに文書化されることを期待します: http://tutor.rascal-mpl.org/Rascal/Libraries/lang/java/m3/Core/Core.html、それはそれらを取得するためにインポートする必要があるパッケージなので、しかしドキュメントを検索してもあまり結果が得られません。
java - Rascal を使用して Eclipse プロジェクトから静的フィールドを抽出する
static
Rascal を使用して Eclipse プロジェクトを分析していますが、特定のフィールドが として宣言されているかどうかを検出できるかどうか疑問に思っていましたstatic int x;
。
プロジェクト用に M3 モデルを作成しました。これを使用してfields(model)
、プロジェクト内に存在するすべてのフィールドを取得できます。
static
このセットから任意のフィールドを抽出できるようにしたいと考えています(元のコードを自分で確認する必要はありません)。
これは Rascal 内で可能ですか?もしそうなら、どうすればそれらを抽出できますか?
rascal - ラスカルで文字列を大文字にする
ラスカルで文字列を大文字にするにはどうすればよいですか?
文字列ライブラリのドキュメントでは、文字列を大文字にする方法が見つかりません。
http://tutor.rascal-mpl.org/Rascal/Rascal.html#/Rascal/Expressions/Values/String/String.html