问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

自制组态软件(36)lua编译器之外部的局部变量

发布网友 发布时间:2024-10-21 17:37

我来回答

1个回答

热心网友 时间:2024-11-30 11:53

本文旨在处理局部变量与使用作用域不同的情况,通过升级cgNameExp函数实现Lua编译器对这种复杂作用域的管理。首先定义了newUpvalInfo,为FuncInfo增加了两个字段,并给locVarInfo添加新字段,为接下来的实现做足准备。引入了indexOfUpval函数,该函数首先寻找父作用域,捕捉变量的lua栈值,从而捕获变量。在Lua文件中,捕获了定义a变量的作用域是使用a变量作用域的父作用域这一特性。通过观察Lua文件处理upvalue的方式,我们了解到,对于主函数,在load函数中会捕获_ENV变量作为全局表,而对于子函数的loadProto,则会执行同样的逻辑,使得子函数也能访问全局表。

接下来的挑战在于修改FuncInfo的getUpvalues函数,以确保在主函数中能够加载全局表,同时让子函数捕捉主函数中的局部变量和upvalue。理解了程序流程后,我们对getUpvalues函数进行了调整,使其能够根据upvalues生成Upvalues,同时修改了loadProto函数,以便在子函数中捕获main函数中的局部变量和upvalue。为了实现上述目标,我们对parse函数进行了必要的修改,使得主函数外的局部变量能正确绑定为全局表,并确保load函数中至少有一个外部变量绑定,从而在执行时能访问全局表。

实现这一功能的关键是确保在解析Lua代码时正确处理局部变量和全局表的访问。在解析过程中,我们添加了对全局函数访问的逻辑,确保了main函数对外部局部变量的捕捉,并在子函数中正确访问全局表。通过调整cgNameExp函数的处理逻辑,确保了全局变量"ENV"的读取,从而触发了main函数对最外层FuncInfo中局部变量"ENV"的捕获,实现了子函数访问全局表的需求。

通过上述步骤,我们成功地解决了Lua编译器在处理局部变量与使用作用域不同时的管理问题,实现了复杂作用域场景下的代码生成和解析逻辑的调整,确保了编译器在各种作用域环境下的正确运行。这一工作对于Lua程序的编译和执行具有重要意义,为开发者提供了更灵活、更强大的编程工具。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
诺基亚5233直签工具 我的5233下了证书、也在塞班官网上在线签名了、怎么还是提示证实书错误... 你好 就是我用的诺基亚5233直签工具就是用不了什么受证书限制内部错误... 请问哪里有做餐用包装纸巾的.厂 怎么在餐巾纸上或者纸巾包装上打广告? 广告餐巾纸广告餐巾纸的分类 广告餐巾纸广告餐巾纸的制作形式 ...支付密码一样呢?支付密码和银行卡的关系是什么?求解答, ...今天是怎么了,换了数据线也不行,同事的M1也一样不能充电... 小米M1和小米青春版就是CPU和内存不一样,我是学生,买哪一个比较好? 什么叫外部变量内部变量(什么叫变量和不变量) ...大力神秘商店兑换物品总汇-新手攻略-安族网 左侧鼻骨粉碎性骨折 鼻中隔偏曲 算轻伤么 剑与远征冬狩悬赏兑换什么好 冬狩悬赏奖励兑换建议-新手攻略-安族网 ...皮肤会打折吗? 2017双11皮肤活动详解-新手攻略-安族网 几月份去三亚拍婚纱照比较好 海南三亚婚纱照几月拍好 鼻骨骨折 鼻中隔偏曲是否重伤 不思议迷宫三周年商店换什么好 三周年商店兑换推荐-新手攻略-安族网 薄荷的适宜生长温度是多少? ...贵族头像框怎么获得? 单身贵族头像框获取攻略-新手攻略-安族网... 王者荣耀特供照明物品兑换什么好? 特供照明物品兑换推荐-新手攻略-安... 6. 与普通定期存单相比,大额可转让定期存单具有( )的特点。 农行存四百一年有多少利息 描写柳树优美的诗句(清风拂过,轻舞柳枝;婀娜身姿,伴随四季。)_百度... 3万块钱借454天利率是百分之11利息是多少 镇魔曲特别庆典盛世之欢怎么玩 王者荣耀单身贵族头像框怎么得_王者荣耀双11活动你不是一个人战斗_百度... 《王者荣耀》单身贵族头像框获得方法介绍_《王者荣耀》单身贵族头像框获... 王者荣耀单身贵族头像框怎么获得? 单身贵族头像框获取攻略-新手攻略... 2021年12月20日财神方位 离婚后孩子会继承妈妈的财产吗 《方舟生存进化》手游,哪位大神告诉我快捷栏里的镐子上面的标志是什么... 打印机usb接口怎么用? 美术生艺考设计类专业介绍详情解析(二) edi纯水什么意思 卖车的说纯水什么意思 左眼下眼皮跳女人是什么预兆 我怎么才能够把语文学好 智能制造的柔性生产,如何通俗理解? 中华人民共和国邮政法第五章 损失赔偿 扩张型心肌病诊断和治疗指南 ppt课件 我姐在2周前给我用写信的方式给我寄了几百块钱,到现在还没收到该怎 ... 钢琴证明可以不剪头发 办理招行信用卡都要准备什么资料? 请问招行的信用卡申请下来都需要符合什么条件? 办理招行的小额信用卡都需要准备什么资料 简明自然百科全书内容简介 青少年百科全书系列内容简介 进化论作者简介 人和自然系列:喜怒无常的天气女王内容简介