<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<non-zero digit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<integer> ::= <non-zero digit> | <digit> |<non-zero digit> <integer>
<power> ::= ^ <integer> | ^ + <integer> | ^ - <integer>
<decimal separator> ::= , | .
<zero> ::= 0 | 0 <zero>
<decimal> ::= <integer> <decimal separator> <integer> | <integer> <decimal separator> <zero> <integer>
<number> ::= <integer> | <integer> <power> | <decimal> | <decimal> <power> | <numerical fraction> | <mixed number>
<numerical atom> ::= <numerical parentheses> | <numerical parentheses> <numerical atom> | <numerical parentheses> <number> | <numerical parentheses> <number> <numerical atom>
<numerical term> ::= <number> | <numerical atom> | <number> <numerical atom>
<numerical mul div> ::= <numerical term> | <numerical term> * <numerical mul div> | <numerical term> : <numerical mul div>
<numerical sign mul div> :: = + <numerical mul div> | - <numerical mul div>
<numerical non-sign sum sub> ::= <numerical mul div> | <numerical mul div> + <numerical non-sign sum sub> | <numerical mul div> - <numerical non-sign sum sub>
<numerical sum sub> ::= <numerical non-sign sum sub> | <numerical sign mul div> | <numerical sign mul div> + <numerical non-sign sum sub> | <numerical sign mul div> - <numerical non-sign sum sub>
<numerical parentheses> ::= [ <numerical sum sub> ] | ( <numerical sum sub> ) | [ <numerical sum sub> ] <power> | ( <numerical sum sub> ) <power>
<numerical fraction> ::= <numerical sum sub> / <numerical sum sub>
<mixed number> ::= <integer> <numerical fraction>
<letter> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z
<variable> ::= <letter> | <letter> <power>
<atom> ::= <variable> | <parentheses> | <variable> <atom> | <parentheses> <atom> | <parentheses> <number> | <parentheses> <number> <atom>
<term> ::= <number> | <atom> | <number> <atom>
<mul div> ::= <term> | <term> * <mul div> | <term> : <mul div>
<sign mul div> :: = + <mul div> | - <mul div>
<non-sign sum sub> ::= <mul div> | <mul div> + <non-sign sum sub> | <mul div> - <non-sign sum sub>
<sum sub> ::= <non-sign sum sub> | <sign mul div> | <sign mul div> + <non-sign sum sub> | <sign mul div> - <non-sign sum sub>
<parentheses> ::= [ <sum sub> ] | ( <sum sub> ) | [ <sum sub> ] <power> | ( <sum sub> ) <power>
<fraction> ::= <sum sub> / <sum sub>
<equation inequality signs> ::= = | < | > | <= | >=
<equation inequality> ::= <sum sub> <equation inequality signs> <sum sub>
<system> ::= <equation inequality> & <equation inequality> | <equation inequality> & <system>
<expression> ::= <system> | <equation inequality> | <sum sub>