Each expression is equal to an equation which forms a rule for the calculation of a value.
expression ::=
relation {
and
relation }
| relation {
or
relation }
| relation {
xor
relation }
| relation {
nand
relation }
| relation {
nor
relation }
relation ::= shift_expression [ relational_operator shift_expression ]
shift_expression ::=
simple_expression [ shift_operator simple_expression ]
simple_expression ::=
[ sign ] term { adding_operator term }
term ::=
factor { multiplying_operator factor }
factor ::=
primary [ ** primary ]
|
abs
primary
|
not
primary
primary ::=
name
| literal
| aggregate
| function_call
| qualified_expression
| type_conversion
| allocator
| ( expression )