Skip to content
Snippets Groups Projects
Select Git revision
  • d110e79959593a548517654053ae1003ea80cb8b
  • master default protected
  • develop protected
  • feat_remove_attr
  • python2.7
  • python3.8
6 results

lexeme.cpp

Blame
  • user avatar
    ilor authored
    76bd95c7
    History
    lexeme.cpp 1.62 KiB
    /*
        Copyright (C) 2010 Tomasz Śniatowski, Adam Radziszewski
        Part of the libcorpus2 project
    
        This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the Free
    Software Foundation; either version 3 of the License, or (at your option)
    any later version.
    
        This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    or FITNESS FOR A PARTICULAR PURPOSE. 
    
        See the LICENSE and COPYING files for more details.
    */
    
    #include <libcorpus2/lexeme.h>
    
    namespace Corpus2 {
    
    Lexeme::Lexeme()
    	: lemma_(), tag_(), disamb_(false)
    {
    }
    
    Lexeme::Lexeme(const UnicodeString &lemma, const Tag &tag)
    	: lemma_(lemma), tag_(tag), disamb_(false)
    {
    }
    
    Lexeme Lexeme::create(const UnicodeString& lemma, const Tag& tag)
    {
    	return Lexeme(lemma, tag);
    }
    
    Lexeme Lexeme::create_utf8(const std::string& lemma_utf8, const Tag& tag)
    {
    	return Lexeme(UnicodeString::fromUTF8(lemma_utf8), tag);
    }
    
    
    bool Lexeme::is_null() const
    {
    	return lemma().length() == 0 || tag().is_null();
    }
    
    bool Lexeme::operator<(const Lexeme& other) const
    {
    	return lemma_ < other.lemma_
    			|| (lemma_ == other.lemma_
    				&& (tag_ < other.tag_
    					|| (tag_ == other.tag_
    						&& disamb_ && !other.disamb_)));
    }
    
    bool Lexeme::operator==(const Lexeme& other) const
    {
    	return lemma_ == other.lemma_ && tag_ == other.tag_ &&
    			disamb_ == other.disamb_;
    }
    
    bool Lexeme::DisamblessComparator::operator()(const Lexeme& l, const Lexeme& other) const
    {
    	return l.lemma_ == other.lemma_	&& l.tag_ == other.tag_;
    }
    
    } /* end ns Corpus2 */