我正在为两种语言 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词法分析器:两种语言都可能通用,我只需要在 L1 词法分析器中包含几个 L2 的缺失关键字。但是,如果可以为 L1 和 L2 提供单独的词法分析器,并从 L2 词法分析器中引用 L1,那就太好了。
FsYacc 解析器:我不希望将所有 L1 解析器代码“复制-C”到 L2 中。 有没有一种方法可以在我的 L1 解析器中定义的 L2、令牌和 AST 数据生产中进行引用?
提前致谢