首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以使用为一种语言开发的FsYacc解析器作为另一种语言的解析过程的一部分?

是否可以使用为一种语言开发的FsYacc解析器作为另一种语言的解析过程的一部分?
EN

Stack Overflow用户
提问于 2011-06-09 08:15:07
回答 1查看 136关注 0票数 1

我正在为L1和L2两种语言实现解析和表达式评估。重要的是,L1可以作为单独的语言使用,也可以作为L2的一部分使用,而L2只包含几个关键字,这些关键字在L1中是不存在的。

我已经完成了->解析-> AST生成L1的-> AST处理过程,并使用FsLex、FsYacc实用程序实现了这个F#。

在分析另一种语言()时,是否可以使用已经开发的解析过程(我指的是 在L1解析器中定义的)?

AST: L1的AST将作为AST的一部分用于L2,并将使用相同的AST处理过程。

FsLex Lexer:可能对两种语言来说都很常见,我只需要在L1中包含一些L2缺少的关键字。但是,如果有可能为L1和L2单独使用词汇,并从L2 lexer中引用L1,那将是很棒的。

FsYacc解析器:我不想把所有的L1解析器代码都复制到L2中。是否有一种在L2解析器?中定义的L2、令牌和AST数据生成中引用的方法?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-09 12:11:37

这里有一个有趣的文章,它提到了语法作文的困难。短故事是,您不能使用类似yacc的解析器生成器来做您想做的事情。这并不意味着您不能使用一些基于宏的系统实现代码重用,但它仍然是一个黑客。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6289914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档