...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::yap::expr_kind
// In header: <boost/yap/algorithm_fwd.hpp> enum expr_kind { expr_ref = = 0, terminal = = 1, unary_plus = = 2, negate = = 3, dereference = = 4, complement = = 5, address_of = = 6, logical_not = = 7, pre_inc = = 8, pre_dec = = 9, post_inc = = 10, post_dec = = 11, shift_left = = 12, shift_right = = 13, multiplies = = 14, divides = = 15, modulus = = 16, plus = = 17, minus = = 18, less = = 19, greater = = 20, less_equal = = 21, greater_equal = = 22, equal_to = = 23, not_equal_to = = 24, logical_or = = 25, logical_and = = 26, bitwise_and = = 27, bitwise_or = = 28, bitwise_xor = = 29, comma = = 30, mem_ptr = = 31, assign = = 32, shift_left_assign = = 33, shift_right_assign = = 34, multiplies_assign = = 35, divides_assign = = 36, modulus_assign = = 37, plus_assign = = 38, minus_assign = = 39, bitwise_and_assign = = 40, bitwise_or_assign = = 41, bitwise_xor_assign = = 42, subscript = = 43, if_else = = 44, call = = 45 };
The enumeration representing all the kinds of expressions supported in YAP.
expr_ref
const
) reference to another expression. terminal
unary_plus
+
negate
-
dereference
*
complement
~
address_of
&
logical_not
!
pre_inc
++
pre_dec
--
post_inc
++
(int) post_dec
--
(int) shift_left
<<
shift_right
>>
multiplies
*
divides
/
modulus
%
plus
+
minus
-
less
<
greater
>
less_equal
<=
greater_equal
>=
equal_to
==
not_equal_to
!=
logical_or
||
logical_and
&&
bitwise_and
&
bitwise_or
| bitwise_xor
^
comma
, mem_ptr
->*
assign
=
shift_left_assign
<<=
shift_right_assign
>>=
multiplies_assign
*=
divides_assign
/=
modulus_assign
%=
plus_assign
+=
minus_assign
-=
bitwise_and_assign
&=
bitwise_or_assign
|= bitwise_xor_assign
^=
subscript
[] if_else
?: . call
()