| Home | Libraries | People | FAQ | More

## Type expr_kind

boost::yap::expr_kind

## Synopsis

    // 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 };

## Description

The enumeration representing all the kinds of expressions supported in YAP.

`expr_ref`
  A (possibly `const`) reference to another expression.
`terminal`
  A terminal expression.
`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`
  Analogous to ``?: .
`call`
  ``()