25 {
"binary",
"trivial"},
30 {
"series",
"distributive"},
50 return "distributive";
67 while (is && isalnum(is.peek()))
75 return std::max(i1, i2);
Strictly obey to the syntax.
#define BUILTIN_UNREACHABLE()
std::ostream & operator<<(std::ostream &o, type_t t)
Print a expression type.
identities(ids_t id=deflt)
Trivial, plus associativity of add and product.
Associative plus commutativity, and "idempotence" for add.
Traditional 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.
std::string to_string(identities i)
Wrapper around operator<<.
identities meet(identities i1, identities i2)
A mapping from strings to Values.
static identities ids(const driver &d)
Get the identities of the driver.
std::ostringstream os
The output stream: the corresponding C++ snippet to compile.