#include <string>
#include <unordered_set>
#include "stopwords/italian_stopwords.h"

using namespace std;

namespace texty { namespace stopwords {

const unordered_set<string> stopwordSet {
  "ad",
  "al",
  "allo",
  "ai",
  "agli",
  "all",
  "agl",
  "alla",
  "alle",
  "con",
  "col",
  "coi",
  "da",
  "dal",
  "dallo",
  "dai",
  "dagli",
  "dall",
  "dagl",
  "dalla",
  "dalle",
  "di",
  "del",
  "dello",
  "dei",
  "degli",
  "dell",
  "degl",
  "della",
  "delle",
  "in",
  "nel",
  "nello",
  "nei",
  "negli",
  "nell",
  "negl",
  "nella",
  "nelle",
  "su",
  "sul",
  "sullo",
  "sui",
  "sugli",
  "sull",
  "sugl",
  "sulla",
  "sulle",
  "per",
  "tra",
  "contro",
  "io",
  "tu",
  "lui",
  "lei",
  "noi",
  "voi",
  "loro",
  "mio",
  "mia",
  "miei",
  "mie",
  "tuo",
  "tua",
  "tuoi",
  "tue",
  "suo",
  "sua",
  "suoi",
  "sue",
  "nostro",
  "nostra",
  "nostri",
  "nostre",
  "vostro",
  "vostra",
  "vostri",
  "vostre",
  "mi",
  "ti",
  "ci",
  "vi",
  "lo",
  "la",
  "li",
  "le",
  "gli",
  "ne",
  "il",
  "un",
  "uno",
  "una",
  "ma",
  "ed",
  "se",
  "perch\u00e9",
  "anche",
  "come",
  "dov",
  "dove",
  "che",
  "chi",
  "cui",
  "non",
  "pi\u00f9",
  "quale",
  "quanto",
  "quanti",
  "quanta",
  "quante",
  "quello",
  "quelli",
  "quella",
  "quelle",
  "questo",
  "questi",
  "questa",
  "queste",
  "si",
  "tutto",
  "tutti",
  "a",
  "c",
  "e",
  "i",
  "l",
  "o",
  "ho",
  "hai",
  "ha",
  "abbiamo",
  "avete",
  "hanno",
  "abbia",
  "abbiate",
  "abbiano",
  "avr\u00f2",
  "avrai",
  "avr\u00e0",
  "avremo",
  "avrete",
  "avranno",
  "avrei",
  "avresti",
  "avrebbe",
  "avremmo",
  "avreste",
  "avrebbero",
  "avevo",
  "avevi",
  "aveva",
  "avevamo",
  "avevate",
  "avevano",
  "ebbi",
  "avesti",
  "ebbe",
  "avemmo",
  "aveste",
  "ebbero",
  "avessi",
  "avesse",
  "avessimo",
  "avessero",
  "avendo",
  "avuto",
  "avuta",
  "avuti",
  "avute",
  "sono",
  "sei",
  "\u00e8",
  "siamo",
  "siete",
  "sia",
  "siate",
  "siano",
  "sar\u00f2",
  "sarai",
  "sar\u00e0",
  "saremo",
  "sarete",
  "saranno",
  "sarei",
  "saresti",
  "sarebbe",
  "saremmo",
  "sareste",
  "sarebbero",
  "ero",
  "eri",
  "era",
  "eravamo",
  "eravate",
  "erano",
  "fui",
  "fosti",
  "fu",
  "fummo",
  "foste",
  "furono",
  "fossi",
  "fosse",
  "fossimo",
  "fossero",
  "essendo",
  "faccio",
  "fai",
  "facciamo",
  "fanno",
  "faccia",
  "facciate",
  "facciano",
  "far\u00f2",
  "farai",
  "far\u00e0",
  "faremo",
  "farete",
  "faranno",
  "farei",
  "faresti",
  "farebbe",
  "faremmo",
  "fareste",
  "farebbero",
  "facevo",
  "facevi",
  "faceva",
  "facevamo",
  "facevate",
  "facevano",
  "feci",
  "facesti",
  "fece",
  "facemmo",
  "faceste",
  "fecero",
  "facessi",
  "facesse",
  "facessimo",
  "facessero",
  "facendo",
  "sto",
  "stai",
  "sta",
  "stiamo",
  "stanno",
  "stia",
  "stiate",
  "stiano",
  "star\u00f2",
  "starai",
  "star\u00e0",
  "staremo",
  "starete",
  "staranno",
  "starei",
  "staresti",
  "starebbe",
  "staremmo",
  "stareste",
  "starebbero",
  "stavo",
  "stavi",
  "stava",
  "stavamo",
  "stavate",
  "stavano",
  "stetti",
  "stesti",
  "stette",
  "stemmo",
  "steste",
  "stettero",
  "stessi",
  "stesse",
  "stessimo",
  "stessero",
  "stando"
};

bool isItalianStopword(const string &word) {
  return stopwordSet.count(word) > 0;
}

}} // texty::stopwords
