Ignore:
Timestamp:
May 22, 2007, 1:09:15 PM (17 years ago)
Author:
chou
Message:

Release 3 du viewer:
Etape 1 et 2 du projet complet et à jour.

Location:
trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Parser/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Parser/src/Parse_open_file.cpp

    r20 r26  
    1010namespace parser{
    1111
    12    int Parse::open_file(string name){
     12   int Parse::open_file(string name,int level){
     13
    1314    QFile file(QString::fromStdString(name));
     15    QString testname,testname2;
    1416    QString tmppath=QString::fromStdString(name);
    15 
    1617    QString path=tmppath.left(tmppath.lastIndexOf('/',-1,Qt::CaseSensitive)+1);
    17 
    1818    absolutePath=path.toStdString();
    19 
     19    testname=tmppath.right(tmppath.lastIndexOf('.',-1,Qt::CaseSensitive)-1);
     20    testname2=testname.left(testname.lastIndexOf('.',-1,Qt::CaseSensitive));
     21   
     22    if(tmppath.contains('-') && level==0) //file not top level (first open file)
     23      {
     24        testname2=testname2.left(testname2.lastIndexOf('-',-1,Qt::CaseSensitive));
     25      }
     26   
     27   
    2028     if( !file.open( QIODevice::ReadOnly ) )
    2129       {
     
    4452         #endif
    4553         //BaseP
    46          if(!base)
    47            base=new morpheo::tools::viewer::bdd::BaseV();
     54         if(!base){
     55           base=new morpheo::tools::viewer::bdd::BaseV();
     56           toplevel=testname2.toStdString();
     57         }
    4858         pos=new morpheo::tools::viewer::bdd::BaseP();
    4959         //base->addBaseP(pos);
    50          parser_pos(root.firstChild());   
     60         parser_pos(root.firstChild(),level);   
    5161         
    5262       }
     63
     64     //     delete pos;
     65     //delete ctemp;
    5366     return 0;
    54 
    55 
    5667   }
    5768
  • trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Parser/src/Parse_parser_pos.cpp

    r20 r26  
    1010namespace parser{     
    1111
    12   void Parse::parser_pos(QDomNode n){
     12  void Parse::parser_pos(QDomNode n,int level){
     13    string fichier;
    1314       while( !n.isNull() )
    1415      {
     
    2526                //BaseP
    2627                pos->setComment(e.text().toStdString());
     28                pos->setLevel(level);
     29               
    2730              }
    2831            if (e.tagName() == "entity" )
    2932              {
    30                 #ifdef DBUG_PARSE
     33                #ifdef DBUG_PARSE
    3134                cout << "entity" <<endl;
    3235                cout << e.attribute("name","").toStdString() <<endl;
    3336                #endif
    34                 ent=new morpheo::tools::viewer::bdd::Entity\
     37
     38                ent[level]=new morpheo::tools::viewer::bdd::Entity\
    3539                  (e.attribute("name","").toStdString(),\
     40                   e.attribute("type","").toStdString(),\
    3641                   e.attribute("schema","").toInt(0,10));
    37                 s=e.attribute("type","").toStdString();
    38                 pos->setEntity(ent);
    39                 parser_pos(n.firstChild());
     42                s=e.attribute("name","").toStdString();
     43                pos->setEntity(ent[level]);
     44
     45                parser_pos(n.firstChild(),level);
    4046               
    4147                if((n.nextSiblingElement()).tagName() !="architecture")
     
    5965                       e.attribute("localisation","").toStdString());
    6066                p->setComment(e.text().toStdString());
    61                 ent->addport(p);
     67                ent[level]->addport(p);
    6268              }
    6369            if (e.tagName() == "architecture" )
     
    6672                cout << "architecture" <<endl;
    6773                #endif
    68                 arch=new morpheo::tools::viewer::bdd::Architecture();
    69                 pos->setArchitecture(arch);
     74                arch[level]=new morpheo::tools::viewer::bdd::Architecture();
     75                pos->setArchitecture(arch[level]);
    7076               
    7177                base->addBaseP(pos,s);
    7278
    73                 parser_pos(n.firstChild());   
     79                parser_pos(n.firstChild(),level);   
    7480              }
    7581            if (e.tagName() == "component" )
     
    8692                            e.attribute("size_x","").toInt(0,10),\
    8793                            e.attribute("size_y","").toInt(0,10));
    88                 arch->addComponent(comp, e.attribute("type","").toStdString());
    89                 ctemp=comp;
     94                ctemp[level]=comp;
     95                arch[level]->addComponent(ctemp[level], e.attribute("name","").toStdString());
    9096               
    91                 string fichier=absolutePath;
    92                 fichier.append(e.attribute("type","").toStdString());
     97                fichier=absolutePath;
     98                fichier.append(ent[level]->getName());
     99                fichier.append("-");
     100                fichier.append((e.attribute("type","").toLower()).toStdString());
    93101                fichier.append(".pos");
    94                 #ifdef DBUG_PARSE
    95                 cout << fichier <<endl;
    96                 #endif
    97                 open_file(fichier);
    98                 parser_pos(n.firstChild());   
     102          #ifdef DBUG_PARSE
     103                cout << fichier <<endl;
     104          #endif
     105                if(open_file(fichier,level+1)==-1)
     106                  exit(1);
     107               
     108                parser_pos(n.firstChild(),level);   
     109               
    99110                //ajout ptr Port du sous composant
    100                 BaseP pt=base->get_BasePos(e.attribute("type","").toStdString());
     111                BaseP pt=base->get_BasePos((e.attribute("type","").toLower()).toStdString());
    101112                QList<Port> *sspor= (pt.getEntity())->getPort();
    102113                for(QList<Port>::iterator it=sspor->begin();it!=sspor->end();++it)
    103                   ctemp->addport(new Port(*it));
     114                  ctemp[level]->addport(new Port(*it));
    104115               
    105116              }
     
    115126                          e.attribute("port","").toStdString());
    116127               
    117                 ctemp->addPortMap(p);
     128                ctemp[level]->addPortMap(p);
    118129               
    119130              }
Note: See TracChangeset for help on using the changeset viewer.