41个版本 (6个重大更新)
0.9.1 | 2024年7月3日 |
---|---|
0.8.25 | 2024年6月27日 |
0.7.3 | 2024年3月22日 |
402 在 编程语言
每月322 次下载
用于 mers
350KB
9K SLoC
mers-lib
mers背后的库。
有了这个,你可以解析、编译、检查和运行mers代码。如果你真的想的话,你还可以添加自己的函数和类型,然后从mers中使用它们。
运行mers
运行mers代码有四个步骤。以下示例将展示如何实现它们,此说明文档仅解释它们的功能和原因。
1. 解析
这一步将源代码(字符串)转换为解析后的mers语句。
在这一步中,会捕获语法错误和未知变量。
2. 编译
这一步将解析后的mers语句转换为编译后的语句。它几乎从不产生错误。
3. 检查
这一步是可选的。如果你解析和编译了源代码,你可以(尝试)运行它。然而,mers假设你运行的mers代码实际上是有效的,所以如果你不检查代码的有效性,mers在运行你的代码时可能会崩溃。
这一步执行所有类型检查并确定代码的输出类型,如果它有效的话。
例如,以下代码是有效的,并且返回类型为 Int/Float
my_condition := true
if my_condition {
5
} else {
1.4
}
4. 运行
这一步假设正在运行的代码实际上是有效的,因此它永远不会返回错误。只要第3步的check
没有返回错误,就可以安全地假设这一步将返回代码产生的值。我们还可以假设返回值具有由check
确定的类型。如果check
返回了错误,这可能会崩溃。
依赖关系
~0–9.5MB
~43K SLoC