問題タブ [kiama]

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.

0 投票する
1 に答える
551 参照

scala - Kiama/Scala で用語を条件付きで書き換える

Kiama で「コミットされた選択」操作を実装しようとしています (同様の方法で機能する他の機能と共に)。

サブタームの 1 つが正常に書き直せる場合は、タームを書き直したいです (いずれかのブランチを開始すると、コミットされるという考えです)。

現在、私は次のようにすることができます:

したがって、r2 は、r1 を最初のサブタームに正常に適用できる場合にのみ起動します。

これはあまりキアマっぽい感じがしません。合同を使用する必要があると感じていますが、ドキュメントからどのように機能するかわかりません。

これを行うためのよりエレガントでキアマイ風の方法を提案できる人はいますか?

0 投票する
1 に答える
494 参照

scala - Scala で外部 DSL を評価するためのライブラリ

scala で外部 DSL を評価するために必要な手順と、これらに使用できるライブラリは何ですか?

掘り下げた後、パーサーコンビネーターを使用してケースクラスからASTを作成できます。プロセスの次のステップは何ですか? kiama ( https://code.google.com/p/kiama/ ) を見ましたが、ドキュメントからは不明なようです (言語処理の知識が限られているためかもしれません) シンボルテーブルを維持する方法、アクションを DSL ステートメントにバインドする方法等

0 投票する
1 に答える
68 参照

scala - packrat scala/kiama エラーによるタイプの不一致

Scala (kiama) でミニ Java コンパイラを作成しています。「tipe」と呼ばれるコード ブロックの 1 つにエラーが表示され、Scala の初歩的な知識だけでは解読できません。

これは私のコードです(やや不完全ですが、エラーが発生しているとは思いません)

プログラムをコンパイルしようとすると、次のエラーが発生します。

タイプの不一致が見つかりました:

見つかった : SyntaxAnalysis.this.Parser[オブジェクト]

必須: SyntaxAnalysis.this.PackratParser[funjs.FunJSTree.type]

ヒント ~ ( "->" ~> ヒント ) |

| を指す矢印付き

私はScalaが初めてで、これは私にとってかなり複雑です。