#yggdrasil #编译器 #语法 #名称 #命令行 #元素 #

nightly app ypm

Yggdrasil 命令行编译器

1 个不稳定版本

0.0.0 2022年11月10日

#11#yggdrasil

MPL-2.0 许可证

415KB
9K SLoC

Yggdrasil 生成语法

功能

语言教程

  • 基本语法
名称 描述
a? 可选元素
a* 零个或多个元素
a+ 一个或多个元素
a b 元素序列
a|b 分支的备选方案
名称:e 用给定的名称标记元素
#名称 用给定的名称标记分支
^规则 注释元素
@() 宏调用
ANY 任何Unicode字符
IGNORED 所有标记为忽略的规则
  • classunion

相同的语法 A | Bclassunion 上下文中的表现不同。

// expand `A | B` as class
class TestA {
    | tag_a:A 
    | tag_b:B
}
// expand `A | B` as union
union TestB {
    | A #BranchA
    | B #BranchB
}
struct TestA {
    tag_a: A,
    tag_b: B,
}

enum TestB {
    BranchA(A),
    BranchB(B),
}
  • 示例

您可以从 project-yggdrasil 中了解更多信息。

工具

依赖项

~6–16MB
~225K SLoC