29 typedef std::map<const SgNode*,SgNode*> copiedNodeMapType;
38 copiedNodeMapType copiedNodeMap;
43 typedef copiedNodeMapType::iterator copiedNodeMapTypeIterator;
54 int get_depth() {
return depth; }
55 void incrementDepth() { depth++; }
56 void decrementDepth() { depth--; }
57 copiedNodeMapType & get_copiedNodeMap() {
return copiedNodeMap; }
60 void clearState() { depth = 0; copiedNodeMap.clear(); }
63 void insertCopiedNodePair(
const SgNode* key,
SgNode* value );
102 std::vector<SgNode *> origList;
103 std::vector<SgNode *> copyList;
105 SgCapturingCopy( std::vector<SgNode *> origList,
const CopyType &base = CopyType() )
107 : CopyType(base), origList(origList), copyList(origList.size())
112 SgNode *newNode = CopyType::copyAst(n);
113 int listSize = origList.size();
114 for (
int i = 0; i < listSize; i++)
116 if (origList[i] == n)
118 copyList[i] = newNode;
123 const std::vector<SgNode *> &get_copyList()