diff --git a/libmwereader/CMakeLists.txt b/libmwereader/CMakeLists.txt index 39741797efb50e4af40dad7ebdf48d70f518e2f8..d691f9eeb5cdbefdb2a286927ef539e9781d3d2b 100644 --- a/libmwereader/CMakeLists.txt +++ b/libmwereader/CMakeLists.txt @@ -25,13 +25,15 @@ include_directories(${LibXML++_INCLUDE_DIRS}) link_directories(${LibXML++_LIBRARY_DIRS}) set(LIBS ${LIBS} ${LibXML++_LIBRARIES}) +set(LIBS ${LIBS} corpus2 wccl) + add_library(corpus2_mwereader SHARED mwereader.cpp mwe.cpp mweparser.cpp) -target_link_libraries(corpus2_mwereader corpus2) +target_link_libraries(corpus2_mwereader ${LIBS}) add_executable(mwertest mwertest.cpp mweparser.cpp) -target_link_libraries(mwertest corpus2_mwereader ${LIBS}) +target_link_libraries(mwertest corpus2_mwereader ${LIBS} antlr) set_target_properties(corpus2_mwereader PROPERTIES VERSION "${libmwereader_major}.${libmwereader_minor}" diff --git a/libmwereader/mweparser.cpp b/libmwereader/mweparser.cpp index add215e060f68460248faf1a1e63176be2b091ce..35307601aaac0b13b5d09aacaff4b38eb592f574 100644 --- a/libmwereader/mweparser.cpp +++ b/libmwereader/mweparser.cpp @@ -3,6 +3,7 @@ #include <libpwrutils/foreach.h> #include <libcorpus2/tagsetmanager.h> + #include <libxml++/libxml++.h> #include <libxml2/libxml/parser.h> #include <boost/make_shared.hpp> @@ -11,7 +12,7 @@ namespace Corpus2 { MWEBuilder::MWEBuilder(const Tagset& tagset) - : tagset_(tagset) + : tagset_(tagset), parser_(tagset) { } @@ -21,6 +22,16 @@ namespace Corpus2 { { } + MWEParser::~MWEParser() + { + // TODO: something to do? + } + + void MWEParser::create_mwe() + { + + } + std::string MWEParser::get_attribute(const AttributeList& attributes, const std::string &name) const { @@ -96,9 +107,7 @@ namespace Corpus2 { state_ = MWEGROUP; } else if(state_ == MWE && name == "MWE"){ state_ = INSTANCES; - // TODO: tworzenie jednostki - print_current_mwe(true); - + create_mwe(); } else if(state_ == VAR && name == "var"){ state_ = MWE; variables_[var_name_] = finish_get_text(); diff --git a/libmwereader/mweparser.h b/libmwereader/mweparser.h index 85cde5f40bb06b2068efc3e9419c50546067414d..71f4ce84e549e0ff828c9ade2381f098b68841ed 100644 --- a/libmwereader/mweparser.h +++ b/libmwereader/mweparser.h @@ -5,6 +5,8 @@ #include <libcorpus2/io/sax.h> #include <boost/unordered_map.hpp> +#include <libwccl/parser/Parser.h> + #include "mwe.h" namespace Corpus2 { @@ -13,23 +15,29 @@ class MWEBuilder { public: MWEBuilder(const Tagset& tagset); - typedef boost::unordered_map<std::string, std::string> value_type; + private: + typedef boost::unordered_map<std::string, std::string> value_type; + const Tagset& tagset_; /// str -> ptr to ccl operator value_type main_conditions_; /// str -> ptr to ccl operator value_type head_conditions_; + Wccl::Parser parser_; + }; class MWEParser : public BasicSaxParser { public: MWEParser(MWEIndex &index); + ~MWEParser(); protected: + void create_mwe(); typedef std::map<std::string, std::string> str_map; void on_start_element(const Glib::ustring &name, const AttributeList& attributes);