relation {and
relation} | relation {and then
relation}
| relation {or
relation} | relation {or else
relation}
| relation {xor
relation}
relation ::=
simple_expression [relational_operator simple_expression]
| simple_expression [not
] in
range
| simple_expression [not
] in
type_mark
[unary_adding_operator] term {binary_adding_operator term}
abs
primary | not
primary
numeric_literal | null
| aggregate | string_literal | name
| allocator | function_call | type_conversion
| qualified_expression | (expression)
out
are not allowed as primaries; names of their subcomponents are only allowed in the case of discriminants.