問題タブ [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 - @doc アノテーションの目的と Rascal モジュールからのドキュメントの生成
Rascal モジュールで @doc アノテーションをたくさん見つけましたが、それらがどのように機能するのかわかりません。javadoc を作成しようとしましたが、直接サポートされていません。Rascal プロジェクトのモジュールを介してプロセスを実行することにより、ドキュメントのコレクションを生成する方法が必要だと感じています。どんな助けでも大歓迎です...
rascal - 各ノードに ID を割り当てる間、AST のノードをトラバースすることはできません
これは、Rascal の内部で何が起こっているかを理解するための、より単純な個人的な試みです。(まだサポートされていない場合)より良い解決策が必要です。コードは次のとおりです。
私にくれます
loadPHPFile は list[Stmt] タイプのノードを返します。ここで、各 Stmt は、プログラム (私の場合は PHP) で発生する可能性のある多くのタイプのステートメントの 1 つです。なぜこれを行うのかを説明せずに、上記のコードが機能しないのはなぜですか? 非常に単純な例がオンラインドキュメントで解決されているため、特にイライラします. 参照: http://tutor.rascal-mpl.org/Recipes/Basic/Basic.html#/Recipes/Common/CountConstructors/CountConstructors.html
rascal - Rascal でノードにアクセスする際に、パターンを使用してコンストラクターのパラメーターにバインドする
代数データ型のトップダウン ビジットを実行しようとしています。特定のタイプのノードを見つけたら、その特定のノードのノードにもバインドしたいと思います。
したがって、case ステートメントで私がやろうとしているのは、特定の種類のノードを検索することです。つまり、2 つのパターン マッチを実行して、型 assign(var( ),scalar( )) を検索します。私の意図は、特定の種類のノードを見つけると同時に、左と右の変数をそれぞれ var( ) と scalar( ) にバインドすることです。サブノードに関する情報を取得するために、ネストされた「case」ステートメントを実行しないことを望んでいました。多分それは可能ですが、私にはわかりません。
rascal - rascal で ADT の特定の種類のコンストラクタを決定する
問題は次のとおりです。
e1 と e2 のタイプを判別する条件を指定して、以降のアクションを実行するにはどうすればよいですか。たとえば、
yield - Rascal での (サブ) 解析ツリーの生成
Rascal の (サブ) パース ツリー、つまりサブツリーに関連付けられたテキストの歩留まりを取得するにはどうすればよいですか? たとえば、訪問中に (Java/M3 を使用した) 宣言に遭遇し、この宣言のテキストを取得したいと考えています。「unparse」を試みましたが、これは「宣言された (オーバーロードされた) 署名パターン:unparse(Tree) のいずれにも一致しません」と表示されます。トップ ソート/開始シンボルに対してのみ機能すると思います。
abstract-syntax-tree - Rascal の Java AST に「super()」という式があるのはなぜですか?
Java AST 宣言の式の 1 つにExpression::super()
. どの Java 式がsuper()
使用されていますか?
このクラスの例を見てください:
rascal の AST は次のとおりです。
super()
引数のないコンストラクターは含まれません。ワイルドカード バインド ( wildcard(super(
)の場合のみ、super(_)
引数は 1 つあり、lang::java::m3::TypeSymbol
モジュールに記述されています。
では、何が起こっているのでしょうか、欠落している Java コンストラクトがありますか、または AST で生成されたものに関して、Rascal ADT 定義が正しくありませんか?
rascal - リストやセットから要素を削除する
「プライベート」スコープ識別子を使用して、いくつかのモジュール レベルのインスタンス変数を定義した状況があります。これらの変数はモジュール内のいくつかの関数で使用されるため、これを行う必要があります。また、これらの変数の一部は「リスト」または「セット」です。これらの変数の値は、モジュール内の特定の関数を繰り返し呼び出しても保持されることに気付きました。これは予想通りです。
関数の 1 つを繰り返し呼び出すテストも作成しています。インスタンス変数の新しいコピーを用意したいと思います (Java のインスタンス メンバーと同様)。私はそうすることができないようです。リスト/セットの内容を無効にしようとすると、次のように問題が発生します。
そこで、nullifyInstanceVars( ) メソッドを set[DataType1] data1={ } に変更しました。関数内でのみスコープが設定された新しい変数を作成するだけで、実際には要素をクリアしないと信じているため、機能しません!
どんな助けでも大歓迎です...