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