Minecraft数据包编译语言 | 面向对象的Minecraft DSL
该项目的实现不够成熟,若需要生产环境使用,请考虑其他相对成熟的项目
- 一次编写,处处编译
- 基本面对对象支持
- 完善的依赖库,不用手写指令
- 更低学习曲线
- 优化错误显示
- 统一调试信息输出
- 完善插件api
- 迭代版本跟上mojang版本更新
- 提高优化效果
- 寻找尽量节省性能的堆栈实现方法
- 转译器国际化支持
- 转译器多线程优化
- 使大项目编译更省心
- 允许通过简单的语法声明和调用其他数据包
- 谓词,自定义数据等功能
- 函数一等公民化
- 自动化构建脚本支持
- Python 3.10+
git clone https://github.com/771835/dovetail.git
cd dovetail
pip install -r requirements.txt
python main.py -O2 xxx.mcdlQ: 为什么不支持递归?
A: 递归需要运行时维护栈帧,在Mc中实现非常繁琐复杂,因此你应当将递归改写成迭代实现
Q: 有很多技术可以解决递归,如CPS+TRO+闭包,为什么不使用
A: 因为技术所限,以及作者本身精力有限
Q: 编译器为什么提示未知的错误并给出了堆栈信息?如何解决?
A: 你可以在github上开启一个issue提交这个问题
Q: 明明我的代码没有错误,生成出的指令却无法正确执行
A: 请先尝试使用参数 -O0 ,若是再次生成的指令正确执行,请以ir优化错误为issue标题前缀,否则以未知错误作为标题前缀
Q: 生成出来的指令执行到一半就中止
A: 请尝试使用gamerule指令适当提高maxCommandChainLength规则的数量
Q: 找不到可用后端怎么办
A: 安装对应后端插件
本项目采用 Apache 2.0 授权
这意味着您可以自由地将其用于个人或商业目的,无需我的直接许可。
同时,如果您在项目/产品中无修改地使用了本作品并从中获得了商业价值,我非常欢迎您通过以下方式予以认可:
- 注明来源:在您的产品文档或在关于页面中提及本项目。
- 分享改进:将您基于本项目所做的改进回馈给社区。
- 进行贡献:欢迎提交代码、报告问题、改进文档或提出建议,共同让项目变得更好。
感谢您的支持!
- 4424 在项目前期发现了诸多bug并提出了大量具有建设性的意见
- 项目fast_integer_sqrt 快速整数开方