ParamBindings_output.cpp

Go to the documentation of this file.
00001 // /!\ ATTENTION:
00002 //
00003 //     THIS IS AN AUTOMATICALLY GENERATED FILE
00004 //     CREATED BY GenOutputTool.
00005 //     DO NOT EDIT THIS FILE DIRECTLY AS IT WILL
00006 //     BE OVERWRITTEN.
00007 //
00008 //     7/4/06, MMS, had to add code for mProcToFormalSetMap and
00009 //     mCallToActualSetMap because the GenOutputTool parser choked on those.
00010 
00011 #include "ParamBindings.hpp"
00012 
00013 namespace OA {
00014 
00015   namespace DataFlow { 
00016 
00017     void ParamBindings::output(IRHandlesIRInterface& ir)
00018     {
00019         sOutBuild->objStart("ParamBindings");
00020 
00021         sOutBuild->mapStart("mCallerToCalleeMap", "CallHandle", "std::map<ProcHandle, std::map<MemRefHandle, SymHandle> > ");
00022         std::map<CallHandle, std::map<ProcHandle, std::map<MemRefHandle, SymHandle> > >::iterator reg_mCallerToCalleeMap_iterator;
00023         for(reg_mCallerToCalleeMap_iterator = mCallerToCalleeMap.begin();
00024             reg_mCallerToCalleeMap_iterator != mCallerToCalleeMap.end();
00025             reg_mCallerToCalleeMap_iterator++)
00026         {
00027             const CallHandle &first = reg_mCallerToCalleeMap_iterator->first;
00028             std::map<ProcHandle, std::map<MemRefHandle, SymHandle> >  &second = reg_mCallerToCalleeMap_iterator->second;
00029             sOutBuild->mapEntryStart();
00030             sOutBuild->mapKeyStart();
00031             sOutBuild->outputIRHandle(first, ir);
00032             sOutBuild->mapKeyEnd();
00033             sOutBuild->mapValueStart();
00034             sOutBuild->mapStart("second", "ProcHandle", "std::map<MemRefHandle, SymHandle> ");
00035             std::map<ProcHandle, std::map<MemRefHandle, SymHandle> >::iterator reg_second_iterator;
00036             for(reg_second_iterator = second.begin();
00037                 reg_second_iterator != second.end();
00038                 reg_second_iterator++)
00039             {
00040                 const ProcHandle &first = reg_second_iterator->first;
00041                 std::map<MemRefHandle, SymHandle>  &second = reg_second_iterator->second;
00042                 sOutBuild->mapEntryStart();
00043                 sOutBuild->mapKeyStart();
00044                 sOutBuild->outputIRHandle(first, ir);
00045                 sOutBuild->mapKeyEnd();
00046                 sOutBuild->mapValueStart();
00047                 sOutBuild->mapStart("second", "MemRefHandle", "SymHandle");
00048                 std::map<MemRefHandle, SymHandle>::iterator reg_second_iterator;
00049                 for(reg_second_iterator = second.begin();
00050                     reg_second_iterator != second.end();
00051                     reg_second_iterator++)
00052                 {
00053                     const MemRefHandle &first = reg_second_iterator->first;
00054                     SymHandle &second = reg_second_iterator->second;
00055                     sOutBuild->mapEntryStart();
00056                     sOutBuild->mapKeyStart();
00057                     sOutBuild->outputIRHandle(first, ir);
00058                     sOutBuild->mapKeyEnd();
00059                     sOutBuild->mapValueStart();
00060                     sOutBuild->outputIRHandle(second, ir);
00061                     sOutBuild->mapValueEnd();
00062                     sOutBuild->mapEntryEnd();
00063                 }
00064                 sOutBuild->mapEnd("second");
00065 
00066                 sOutBuild->mapValueEnd();
00067                 sOutBuild->mapEntryEnd();
00068             }
00069             sOutBuild->mapEnd("second");
00070 
00071             sOutBuild->mapValueEnd();
00072             sOutBuild->mapEntryEnd();
00073         }
00074         sOutBuild->mapEnd("mCallerToCalleeMap");
00075 
00076         sOutBuild->mapStart("mCalleeToCallerMap", "CallHandle", "std::map<SymHandle, MemRefHandle> ");
00077         std::map<CallHandle, std::map<SymHandle, MemRefHandle> >::iterator reg_mCalleeToCallerMap_iterator;
00078         for(reg_mCalleeToCallerMap_iterator = mCalleeToCallerMap.begin();
00079             reg_mCalleeToCallerMap_iterator != mCalleeToCallerMap.end();
00080             reg_mCalleeToCallerMap_iterator++)
00081         {
00082             const CallHandle &first = reg_mCalleeToCallerMap_iterator->first;
00083             std::map<SymHandle, MemRefHandle>  &second = reg_mCalleeToCallerMap_iterator->second;
00084             sOutBuild->mapEntryStart();
00085             sOutBuild->mapKeyStart();
00086             sOutBuild->outputIRHandle(first, ir);
00087             sOutBuild->mapKeyEnd();
00088             sOutBuild->mapValueStart();
00089             sOutBuild->mapStart("second", "SymHandle", "MemRefHandle");
00090             std::map<SymHandle, MemRefHandle>::iterator reg_second_iterator;
00091             for(reg_second_iterator = second.begin();
00092                 reg_second_iterator != second.end();
00093                 reg_second_iterator++)
00094             {
00095                 const SymHandle &first = reg_second_iterator->first;
00096                 MemRefHandle &second = reg_second_iterator->second;
00097                 sOutBuild->mapEntryStart();
00098                 sOutBuild->mapKeyStart();
00099                 sOutBuild->outputIRHandle(first, ir);
00100                 sOutBuild->mapKeyEnd();
00101                 sOutBuild->mapValueStart();
00102                 sOutBuild->outputIRHandle(second, ir);
00103                 sOutBuild->mapValueEnd();
00104                 sOutBuild->mapEntryEnd();
00105             }
00106             sOutBuild->mapEnd("second");
00107 
00108             sOutBuild->mapValueEnd();
00109             sOutBuild->mapEntryEnd();
00110         }
00111         sOutBuild->mapEnd("mCalleeToCallerMap");
00112 
00113         sOutBuild->mapStart("mProcToFormalSetMap", "ProcHandle", "OA_ptr<std::set<SymHandle> >");
00114         std::map<ProcHandle, OA_ptr<std::set<SymHandle> > >::iterator reg_mProcToFormalSetMap_iterator;
00115         for(reg_mProcToFormalSetMap_iterator = mProcToFormalSetMap.begin();
00116             reg_mProcToFormalSetMap_iterator != mProcToFormalSetMap.end();
00117             reg_mProcToFormalSetMap_iterator++)
00118         {
00119             const ProcHandle &first = reg_mProcToFormalSetMap_iterator->first;
00120             OA_ptr<std::set<SymHandle> >  &second = reg_mProcToFormalSetMap_iterator->second;
00121             sOutBuild->mapEntryStart();
00122             sOutBuild->mapKeyStart();
00123             sOutBuild->outputIRHandle(first, ir);
00124             sOutBuild->mapKeyEnd();
00125             sOutBuild->mapValueStart();
00126             sOutBuild->listStart();
00127             std::set<SymHandle>::iterator setIter;
00128             for (setIter=second->begin(); setIter!=second->end(); setIter++) {
00129                 SymHandle sym = *setIter;
00130                 sOutBuild->listItemStart();
00131                 sOutBuild->outputIRHandle(sym,ir);
00132                 sOutBuild->listItemEnd();
00133             }
00134             sOutBuild->listEnd();
00135             sOutBuild->mapValueEnd();
00136             sOutBuild->mapEntryEnd();
00137         }
00138         sOutBuild->mapEnd("mProcToFormalSetMap");
00139 
00140         sOutBuild->mapStart("mCallToActualSetMap", "CallHandle", "OA_ptr<std::set<MemRefHandle> >");
00141         std::map<CallHandle, OA_ptr<std::set<MemRefHandle> > >::iterator reg_mCallToActualSetMap_iterator;
00142         for(reg_mCallToActualSetMap_iterator = mCallToActualSetMap.begin();
00143             reg_mCallToActualSetMap_iterator != mCallToActualSetMap.end();
00144             reg_mCallToActualSetMap_iterator++)
00145         {
00146             const CallHandle &first = reg_mCallToActualSetMap_iterator->first;
00147             OA_ptr<std::set<MemRefHandle> >  &second = reg_mCallToActualSetMap_iterator->second;
00148             sOutBuild->mapEntryStart();
00149             sOutBuild->mapKeyStart();
00150             sOutBuild->outputIRHandle(first, ir);
00151             sOutBuild->mapKeyEnd();
00152             sOutBuild->mapValueStart();
00153             sOutBuild->listStart();
00154             std::set<MemRefHandle>::iterator setIter;
00155             for (setIter=second->begin(); setIter!=second->end(); setIter++) {
00156                 MemRefHandle ref = *setIter;
00157                 sOutBuild->listItemStart();
00158                 sOutBuild->outputIRHandle(ref,ir);
00159                 sOutBuild->listItemEnd();
00160             }
00161             sOutBuild->listEnd();
00162             sOutBuild->mapValueEnd();
00163             sOutBuild->mapEntryEnd();
00164         }
00165         sOutBuild->mapEnd("mCallToActualSetMap");
00166 
00167 
00168     
00169         {
00170           sOutBuild->mapStart("mCallToExprListMap","CallHandle",
00171                               "OA_ptr<std::list<ExprHandle>");
00172           std::map<CallHandle, OA_ptr<std::list<ExprHandle> > >::iterator mapIter;
00173           OA_ptr<ExprHandleIterator> exprIter;
00174           for (mapIter = mCallToExprListMap.begin();
00175                mapIter != mCallToExprListMap.end();
00176                mapIter++) {
00177             const CallHandle &call = mapIter->first;
00178             exprIter = getActualExprHandleIterator(call);
00179             
00180             sOutBuild->mapEntryStart();
00181             sOutBuild->mapKeyStart();
00182             sOutBuild->outputIRHandle(call, ir);
00183             sOutBuild->mapKeyEnd();
00184             sOutBuild->mapValueStart();
00185             sOutBuild->listStart();
00186             if (!exprIter.ptrEqual(0)) {
00187               if (exprIter->isValid()) {
00188                 for (; exprIter->isValid(); ++(*exprIter) ) {
00189                   ExprHandle expr = exprIter->current();
00190                   sOutBuild->listItemStart();
00191                   sOutBuild->outputIRHandle(expr,ir);
00192                   sOutBuild->listItemEnd();
00193                 }
00194               } else {
00195                 sOutBuild->listItemStart();
00196                 sOutBuild->outputString( " expr List is Empty " );
00197                 sOutBuild->listItemEnd();
00198               }
00199             } else {
00200               sOutBuild->listItemStart();
00201               sOutBuild->outputString( " expr List is NULL " );
00202               sOutBuild->listItemEnd();
00203             }
00204             
00205             sOutBuild->listEnd();
00206             sOutBuild->mapValueEnd();
00207             sOutBuild->mapEntryEnd();
00208           }
00209           sOutBuild->mapEnd("mCallToExprListMap");
00210         }
00211 
00212         {
00213           sOutBuild->mapStart("mExprToTreeMap","ExprHandle","OA_ptr<ExprTree>");
00214           std::map<ExprHandle,OA_ptr<ExprTree> >::iterator mapIter;
00215           OA_ptr<ExprTree> eTree;
00216           for (mapIter = mExprToTreeMap.begin();
00217                mapIter != mExprToTreeMap.end();
00218                mapIter++) {
00219             const ExprHandle &expr = mapIter->first;
00220             eTree = mapIter->second;
00221 
00222             sOutBuild->mapEntryStart();
00223             sOutBuild->mapKeyStart();
00224             if (!eTree.ptrEqual(0)) {
00225               sOutBuild->outputIRHandle(expr, ir);
00226             }
00227             sOutBuild->mapKeyEnd();
00228             sOutBuild->mapValueStart();
00229             eTree->output(ir);
00230             sOutBuild->mapValueEnd();
00231             sOutBuild->mapEntryEnd();
00232           }
00233           sOutBuild->mapEnd("mExprToTreeMap");
00234         }
00235 
00236         
00237         {
00238           sOutBuild->mapStart("mCallToFormalToActualMap","CallHandle","SymToExprHandleMap");
00239           std::map<CallHandle,std::map<SymHandle,ExprHandle> >::iterator mapIter;
00240           for (mapIter = mCallToFormalToActualMap.begin();
00241                mapIter != mCallToFormalToActualMap.end();
00242                mapIter++) {
00243             const CallHandle &call = mapIter->first;
00244             sOutBuild->mapEntryStart();
00245               sOutBuild->mapKeyStart();
00246                 sOutBuild->outputIRHandle(call, ir);
00247               sOutBuild->mapKeyEnd();
00248             sOutBuild->mapValueStart();
00249             sOutBuild->mapStart("symToExprMap","SymHandle","ExprHandle");
00250             
00251             std::map<SymHandle,ExprHandle> symToExprMap = mapIter->second;
00252             std::map<SymHandle,ExprHandle>::iterator map2Iter;
00253             for (map2Iter = symToExprMap.begin();
00254                  map2Iter != symToExprMap.end();
00255                  map2Iter++) {
00256               const SymHandle &formal = map2Iter->first;
00257               const ExprHandle &expr = map2Iter->second;
00258 
00259               sOutBuild->mapEntryStart();
00260                 sOutBuild->mapKeyStart();
00261                   sOutBuild->outputIRHandle(formal, ir);
00262                 sOutBuild->mapKeyEnd();
00263                 sOutBuild->mapValueStart();
00264                   sOutBuild->outputIRHandle(expr, ir);
00265                 sOutBuild->mapValueEnd();
00266               sOutBuild->mapEntryEnd();
00267             }
00268             sOutBuild->mapEnd("symToExprMap");
00269             sOutBuild->mapValueEnd();
00270             sOutBuild->mapEntryEnd();
00271           }
00272           sOutBuild->mapEnd("mFormalToActualExprMap");
00273         }
00274 
00275         sOutBuild->objEnd("ParamBindings");
00276     }
00277 
00278         
00279   } // end of DataFlow namespace
00280 } // end of OA namespace