205 个版本

0.6.42 2024 年 8 月 22 日
0.6.40 2024 年 7 月 24 日
0.6.33 2024 年 3 月 21 日
0.6.28 2023 年 12 月 30 日
0.5.13 2022 年 11 月 26 日

#310编程语言

Download history 365/week @ 2024-05-05 60/week @ 2024-05-12 202/week @ 2024-05-19 83/week @ 2024-05-26 80/week @ 2024-06-02 45/week @ 2024-06-09 448/week @ 2024-06-16 46/week @ 2024-06-23 377/week @ 2024-06-30 256/week @ 2024-07-07 52/week @ 2024-07-14 181/week @ 2024-07-21 255/week @ 2024-07-28 352/week @ 2024-08-04 315/week @ 2024-08-11 623/week @ 2024-08-18

1,562 每月下载量
用于 5 crates

MIT/Apache

3.5MB
91K SLoC

Erg 编译器(代号:厘米)

整体结构在 architecture.md(英文) 中有详细描述。其他语言翻译的 architecture.md,请自行查看。

erg_compiler 作为 Python 库使用

erg_compiler 可以通过使用 pyo3/maturin 构建为 Python 库。

示例

import erg_compiler

module = erg_compiler.exec_module(".i = 1")
# foo.er:
# .bar = 1
foo = erg_compiler.__import__("foo")
assert module.i == 1
assert foo.bar == 1
import erg_compiler
erg_parser = erg_compiler.erg_parser
erg_ast = erg_compiler.erg_parser.ast

module = erg_parser.parse(".i = 1")
d = module.pop()
d.sig = erg_ast.VarSignature.new(erg_ast.Identifier.public("j"), None)
module.push(d)
ast = erg_ast.AST.new("test", module)
code = erg_compiler.compile_ast(ast)
exec(code)
assert j == 1

调试安装(使用 venv)

python -m venv .venv
source .venv/bin/activate
maturin develop --features pylib_compiler

发布安装

maturin build -i python --release --features pylib_compiler
pip install <output wheel>

依赖项

~2–11MB
~122K SLoC