Binop
Fixtype of binary operators [C:6.5.5-14] [C:6.5.16].
This is a tagged union type, introduced by fty::deftagsum.
Member Tags → Types
- :mul → binop-mul
- :div → binop-div
- :rem → binop-rem
- :add → binop-add
- :sub → binop-sub
- :shl → binop-shl
- :shr → binop-shr
- :lt → binop-lt
- :gt → binop-gt
- :le → binop-le
- :ge → binop-ge
- :eq → binop-eq
- :ne → binop-ne
- :bitand → binop-bitand
- :bitxor → binop-bitxor
- :bitior → binop-bitior
- :logand → binop-logand
- :logor → binop-logor
- :asg → binop-asg
- :asg-mul → binop-asg-mul
- :asg-div → binop-asg-div
- :asg-rem → binop-asg-rem
- :asg-add → binop-asg-add
- :asg-sub → binop-asg-sub
- :asg-shl → binop-asg-shl
- :asg-shr → binop-asg-shr
- :asg-and → binop-asg-and
- :asg-xor → binop-asg-xor
- :asg-ior → binop-asg-ior
We capture all of them.
The C grammar does not have a nonterminal for binary operators
(it has one for unary operators [C:6.5.3]),
but the grammar rules for binary operations implicitly describe them.
These are
multiplication,
division,
remainder,
addition,
subtraction,
shift (left and right),
relations (less than (or equal to) and greater than (or equal to)),
equality (and non-equality),
bitwise conjunction,
bitwise exclusive disjunction,
bitwise inclusive disjunction,
logical conjunction,
logical disjunction,
assignment (simple and compound).
Subtopics
- Binopp
- Recognizer for binop structures.
- Binop-fix
- Fixing function for binop structures.
- Binop-case
- Case macro for the different kinds of binop structures.
- Binop-kind
- Get the kind (tag) of a binop structure.
- Binop-equiv
- Basic equivalence relation for binop structures.
- Binop-add
- Binop-sub
- Binop-shr
- Binop-shl
- Binop-rem
- Binop-ne
- Binop-mul
- Binop-lt
- Binop-logor
- Binop-logand
- Binop-le
- Binop-gt
- Binop-ge
- Binop-eq
- Binop-div
- Binop-bitxor
- Binop-bitior
- Binop-bitand
- Binop-asg-xor
- Binop-asg-sub
- Binop-asg-shr
- Binop-asg-shl
- Binop-asg-rem
- Binop-asg-mul
- Binop-asg-ior
- Binop-asg-div
- Binop-asg-and
- Binop-asg-add
- Binop-asg