As with any programming language we need to define a list of operators and how they behave. After years of C/C++ programming I simply copy the list from that language as a start. This first list show mathematical operators.
| Operator | Description |
| + | Addition: a+b |
| – | Subtraction: a-b |
| / | Divide. a/b |
| * | Multiply: a*b |
| +a | Positive signed variable/number |
| -a | Negative signed variable/number |
| % | Modulo: a%b |
| — | Decrement with 1: –a or a– |
| ++ | Increment with 1: ++a or a++ |
| ~ | Binary invert: ~a |
| | | Binary OR |
| & | Binary AND |
| ^ | Binary XOR |
| >> | Bit rotate right |
| << | Bit rotate left |
This next list show boolean operators that only is valid for boolean expressions.
| Operator | Description |
| == | Equal |
| != | Not equal |
| > | Greater than |
| < | Less Than |
| >= | Greater than or equal |
| <= | Less than or equal |
| ! | NOT |
| || | Logical OR |
| && | Logical AND |
The trick with this is that I might have 3 operators related to a variable – one pre operator like a sign or ++, — etc, a post operator like ++ or — and a main operator. This needs to be handled by my expression parser.