| declarations | ::= | declarations declaration |
| | | declaration | |
| declaration | ::= | typExp ident (= exp) ?; |
| | | location typExp ident(args ?); | |
| | | typExp ident(args ?) {stmt +} | |
| | | type ident { (typExp ident;) +}; | |
| location | ::= | remote |
| | | local | |
| args | ::= | arg (, arg) * |
| arg | ::= | typExp ident |