commit e8572b2156ea9650427d66c5cd3b4d02418d7079 Author: Tanmai Khanna Date: Sat Jul 13 20:44:15 2019 +0530 Create Data Structures for XML file input diff --git a/src/parse_ref.cc b/src/parse_ref.cc index fb8271d..25a3554 100644 --- a/src/parse_ref.cc +++ b/src/parse_ref.cc @@ -1,14 +1,16 @@ #include #include #include +#include #include #include +#include #include "parse_ref.h" // g++ parse_ref.cc -I /opt/local/include/libxml2/ -L /usr/lib -lxml2 -lz -lpthread -lm -void ParseRef::parseParameterItem (xmlDocPtr doc, xmlNodePtr cur) +void ParseRef::parseParameterItem (xmlDocPtr doc, xmlNodePtr cur, wstring parameter_name) { xmlChar *Attr; cur = cur->xmlChildrenNode; @@ -40,9 +42,10 @@ void ParseRef::parseParameters (xmlDocPtr doc, xmlNodePtr cur) { Attr = xmlGetProp(cur, (const xmlChar *)"n"); printf("ParameterName: %s\n", Attr); + xmlFree(Attr); - parseParameterItem(doc,cur); + parseParameterItem(doc,cur,parameter_name); } cur = cur->next; diff --git a/src/parse_ref.h b/src/parse_ref.h index 9fff7f6..1ae16bc 100644 --- a/src/parse_ref.h +++ b/src/parse_ref.h @@ -4,13 +4,31 @@ #include #include #include +#include #include #include +#include using namespace std; +typedef vector< vector > acceptable_tags; + +struct markable_pattern +{ + vector name; + int head; +}; + +typedef vector< vector > acceptable_patterns; + class ParseRef { +private: + unordered_map parameters; //parameter name mapped to the acceptable tag lists + unordered_map cats; //cat name mapped to acceptable tag lists + + unordered_map markables; //markable name mapped to acceptable pattern lists. Also each pattern has a head == 1 + public: void parseDoc(char *docname); void parseParameters (xmlDocPtr doc, xmlNodePtr cur);