22 {
"binary",
"trivial"},
27 {
"series",
"distributive"},
49 return "distributive";
66 while (is && isalnum(is.peek()))
74 return std::max(i1, i2);
Associative plus commutativity, and "idempotence" for add.
Linear plus distribution. Used for series identities.
Strictly obey to the syntax.
An expressionset can implement several different sets of identities on expressions.
identities meet(identities i1, identities i2)
More restricted of these identities (min).
Trivial, plus associativity of add and product.
std::ostringstream os
The output stream: the corresponding C++ snippet to compile.
Distributive plus optimizations.
std::string to_string(identities i)
Wrapper around operator<<.
A mapping from strings to Values.
std::ostream & operator<<(std::ostream &o, type_t t)
Print a expression type.
std::istream & operator>>(std::istream &is, identities &i)
Read from string form.
identities(ids_t id=deflt)
#define BUILTIN_UNREACHABLE()