|
| 1 | +group_list ::= group_declaration | group_declaration group_list |
| 2 | +group_declaration ::= GROUP IDENTIFIER BEGIN_TOKEN task_list END_TOKEN |
| 3 | +task_list ::= task_declaration | task_list |
| 4 | +task_declaration ::= TASK IDENTIFIER BEGIN_TOKEN data_section freq_section preq_section exec_section END_TOKEN |
| 5 | +data_section ::= DATA BEGIN_TOKEN variable_declaration_list END_TOKEN |
| 6 | +variable_declaration_list ::= variable_declaration | variable_declaration variable_declaration_list |
| 7 | +variable_declaration ::= identifier_list COLON type_definition ASSIGN_OP literal_value EOL |
| 8 | +literal_value ::= INTEGER | FLOAT |
| 9 | +type_definition ::= TYPE_INTEGER | TYPE_FLOAT |
| 10 | +freq_section ::= FREQ COLON time_declaration EOL |
| 11 | +time_declaration :: = INTEGER "s"|"m"|"h" |
| 12 | +preq_section ::= PREQ BEGIN_TOKEN prerequisite_declaration_list END_TOKEN |
| 13 | +prerequisite_declaration_list ::= boolean_expression | boolean_expression prerequisite_declaration_list |
| 14 | +boolean_expression ::= expression | expression boolean_operator expression EOL |
| 15 | +boolean_operator ::= GT | LT | GE | LE | EQ | NE |
| 16 | +exec_section ::= BEGIN_TOKEN statement_list END_TOKEN |
| 17 | +statement_list ::= statement | statement statement_list |
| 18 | +statement ::= assignment | expression | instrument_queue_push |
| 19 | +assignment ::= IDENTIFIER ASSIGN_OP expression | instrument_property ASSIGN_OP expression |
| 20 | +expression ::= factor | expression ADD factor | expression SUB factor | function_call | instrument_property | instrument_queue_pull |
| 21 | +factor ::= term | factor MUL term | factor DIV term |
| 22 | +term ::= INTEGER | FLOAT | IDENTIFIER | OP expression CP |
| 23 | +function_call ::= IDENTIFIER OP expression CP |
| 24 | +instrument_property ::= IDENTIFIER DOT IDENTIFIER |
| 25 | +instrument_queue_pull ::= IDENTIFIER DOT IDENTIFIER DOT PULL OP expression CP |
| 26 | +instrument_queue_push ::= IDENTIFIER DOT IDENTIFIER DOT PUSH OP expression CP |
0 commit comments