随着时代发展,传统逻辑已经无法满足开发者们对开发的需要
由此,MLL应运而生
MLL是一门新的编程语言,语法贴近逻辑的同时增加了现代编程语言的特性
旨在逻辑开发者的提升开发体验
而本程序是一个编译器,能够将MLL代码编译为Mindustry逻辑代码
传统逻辑类似汇编,只有很基础的一些方法
很多数据结构,使用传统逻辑难以实现
MLL能够把具有高级特性的MLL代码编译为传统逻辑代码
- if else 表达式
if a {
} else if b{
} else {
}
- while循环
while cond{
}
- repeat..until语句 学过lua的都知道
repeat {
}until cond
- goto 祖宗之法
<a> # 创建一个label
# 一些代码 ...
goto a # 跳转到a
一种特殊的goto:
goto _ # 重头开始运行(== end)
开发者可以设置一个定长数组,编译器会自动分配其所在的内存元/库
下面的代码是一个简单的函数调用的例子
mll支持两种函数:
- 普通函数 对返回值的类型没有限制,但是所有代码都会编译到同一个处理器
- 协同函数 通过一些机制,借用内存也能块将任务分发到其他处理器并行计算 todo
fn add(a,b) return a+b
# 或者
fn add(a,b) {return a+b}
- 函数支持重载
也就是说
fn fna(){}
和
fn fna(a){}
是两个函数
- 不是"先声明再使用"
foo() # 没有问题
fn foo(){}
- 不可以嵌套声明
if a{
fn b(){} # 报错
}
能够用符合人类思维的方法解析表达式
支持运算符:
- 算术
- 逻辑
- 数学函数
- 向量函数
set x = 114 * (514 + 1919810)
set r = rand(114514)
op add op_t0 514 1919810
op mul x 114 op_t0
op rand x 114514 0
我已经退圈了
没有什么动力更新
随缘