Syntax rules :
- two words are separated by a space, a carriage return, a new line or any of the following characters:
'[', ']', '{', '}', '?', '!', ',', '.'.
- a free variable starts with '$'
and end with any of the quoted characters above.
- a bound variable starts with '#' and end the same way.
- a variable must contain at least one character.
- the characters ';', '&',
'(' and ')' won't be considered as part of the variable name,
like any other word-ending characters quoted previously.
- the bound variables that have a numerical name (like #0)
are considered as unknowns.
- make sure that the words are in the good order and of course with the good spelling.
- two different expressions are separated by ';'.
- the text between two parentheses is a sub-expression, and has to respect these rules as well.
- the opening and closing parentheses are optional if at the beginning or at the end of the expression.
- the argument expression are surrounded by parentheses,
and they are separated from one another by the character '&'.
Ex : ((#0 and #1) are unknowns)(
$freevar & #boundvar )