P4C
The P4 Compiler
 
Loading...
Searching...
No Matches
P4::UnnestSelectList Class Reference
Inheritance diagram for P4::UnnestSelectList:

Public Member Functions

const IR::Node * preorder (IR::P4Control *control) override
 
const IR::Node * preorder (IR::SelectExpression *expression) override
 

Detailed Description

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