![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lua解释器
文章平均质量分 89
分享lua解释器移植使用的专栏
zhuzhu、
欢迎关注我的B站账号“攻城狮zhuzhu”!
展开
-
可用于嵌入式的解释器调研对比,及lua解释器介绍
介绍可应用于嵌入式的解释器原创 2024-05-29 17:36:54 · 1095 阅读 · 0 评论 -
Lua移植到标准ANSI C环境
这个Lua脚本验证了我们需要的基本语法、数据类型、变量、循环、流程控制、函数、运算符、字符串、数组、迭代器、table(表)、元表(Metatable)、错误处理、垃圾回收、面向对象等功能。复制项目构建模板,修改名字,修改CMakeLists.txt和kconfig文件,方便后续模块化移植到自己的项目中,目录结构如下。由于我在window环境下,我可以很轻松的打开文件,所以直接采用的文件读取的方式执行。时间流逝、年龄增长,是自己的磨炼、对知识技术的应用,还有那不变的一颗对嵌入式热爱的心!原创 2024-06-08 15:48:34 · 1045 阅读 · 0 评论 -
Lua解释器裁剪
这个图上记录了5.4.6版本中所有Lua解释器源码对应的作用,其中棕色的标记的文件就是我们此次要进行裁剪的功能对应的文件。:根据特定应用场景的需求,裁剪解释器可以集成特定的C库或功能,实现高度定制化的解决方案,提高软件的适应性和灵活性。时间流逝、年龄增长,是自己的磨炼、对知识技术的应用,还有那不变的一颗对嵌入式热爱的心!关于lua解释器的裁剪就完成了,对其裁剪有利于嵌入式的应用,满足更多的使用场景。所有的测试仍然可以通过,说明我们的裁剪没有对我们需要的功能造成影响。原创 2024-06-12 19:45:36 · 1048 阅读 · 0 评论 -
在Lua解释器中注册自定义函数
如国这个注册的lua函数存在参数输入,在Lua中调用C函数时,所有参数都通过栈传递。在C函数中,将结果返回给Lua时,需要将结果压入栈中,并且返回结果的数量。但只是开始,我们移植lua解释器更多的是为了能让lua解释器能控制我们的硬件或者逻辑,这样lua与底层C语言的交互就尤其重要了。时间流逝、年龄增长,是自己的磨炼、对知识技术的应用,还有那不变的一颗对嵌入式热爱的心!第二个参数是lua解释器中的别名,第三个是C语言中的函数指针。这个函数返回当前栈的大小,也就是传递给函数的参数个数。原创 2024-06-13 08:36:20 · 963 阅读 · 0 评论 -
在Lua解释器中注册自定义函数库
在这种情况下,开发者需要将自定义函数库注册到Lua解释器中,从而扩展其功能,满足特定的应用场景。每个函数必须遵循Lua规定的函数签名,即返回类型为int,参数为lua_State*。编写库的注册函数:该函数会将函数表注册到Lua解释器中。通常,这个函数会调用luaL_newlib或luaL_register(取决于Lua的版本)来创建一个新的Lua表,并将所有函数添加到这个表中。在Lua解释器中注册自定义函数库的过程实际上是将C/C++等其他语言编写的函数暴露给Lua脚本,以便Lua能够调用这些函数。原创 2024-06-13 18:16:58 · 918 阅读 · 0 评论 -
Lua实现自定义函数面向对象编程
通过实际的代码示例和详细的解释,您将学会如何在Lua中创建类和对象、实现继承和封装等OOP概念,从而为您的Lua项目增添更强大的结构和功能。Lua作为一种轻量级且灵活的脚本语言,虽然没有内置的面向对象编程(OOP)支持,但其强大的表(table)机制和元表(metatable)特性使得我们可以通过特定的编程模式来模拟OOP。通过这些代码示例,我们可以看到,尽管Lua没有原生支持OOP,但通过灵活运用表和元表,我们可以有效地实现面向对象编程,为代码带来更高的可读性和可维护性。希望大家给我的文章和B站视频。原创 2024-06-13 18:33:23 · 1016 阅读 · 0 评论