1 个不稳定版本
0.0.0 | 2022年11月10日 |
---|
#11 在 #yggdrasil
415KB
9K SLoC
Yggdrasil 生成语法
功能
语言教程
- 基本语法
名称 | 描述 |
---|---|
a? |
可选元素 |
a* |
零个或多个元素 |
a+ |
一个或多个元素 |
a b |
元素序列 |
a|b |
分支的备选方案 |
名称:e |
用给定的名称标记元素 |
#名称 |
用给定的名称标记分支 |
^规则 |
注释元素 |
@宏() |
宏调用 |
ANY |
任何Unicode字符 |
IGNORED |
所有标记为忽略的规则 |
class
与union
相同的语法 A | B
在 class
和 union
上下文中的表现不同。
// 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