diff --git a/swig/libcorpustagset.i b/swig/libcorpustagset.i index 1e581d7922f15e720d899a8b899bbdd3243dd297..daae5be9e4ace1bf7198e9195ddf48ce4b15de1b 100644 --- a/swig/libcorpustagset.i +++ b/swig/libcorpustagset.i @@ -16,6 +16,18 @@ namespace Corpus2 { class Tagset { public: + + enum ParseMode { + ParseCheckRequired = 1, /// Check for presence of required attributes + ParseAllowExtra = 2, /// Allow extra attributes + ParseCheckSingular = 4, /// Check tag singularity + + ParseDefault = ParseCheckRequired, /// Default mode + ParseRequiredWithExtra = ParseCheckRequired | ParseAllowExtra, + ParseStrict = ParseCheckRequired | ParseCheckSingular, + ParseLoose = ParseAllowExtra + }; + Tagset(); static Tagset from_data(const char*); @@ -23,8 +35,8 @@ namespace Corpus2 { Tag parse_symbol(const std::string& s) const; /* --------------------------------------------------------------------- */ - std::vector<Tag> parse_tag(const char* c, bool allow_extra) const; - Tag parse_simple_tag(const char* c, bool allow_extra) const; + std::vector<Tag> parse_tag(const char* c, ParseMode m = ParseDefault) const; + Tag parse_simple_tag(const char* c, ParseMode mode = ParseDefault) const; Tag make_ign_tag() const; /* --------------------------------------------------------------------- */