29 #include "arcslibmakerparser.h"
31 #include <QTextStream>
35 ARCSLibMakerParser::ARCSLibMakerParser()
40 void ARCSLibMakerParser::clear()
50 bool ARCSLibMakerParser::parseFile()
52 if (fileName.isEmpty())
56 if (!file.open(QIODevice::ReadOnly))
64 if (!doc.setContent(&file, &error, &line, &col))
66 std::cerr <<
"[ARCS libmaker] Error in parsing xml file" << std::endl;
67 std::cerr <<
"" <<
"[" << line <<
"," << col <<
"] "
68 << qPrintable(error) << std::endl;
83 bool ARCSLibMakerParser::writeFile()
85 if (fileName.isEmpty())
90 if (data.open(QFile::WriteOnly | QFile::Truncate))
92 QTextStream out(&data);
101 void ARCSLibMakerParser::parseSection(QString secname,QStringList & strlist)
106 QDomNodeList lst = doc.elementsByTagName(secname);
108 for (
unsigned int i = 0; i < lst.length(); i++)
110 QDomNode node = lst.item(i).attributes().namedItem(
"name");
112 strlist << node.nodeValue();
117 void ARCSLibMakerParser::parseTypes()
122 QDomNodeList lst = doc.elementsByTagName(
"type");
124 for (
unsigned int i = 0; i < lst.length(); i++)
126 QDomNode nodeName = lst.item(i).attributes().namedItem(
"name");
127 QDomNode nodeWrapper = lst.item(i).attributes().namedItem(
"wrapper");
128 if (nodeName.isAttr() && nodeWrapper.isAttr())
130 types <<
ARCSTypeWrapper(nodeName.nodeValue(), nodeWrapper.nodeValue()) ;
131 std::cout << qPrintable(nodeName.nodeValue()) <<
", " << qPrintable(nodeName.nodeValue()) << std::endl;
136 std::cout << qPrintable(nodeName.nodeValue()) << std::endl;