snake/doc/grammar.bnf

12 lines
291 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 | ARRAY
VAR_DECL ::= var assign (LITERAL | ARRAY)
ARRAY ::= opar LITERAL* cpar