問題タブ [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 - このサンプル コードの静的型エラーが、Rascal によって実行時にのみ報告されるのはなぜですか?
Rascal のドキュメントによると、言語は静的に型付けされています。ただし、型エラーは実行時にのみ報告されます。
たとえば、このモジュールを作成すると、int 変数に実数を割り当てているため、型エラーが発生することが予想されます。
モジュールを REPL にインポートし、最後に関数を実行すると:
rascal - 宣言で初期化されていない場合、変数は不明です
今日、これに遭遇しました。何か問題があるのではないかと思っていました。
次に、コンソールで:
このように宣言すると、機能します。
問題は、なぜ宣言で初期化する必要があるのですか?
rascal - 一時変数を使用せずにマップの値を使用できないのはなぜですか?
これが私のシナリオです:
これにより、次のようになります。
これまではとても良かったのですが、今はこれをやりたかったのですが、うまくいきませんでした:
したがって、g[1] の値を直接使用することはできず、次のような一時変数を使用する必要があります。
しかし、リストを拡張したいときはいつでもこれを行うのは面倒です! 私は何か間違ったことをしていますか、それともこれは素晴らしい機能でしょうか?
リチャード
grammar - 文法指定時のラスカルエラー
おもちゃの文法を指定するための単純なファイルがrascalにあります
これはうまくいきますが、問題は私が書きたくなかったことです
書きたかった
しかし、rascal によって解析エラーとして拒否されました。
問題なく受け入れられます。誰かが私が間違っていることを説明できますか?
rascal - 私の変数には注釈がありますか?
変数に注釈があるかどうかを確認するにはどうすればよいですか?
これは、キーワードを使用してプロパティに対して実行できることを知っていますhas
。
注釈に対してこれを行う同様の方法はありますか?
rascal - 制限で「または」が発生した場合のリスト内包表記の予期しない結果
次の結果は、私には奇妙な結果に見えます。
私はこれを期待していました。
rascal - variable(str name, int id) の「id」はどのような役割を果たしますか?
Eclipse Java コンパイラ (JDT.rsc) によって生成される構文ツリーにアクセスするために、Rascal ライブラリを使用しています。
抽象構文ツリーがどのように機能するかを修正しようとしています。私が見逃していることの1つは、「variableBinding」です。変数宣言という 1 つのステートメントを含む 1MyClass
つのメソッドを持つ非常に単純なクラスを想像してください。文字列変数の宣言は、以下の AST 抜粋で表されます。doNothing()
myVar
myVar
@bindings
注釈内のvariableBinding
キーの下に、変数へのパスの連続するコンポーネントを表すリストがありますmyVar
。最後の項目は、 Id コンストラクターによって表される実際の変数自体を表しvariable(str name, int id)
ます。
質問: ID の意味は何ですか?
doNothing()
メソッドを複製して名前を付けると、AST でandがdoNothing2()
見つかるため、これは確かに一意ではありません。それは正確に何を識別しますか?variable("doNothing",0)
variable("doNothing2",0)
rascal - エラー「コンストラクターが見つかりません」
私は現在、小さな DSL を作成するために Rascal を試しています。Pico の例を変更しようとしましたが、現在行き詰まっています。次のコードは例a = 3, b = 7 begin declare x : natural, field real @ cells blubb; x := 5.7 end
を完全に解析しますが、implode
関数は「PROGRAM のコンストラクターが見つかりません」というエラー メッセージで失敗します。さまざまなコンストラクター宣言を試みましたが、どれも適合しないようでした。予想されるコンストラクターがどのように見えるかを確認する方法はありますか?
構文:
概要:
ロード:
どうもありがとう、クリス