1 | -- AST for pgen grammar.
|
2 | -- Contrast with asdl.asdl
|
3 |
|
4 | module pgen
|
5 | {
|
6 | term =
|
7 | String(string s) -- '(', etc.
|
8 | | Name(string n) -- expr_stmt
|
9 | | Group(term t) -- (expr stmt)
|
10 | | Repeat(term t, int times) -- foo+, foo* (';' small_stmt)*
|
11 | | Optional(term t) -- ['=' test]
|
12 | | Seq(term* terms) -- A B
|
13 | | Alt(term* alts) -- '+=' X | '-=' X Y
|
14 | -- | has low precedence
|
15 |
|
16 | -- Not used because we just use a simple dict of string -> term
|
17 | -- Terms are concatenated
|
18 | -- rule = (string lhs, term rhs)
|
19 |
|
20 | -- grammar = (rule* rules)
|
21 | }
|