Newer
Older
#ifndef LIBMWEREADER_MWEPARSER_H
#define LIBMWEREADER_MWEPARSER_H
#include <libcorpus2/io/reader.h>
#include <libcorpus2/io/sax.h>
namespace Corpus2 {
typedef std::map<std::string, std::string> str_map;
class MWEParser : public BasicSaxParser
{
public:
MWEParser();
protected:
void on_start_element(const Glib::ustring &name,
const AttributeList& attributes);
void on_end_element(const Glib::ustring &name);
std::string get_attribute(const AttributeList& attributes,
const std::string &name) const;
void parse_mwegroup_attributes(const AttributeList& attributes);
/// tagset name used in wccl operators
std::string tagset_;
enum States{NONE, // not started
UNITSDESC, // in <units_description
MWEGROUP, // in <mwegroup>
CONDITION, // in <condition>
INSTANCES, // <instances>
MWE, // start of MWE, <MWE>
VAR, // <var> of <MWE>
HEAD, // <head> condition of MWE
str_map variables_; // name -> val
std::string wccl_operator_;
std::string mwe_base_;
std::string var_name_;
std::string group_name_;
std::string group_type_;
std::string group_class_;
std::string head_cond_;
};
} // ns Corpus2
#endif // LIBMWEREADER_MWEPARSER_H