ast-description-lang 0.2.2

A language to describe your language's AST
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
entry ::= <node_type> <whitespace> "=" <whitespace> <tagged_node_def>
node_type ::= <identifier>
tagged_node_def ::= <node_def> | <node_def> ":" <identifier>
node_def ::= <identifier> |
             "!todo" |
             <identifier><modifier> |
             (<node_def>) |
             "delim[" <identifier> "]<" <node_def> ">" |
             <tagged_node_def> <whitespace> <tagged_node_def> |
             <tagged_node_def> <whitespace> "|" <whitespace> <tagged_node_def>
identifier ::= <word> | <identifier> "_" <word>
word ::= <letter> | <word> <letter>
letter ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" |
           "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" |
           "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" |
           "y" | "z" | "_"
modifier ::= "*" | ",*" | "+" | ",+" | "?" | "~"
whitespace ::= " " | <whitespace><whitespace>