2 つの言語 L1 と L2 の解析と式の評価を実装しています。重要なことは、L1 は別の言語として、または L2 の一部として使用でき、L2 には L1 にはないいくつかのキーワードのみが含まれていることです。
私はすでにLexing -> Parsing -> AST production -> L1 の AST 処理プロセスを実行しており、この F# にはFsLex、FsYaccユーティリティを使用しています。
別の言語の L2 を解析する際に、既に開発された解析プロセス (トークン、L1 パーサーで定義されたAST 生成)を使用することは可能ですか?
AST : L1 の AST は L2 の AST の一部として使用され、同じ AST 処理プロセスで使用されます。
FsLex Lexer : 可能性は両方の言語に共通であり、L1 lexer に L2 のいくつかの欠落キーワードを含めるだけで済みます。しかし、L1 と L2 に別々のレクサーを用意し、L2 レクサーから L1 を参照することができれば、すばらしいでしょう。
FsYacc パーサー: すべての L1 パーサー コードを L2 に「copy-C」したくありません。 L1 パーサーで定義された L2、トークン、および AST データ生成で参照する方法はありますか?
前もって感謝します