首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何向flex+bison汇编器添加预处理器?

我应该如何向flex+bison汇编器添加预处理器?
EN

Stack Overflow用户
提问于 2012-04-14 11:43:07
回答 2查看 2.4K关注 0票数 1

我已经用flex+bison写了一个简单的汇编器。我想在汇编语言中添加一个预处理器(宏)。这是我第一次尝试使用flex+bison,我不知道该怎么做。

添加单独的flex+bison实例并完全单独执行预处理是否合适?或者它们是否支持为处理的不同阶段表达不同的构造?

如果好奇,可以使用the assembler is here,用于DCPU-16体系结构。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-14 12:07:56

您肯定需要一个单独的解析器。这就是gcc的做法--你可以在预处理之后停止编译(我相信是-E)。从技术上讲,使用单个解析器编写解析器在技术上是可行的,但这会带来很多麻烦,而且我也看不出有什么特别的理由可以解释为什么它是有用的,而单独编写解析器将允许您在仅进行预处理之后停止编译,这样不仅可以更容易地跟踪预处理器/汇编器本身中的错误,而且可以更容易地跟踪使用它编写的任何程序中的错误。

票数 4
EN

Stack Overflow用户

发布于 2012-04-23 11:53:55

你可以看看我的。我和你有同样的想法:p You can find it here,它支持表达式,但我意识到如果你想支持前向引用,你必须有一个ast。也许当诺奇发现不固定大小的操作码更难做汇编程序时,他会改变它:)

关于这个主题的一本不错的书是Flex and Bison,它展示了如何做“状态”,也就是你可以推入词法分析器状态并改变文件缓冲区。它展示了一个初步的解析器/lex来解决这个问题。它对我的学习有很大帮助:)

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

https://stackoverflow.com/questions/10150806

复制
相关文章

相似问题

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