
Public Member Functions | |
| const IR::Node * | preorder (IR::P4Control *control) override |
| const IR::Node * | preorder (IR::SelectExpression *expression) override |
Remove nested ListExpressions; this must be run after tuples have been eliminated This is complicated because select labels have to be flattened too, and a default expression in a select label can match a whole list. For example, consider this example: transition select(a, b, {c, d}) { default: accept; (0, 0, default): accept; (0, 0, {default, default}): accept; } This is converted to: transition select(a, b, c, d) { default: accept; (0, 0, default, default): accept; (0, 0, default, default): accept; }