-
Notifications
You must be signed in to change notification settings - Fork 0
Grammar specification
Rodri Pizarro edited this page Jul 9, 2020
·
6 revisions
- DATA_TYPE:
- 'sample' | 'sound' | 'numeric' | 'argument' | 'group' | 'boolean' | 'buffer' | 'function' | 'string' ;
- EOE:
- ';' ;
- NAME:
- '([a-z]|[A-Z]|_)([a-z]|[A-Z]|_|[0-9])*' ;
- NUMBER:
- '([0-9])*(.([0-9])+)?' ;
- BOOLEAN_VALUE:
- 'true' | 'false' ;
- BOOLEAN_OPERATOR:
- '==' | '<' | '<=' | '>=' | '>' | '!=' | '&' | '|' ;
- BOOLEAN_OPERATION:
- BOOLEAN_VALUE | '(' VALUE BOOLEAN_OPERATOR VALUE ')' | VALUE BOOLEAN_OPERATOR VALUE | NAME | EXECUTION ;
- MATH_OPERATOR:
- '+' | '-' | '/' | '*' ;
- MATH_OPERATION:
- NUMBER | NAME | EXECUTION | MATH_OPERATION MATH_OPERATOR MATH_OPERATION | '(' MATH_OPERATION MATH_OPERATOR MATH_OPERATION ')' ;
- ARRAY:
- VALUE | VALUE ',' ARRAY ;
- EXECUTION:
- NAME '(' ARRAY ')' | NAME '.' EXECUTION ;
- ARRAY:
- VALUE | VALUE ',' ARRAY ;
- STRING:
- '"' * '"' ;
- VALUE:
- NAME | STRING | EXECUTION | 'null' | BOOLEAN_OPERATION | MATH_OPERATION | '(' ARRAY ')' | '[' ARRAY ']' ;
- ASSIGNATION:
- DATA_TYPE NAME '=' VALUE | NAME '=' VALUE ;
- ARGUMENT:
- DATA_TYPE NAME | DATA_TYPE NAME ',' ARGUMENT ;
- DEFINITION:
- DATA_TYPE NAME EOE | DATA_TYPE NAME '(' ARGUMENT ')' '{' PROGRAM 'return' VALUE '}' ;
- FOR_LOOP:
- 'for' '(' NAME '=' VALUE ';' BOOLEAN_OPERATION ';' MATH_OPERATION ')' '{' PROGRAM '}' ;
- IF:
- 'if' '(' BOOLEAN_OPERATION ')' '{' PROGRAM '}' | 'if' '(' BOOLEAN_OPERATION ')' '{' PROGRAM '}' 'else' '{' PROGRAM '}' ;
- INSTRUCTION:
- EOE | ASSIGNATION EOE | EXECUTION EOE | DEFINITION | FOR_LOOP | IF | 'break' EOE ;
- PROGRAM:
- INSTRUCTION | INSTRUCTION PROGRAM ;