parseInput | ::= | ( cellProgram ) <EOF> |
cellProgram | ::= | ( stateDescription )+ |
stateDescription | ::= | <STATE> ( <IDENTIFIER> ) <LBRACE> ( <COLOR> ( color ) )? ( <EMITS> ( emissionList ) )? <TRANSITIONS> ( transitionList ) <RBRACE> |
color | ::= | ( ( number ) ( number ) ( number ) ) |
emissionList | ::= | ( ( emission ) ( <COMMA> emission )* ) |
emission | ::= | ( <LPAREN> ( <IDENTIFIER> ) <COMMA> ( number ) <RPAREN> ) |
transitionList | ::= | ( transition <SEMICOLON> )+ |
transition | ::= | ( ( chemicalConditionList )? <TO> ( ( division ) | ( stateChange ) ) ) |
division | ::= | ( <LPAREN> <IDENTIFIER> <COMMA> <IDENTIFIER> <RPAREN> typeCellDivision ) |
stateChange | ::= | ( <LPAREN> <IDENTIFIER> <RPAREN> ) |
chemicalConditionList | ::= | ( ( chemicalCondition ) ( <AND> chemicalCondition )* ) |
chemicalCondition | ::= | ( <LPAREN> number <LTE> <IDENTIFIER> <LTE> number <RPAREN> ) |
typeCellDivision | ::= | ( ( <AXIS> ) | ( <NORMALX> ) | ( <NORMALY> ) ) |
number | ::= | ( <INTEGER_LITERAL> ) |
| | ( <FLOATING_POINT_LITERAL> ) |