Skip to content
Snippets Groups Projects
Select Git revision
  • d5ae117b83a2f36eafc0427d65afb364776af149
  • master default protected
  • vertical_relations
  • lu_without_semantic_frames
  • hierarchy
  • additional-unification-filters
  • v0.1.1
  • v0.1.0
  • v0.0.9
  • v0.0.8
  • v0.0.7
  • v0.0.6
  • v0.0.5
  • v0.0.4
  • v0.0.3
  • v0.0.2
  • v0.0.1
17 results

vite.config.js

Blame
  • plural.cpp 1.75 KiB
    /*
        Copyright (C) 2010 Tomasz Śniatowski, Adam Radziszewski
    
        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 <libpwrutils/plural.h>
    #include <sstream>
    
    namespace PwrNlp {
    
    std::string enpl(int amount, const std::string& sg)
    {
    	if (amount == 1) {
    		return sg;
    	} else {
    		return sg + "s";
    	}
    }
    
    std::string enpln(int amount, const std::string& sg)
    {
    	std::stringstream ss;
    	ss << amount << " " << enpl(amount, sg);
    	return ss.str();
    }
    
    std::string enpl(int amount, const std::string& sg, const std::string& pl)
    {
    	if (amount == 1) {
    		return sg;
    	} else {
    		return pl;
    	}
    }
    
    std::string enpln(int amount, const std::string& sg, const std::string& pl)
    {
    	std::stringstream ss;
    	ss << amount << " " << enpl(amount, sg, pl);
    	return ss.str();
    }
    
    
    std::string plpl(int amount, const std::string& gen0, const std::string& nom1, const std::string& acc2)
    {
    	if (amount == 1) {
    		return nom1;
    	} else {
    		amount %= 100;
    		if (amount > 10 && amount < 20) {
    			return gen0;
    		} else {
    			amount %= 10;
    			if (amount == 2 || amount == 3 || amount == 4) {
    				return acc2;
    			} else {
    				return gen0;
    			}
    		}
    	}
    }
    
    std::string plpln(int amount, const std::string& gen0, const std::string& nom1, const std::string& acc2)
    {
    	std::stringstream ss;
    	ss << amount << " " << plpl(amount, gen0, nom1, acc2);
    	return ss.str();
    }
    
    } /* end namespace PwrNlp */