49 bool expandHeader =
true;
51 struct ExpansionInfo {
52 const IR::Statement *statement;
54 const IR::Type *origType;
55 const IR::PathExpression *tmp;
58 void expand(
const IR::PathExpression *bitvector,
const IR::Type *type,
unsigned *offset,
60 ExpansionInfo *convertLookahead(
const IR::MethodCallExpression *expression);
64 : refMap(refMap), typeMap(typeMap), expandHeader(expandHeader) {
67 setName(
"DoExpandLookahead");
69 const IR::Node *postorder(IR::AssignmentStatement *statement)
override;
70 const IR::Node *postorder(IR::MethodCallStatement *statement)
override;
71 const IR::Node *preorder(IR::P4Control *control)
override {
75 const IR::Node *preorder(IR::P4Parser *parser)
override {
79 const IR::Node *postorder(IR::P4Parser *parser)
override {
80 if (!newDecls.empty()) parser->parserLocals.append(newDecls);
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24