scala で外部 DSL を評価するために必要な手順と、これらに使用できるライブラリは何ですか?
掘り下げた後、パーサーコンビネーターを使用してケースクラスからASTを作成できます。プロセスの次のステップは何ですか? kiama ( https://code.google.com/p/kiama/ ) を見ましたが、ドキュメントからは不明なようです (言語処理の知識が限られているためかもしれません) シンボルテーブルを維持する方法、アクションを DSL ステートメントにバインドする方法等
scala で外部 DSL を評価するために必要な手順と、これらに使用できるライブラリは何ですか?
掘り下げた後、パーサーコンビネーターを使用してケースクラスからASTを作成できます。プロセスの次のステップは何ですか? kiama ( https://code.google.com/p/kiama/ ) を見ましたが、ドキュメントからは不明なようです (言語処理の知識が限られているためかもしれません) シンボルテーブルを維持する方法、アクションを DSL ステートメントにバインドする方法等
Kiama での共通言語処理タスクのチュートリアル スタイルのドキュメントが増えるとよいと思います。私たちはそれに取り組んでいますが、現時点では報告する具体的なものは何もありません.
それまでの間、私が提供できるのは Kiama ディストリビューションの例だけです。特に、minijava の例は、自明でない Java のサブセット用の合理的にアクセス可能なコンパイラーです。名前と型の分析 (SemanticAnalysis.scala を参照) を行い、JVM バイトコードを生成します。セマンティック分析では、宣言から名前の使用まで環境を渡す単純なモデルを使用します。この例がどのように機能するかについて具体的な質問がある場合は、こちらまたは Kiama メーリング リストでお気軽にお問い合わせください。
Oberon-0 の例は、命令型言語から C への完全なコンパイラーでもあり、セマンティック解析も含まれています。