22    const IR::ArrayIndex *arrayIndex = 
nullptr;
 
   23    const IR::PathExpression *newVariable = 
nullptr;
 
   24    GeneratedVariablesMap *generatedVariables;
 
   25    std::set<cstring> storedMember;
 
   26    std::list<IR::Member *> dependedMembers;
 
   30                  TypeMap *typeMap, GeneratedVariablesMap *generatedVariables)
 
   34          generatedVariables(generatedVariables) {}
 
   35    void postorder(
const IR::ArrayIndex *curArrayIndex) 
override;
 
   38    void addNewVariable();
 
 
   71    GeneratedVariablesMap *generatedVariables;
 
   76                       GeneratedVariablesMap *generatedVariables = 
nullptr)
 
   77        : refMap(refMap), typeMap(typeMap), locals(locals), generatedVariables(generatedVariables) {
 
   78        if (generatedVariables == 
nullptr) {
 
   79            generatedVariables = 
new GeneratedVariablesMap();
 
   82    IR::Node *preorder(IR::IfStatement *ifStatement) 
override;
 
   83    IR::Node *preorder(IR::AssignmentStatement *assignmentStatement) 
override;
 
   84    IR::Node *preorder(IR::BlockStatement *blockStatement) 
override;
 
   85    IR::Node *preorder(IR::MethodCallStatement *methodCallStatement) 
override;
 
   86    IR::Node *preorder(IR::P4Control *control) 
override;
 
   87    IR::Node *preorder(IR::P4Parser *parser) 
override;
 
   88    IR::Node *preorder(IR::SwitchStatement *switchStatement) 
override;
 
   92                                    const IR::Expression *expr);