这是一个功能极其简陋,实现极其粗糙的Python字节码解释器(Python虚拟机),可以将Python代码翻译成数据包命令你可能会问,为什么要用Python来写数据包呢?
因为Python可以提供非常方便的分支控制,大量的库函数,以及方便的变量管理等功能
目前支持:
分支和循环函数化
操作变量
调用函数和传递参数(函数名不是硬编码)
字符串拼接和子字符串
目前尚不支持
Python原生字符串运算(要用strcat等等)
导入模块(只支持单模块解析)
基本上什么库函数,什么功能都可以实现,但都没有实现。本人精力有限,故先将代码发上github,起到抛砖引玉作用。未来如果我有时间应该会实现一些标准库
Minecraft-Python-VM/ at main · unsigned123/Minecraft-Python-VM (github.com)
欢迎发pull request
希望找个人帮我管理。。。
实现原理
使用dis库(我太懒了,就乱改了下dis库,直接去分析它输出给用户的字符串来获得字节码而不是调用解析器得到字节码,所以说实现很!粗!糙!)解析python函数的字节码,然后把字节码翻译成mc的命令
因为Python可以提供非常方便的分支控制,大量的库函数,以及方便的变量管理等功能
目前支持:
分支和循环函数化
操作变量
调用函数和传递参数(函数名不是硬编码)
字符串拼接和子字符串
目前尚不支持
Python原生字符串运算(要用strcat等等)
导入模块(只支持单模块解析)
基本上什么库函数,什么功能都可以实现,但都没有实现。本人精力有限,故先将代码发上github,起到抛砖引玉作用。未来如果我有时间应该会实现一些标准库
Minecraft-Python-VM/ at main · unsigned123/Minecraft-Python-VM (github.com)
欢迎发pull request
希望找个人帮我管理。。。
实现原理
使用dis库(我太懒了,就乱改了下dis库,直接去分析它输出给用户的字符串来获得字节码而不是调用解析器得到字节码,所以说实现很!粗!糙!)解析python函数的字节码,然后把字节码翻译成mc的命令