20 lines
382 B
BNF
20 lines
382 B
BNF
DOC ::= (VAR_DECL | RULE)*
|
|
RULE ::= TARGET rarrow DEPS BLOCK
|
|
TARGET ::= LITERAL+
|
|
DEPS ::= LITERAL*
|
|
BLOCK ::= obrace CMD_LST cbrace
|
|
CMD_LST ::= (CMD (comma CMD)* comma?)?
|
|
CMD ::= LITERAL*
|
|
LITERAL ::=
|
|
| ident
|
|
| var
|
|
| generic
|
|
| ARRAY
|
|
| INDEX
|
|
|
|
|
|
VAR_DECL ::= var assign (LITERAL | ARRAY | INDEX)
|
|
ARRAY ::= opar LITERAL* cpar
|
|
INDEX ::=
|
|
| (var|ARRAY) osquare ident (assign ident)? csquare
|