在 lex/yacc 中使用字典数据结构
我正在为使用 lex/yacc 创建的微处理器编写汇编程序。
我想在我的汇编代码中实现标签,并且我认为实现此目的的一个好方法是使用 {name:line#} 形式的标签字典。 然后我可以在插入标签时检查,如果它已经定义,则它是一个错误。
那么如何在 lex/yacc 中使用字典结构呢?
I'm writing an assembler for a microprocessor I'm creating using lex/yacc.
I'd like to implement labels in my assembler code, and I thought a good way to do this would be to have a dictionary of labels in the form {name:line#}. I could then check when inserting a label, if it's already defined, its an error.
So how can I use a dictionary structure in lex/yacc?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
查看各种哈希表实现来找到您喜欢的一个。
Look at the various hash table implementations to find one you like.
为了标签? 使用文件指针创建一个结构,并将其初始化为找到的标签的位置。 当您遇到标签声明时,访问该指针并用 locctr 填充该空白。
For labels? Create a structure with a file pointer, and initialise that to the position of the found label. And when you come across the label declaration, access that pointer and fill that blank with locctr.