社区
C语言
帖子详情
Lex Yacc编写汇编器的一个问题:分离预处理器和汇编器
freshui
2008-04-28 11:09:00
我之前的版本将预处理器和汇编过程都在一个lex和yacc程序中,通过不同的遍来操作完成的
现在感觉维护和扩展起来都很麻烦,想要把他们拆开,分别用两套lex yacc来完成
因为lex会生成 yylex()函数, yacc会调用, 想要二者生成的yylex()和yyparser()
分别要改成其他的名字,同时lex和yacc也不能生成的默认文件名, 不知道该怎么设置
有没有对这两个工具比较熟悉的朋友支个招~
...全文
196
8
打赏
收藏
Lex Yacc编写汇编器的一个问题:分离预处理器和汇编器
我之前的版本将预处理器和汇编过程都在一个lex和yacc程序中,通过不同的遍来操作完成的 现在感觉维护和扩展起来都很麻烦,想要把他们拆开,分别用两套lex yacc来完成 因为lex会生成 yylex()函数, yacc会调用, 想要二者生成的yylex()和yyparser() 分别要改成其他的名字,同时lex和yacc也不能生成的默认文件名, 不知道该怎么设置 有没有对这两个工具比较熟悉的朋友支个招~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我啃
2008-05-01
打赏
举报
回复
参考书:
http://linux.chinaunix.net/bbs/viewthread.php?tid=896629
等。
我啃
2008-05-01
打赏
举报
回复
[Quote=引用 4 楼 mLee79 的回复:]
感觉还是只用 lex yacc生产状态表, 用自己的代码实现功能比较简单些, 也灵活些 ..
[/Quote]
通常来说它们仅作辅助,用于生成懒得写的东西,对于一个compiler system首先进行的必须是设计,粒度分析等问题,否则下手会悔改会使自己痛不欲生~
meiZiNick
2008-05-01
打赏
举报
回复
lz要干嘛?
freshui
2008-04-29
打赏
举报
回复
多谢,准备试试。
对lex yacc的工作原理还不是很清楚,用起来还是比较不顺手。
mLee79
2008-04-28
打赏
举报
回复
感觉还是只用 lex yacc生产状态表, 用自己的代码实现功能比较简单些, 也灵活些 ..
星羽
2008-04-28
打赏
举报
回复
up :)
不想低调
2008-04-28
打赏
举报
回复
up
Treazy
2008-04-28
打赏
举报
回复
命令行提供了很多选项可以解决你的问题
-d;--defines; : 编写额外的输出文件,它们包含这些宏定义:语法中定义的标记类型名称,语义的取值类型 YYSTYPE, 以及一些外部变量声明。如果解析器输出文件名叫 name.c;, 那么 -d文件就叫做 name.h。 如果你想将 yylex 定义放到独立的源文件中,你需要 name.h;, 因为 yylex 必须能够引用标记类型代码和 yylval 变量。
-b file-prefix; --file-prefix=prefix; : 指定一个所有Yacc输出文件名都可以使用的前缀。选择一个名字,就如输入文件名叫prefix.c
-o outfile ;--output-file=outfile: 指定解析器文件的输出文件名。其他输出文件根据 -d; 选项描述的输出文件来命名。
Yacc 库通常在编译步骤中自动被包括。但是它也能被显式的包括,以便在编译步骤中指定 -ly 选项。
用
lex
与
yacc
构造
汇编
器
vasm及其指令模拟
器
vsim
用
lex
与
yacc
构造
汇编
器
vasm及其指令模拟
器
vsim vasm及vsim源于Designing Digital Computer Systems with Verilog一书中定义的VeSPA(
一个
小型的RISC指令集的CPU)的指令集。 vasm通过两遍扫描的方式将VeSPA的汇编...
myasm51,小型的51单片机
汇编
器
源码
基于Linux环境下
编写
的小型的51单片机
汇编
器
,源码开放,采用
lex
和
yacc
两个扫描和分析工具创建,代码小巧,易于研读和分析。对汇编源程序2遍扫描完成汇编,可以生成列表文件,Intel的Hex格式的文件及.bin格式的映像...
Amazon
Lex
入门(一年有效期)
Amazon
Lex
是一项服务,用于将对话界面构建到任何使用语音和文本的应用程序中。本课程向您介绍该服务,其中包括如何创建机
器
人并将其部署到不同的聊天服务中。我们还将回顾该服务的使用案例。 本视频由 Amazon Web ...
Course-CompilerDesign:NTHU编译
器
设计10320 CS340400。
一个
用于C的简单编译
器
,以便在
lex
和
yacc
的帮助下生成汇编代码Andes
编译课程为C实现
一个
编译
器
,以便使用
lex
和
yacc
工具生成Andes汇编代码。 作业1:扫描
器
,解析令牌作业2:语法,使用
yacc
建立LALR语法解析规则作业3:生成
器
,产生有效的Andes汇编代码,并且可以在Andes Simulator中...
myasm51-51单片机
汇编
器
源码
基于Linux环境下
编写
的小型的51单片机
汇编
器
,源码开放,采用
lex
和
yacc
两个扫描和分析工具创建,代码小巧,易于研读和分析。对汇编源程序2遍扫描完成汇编,可以生成列表文件,Intel的Hex格式的文件及.bin格式的映像...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章