17#ifndef MIDEND_SIMPLIFYSELECTLIST_H_ 
   18#define MIDEND_SIMPLIFYSELECTLIST_H_ 
   20#include "frontends/common/resolveReferences/referenceMap.h" 
   21#include "frontends/p4/typeChecking/typeChecker.h" 
   22#include "frontends/p4/typeMap.h" 
   35    void explode(
const IR::Expression *expression, 
const IR::Type *type,
 
   41        setName(
"SubstituteStructures");
 
   44    const IR::Node *postorder(IR::PathExpression *expression) 
override;
 
 
   71    void flatten(
const IR::Expression *expression, 
unsigned *nestingIndex,
 
   77    const IR::Node *preorder(IR::SelectExpression *expression) 
override;
 
   78    const IR::Node *preorder(IR::P4Control *control)
 override {
 
 
   88        if (!typeChecking) typeChecking = 
new TypeChecking(refMap, typeMap);
 
   89        passes.push_back(typeChecking);
 
   91        passes.push_back(typeChecking);
 
   93        setName(
"SimplifySelectList");
 
 
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
 
Definition simplifySelectList.h:84
 
Definition simplifySelectList.h:32
 
Definition typeChecker.h:55
 
Definition simplifySelectList.h:64
 
Definition pass_manager.h:38
 
Definition applyOptionsPragmas.cpp:24