- Timestamp:
- May 22, 2007, 1:09:15 PM (17 years ago)
- 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 10 10 namespace parser{ 11 11 12 int Parse::open_file(string name){ 12 int Parse::open_file(string name,int level){ 13 13 14 QFile file(QString::fromStdString(name)); 15 QString testname,testname2; 14 16 QString tmppath=QString::fromStdString(name); 15 16 17 QString path=tmppath.left(tmppath.lastIndexOf('/',-1,Qt::CaseSensitive)+1); 17 18 18 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 20 28 if( !file.open( QIODevice::ReadOnly ) ) 21 29 { … … 44 52 #endif 45 53 //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 } 48 58 pos=new morpheo::tools::viewer::bdd::BaseP(); 49 59 //base->addBaseP(pos); 50 parser_pos(root.firstChild() );60 parser_pos(root.firstChild(),level); 51 61 52 62 } 63 64 // delete pos; 65 //delete ctemp; 53 66 return 0; 54 55 56 67 } 57 68 -
trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Parser/src/Parse_parser_pos.cpp
r20 r26 10 10 namespace parser{ 11 11 12 void Parse::parser_pos(QDomNode n){ 12 void Parse::parser_pos(QDomNode n,int level){ 13 string fichier; 13 14 while( !n.isNull() ) 14 15 { … … 25 26 //BaseP 26 27 pos->setComment(e.text().toStdString()); 28 pos->setLevel(level); 29 27 30 } 28 31 if (e.tagName() == "entity" ) 29 32 { 30 33 #ifdef DBUG_PARSE 31 34 cout << "entity" <<endl; 32 35 cout << e.attribute("name","").toStdString() <<endl; 33 36 #endif 34 ent=new morpheo::tools::viewer::bdd::Entity\ 37 38 ent[level]=new morpheo::tools::viewer::bdd::Entity\ 35 39 (e.attribute("name","").toStdString(),\ 40 e.attribute("type","").toStdString(),\ 36 41 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); 40 46 41 47 if((n.nextSiblingElement()).tagName() !="architecture") … … 59 65 e.attribute("localisation","").toStdString()); 60 66 p->setComment(e.text().toStdString()); 61 ent ->addport(p);67 ent[level]->addport(p); 62 68 } 63 69 if (e.tagName() == "architecture" ) … … 66 72 cout << "architecture" <<endl; 67 73 #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]); 70 76 71 77 base->addBaseP(pos,s); 72 78 73 parser_pos(n.firstChild() );79 parser_pos(n.firstChild(),level); 74 80 } 75 81 if (e.tagName() == "component" ) … … 86 92 e.attribute("size_x","").toInt(0,10),\ 87 93 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()); 90 96 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()); 93 101 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 99 110 //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()); 101 112 QList<Port> *sspor= (pt.getEntity())->getPort(); 102 113 for(QList<Port>::iterator it=sspor->begin();it!=sspor->end();++it) 103 ctemp ->addport(new Port(*it));114 ctemp[level]->addport(new Port(*it)); 104 115 105 116 } … … 115 126 e.attribute("port","").toStdString()); 116 127 117 ctemp ->addPortMap(p);128 ctemp[level]->addPortMap(p); 118 129 119 130 }
Note: See TracChangeset
for help on using the changeset viewer.