Z31107

{
    "Z1K1": "Z2",
    "Z2K1": {
        "Z1K1": "Z6",
        "Z6K1": "Z31107"
    },
    "Z2K2": {
        "Z1K1": "Z14",
        "Z14K1": "Z29940",
        "Z14K3": {
            "Z1K1": "Z16",
            "Z16K1": "Z600",
            "Z16K2": "/**\n * taken from https://github.com/Deadman0451/syllabificate/tree/19d38c6fee469911fa5d75d30cdc38f69505078d\n * licence: MIT (Expat)\n */\nfunction Z29940( Z29940K1 ) {\n\tlet syllablesTotal = 0;\n\tlet wordList = Z29940K1.match(/(?:(?:\\w-\\w)|[\\wÀ-ÿ'’])+/g);\n\tif (wordList) {wordList.forEach((word) =\u003E {\n\t\tif (word === \"'\"||word===\"’\") {return;} //bandaid solution.\n\t\tif (word.length \u003C= 2) {syllablesTotal += 1; return;} //quick return on short words\n\t\tlet syllables = 0;\n\t\tif (word.endsWith(\"s'\")||word.endsWith(\"s’\")) {word.slice(-1);} //ending with s'\n\t\tif (word.endsWith(\"s's\")||word.endsWith(\"s’s\")) {word.slice(-1,-3);} //ending with s's\n\t\tconst cEndings = word.match(/(?\u003C=\\w{3})(side|\\wess|(?\u003C!ed)ly|ment|ship|board|ground|(?\u003C![^u]de)ville|port|ful(ly)?|berry|box|nesse?|such|m[ae]n|wom[ae]n|anne)s?$/mi);\n\t\tif (cEndings) {word = word.replace(cEndings[0],\"\\n\" + cEndings[0]);} //Splits into two words and evaluates them as such\n\t\tconst cBeginnings = word.match(/^(ware|side(?![sd]$)|p?re(?!ach|agan|al|au)|[rf]ace(?!([sd]|tte)$)|place[^nsd])/mi);\n\t\tif (cBeginnings) {word = word.replace(cBeginnings[0],\"\"); syllables++;}\n\t\tconst esylp = word.match(/ie($|l|t|rg)|([cb]|tt|pp)le$|phe$|kle(s|$)|[^n]scien|sue|aybe$|[^aeiou]shed|[^lsoai]les$|([^e]r|g)ge$|(gg|ck|yw|etch)ed$|(sc|o)he$|seer|^re[eiuy]/gmi);\n\t\tif (esylp) {syllables += esylp.length;} //E clustered positive\n\t\tconst esylm = word.match(/every|some([^aeiouyr]|$)|[^trb]ere(?!d|$|o|r|t|a[^v]|n|s|x)|[^g]eous|niet/gmi);\n\t\tif (esylm) {syllables -= esylm.length;} //E clustered negative\n\t\tconst isylp = word.match(/rie[^sndfvtl]|(?\u003C=^|[^tcs]|st)ia|siai|[^ct]ious|quie|[lk]ier|settli|[^cn]ien[^d]|[aeio]ing$|dei[tf]|isms?$/gmi);\n\t\tif (isylp) {syllables += isylp.length;} //I clustered positive\n\t\tconst osylp = word.match(/nyo|osm(s$|$)|oinc|ored(?!$)|(^|[^ts])io|oale|[aeiou]yoe|^m[ia]cro([aiouy]|e)|roe(v|$)|ouel|^proa|oolog/gmi);\n\t\tif (osylp) {syllables += osylp.length;} //O clustered positive\n\t\tconst osylm = word.match(/[^f]ore(?!$|[vcaot]|d$|tte)|fore|llio/gmi);\n\t\tif (osylm) {syllables -= osylm.length;} //O clustered negative\n\t\tconst asylp = word.match(/asm(s$|$)|ausea|oa$|anti[aeiou]|raor|intra[ou]|iae|ahe$|dais|(?\u003C!p)ea(l(?!m)|$)|(?\u003C!j)ean|(?\u003C!il)eage/gmi);\n\t\tif (asylp) {syllables += asylp.length;} //A clustered positive\n\t\tconst asylm = word.match(/aste(?!$|ful|s$|r)|[^r]ared$/gmi);\n\t\tif (asylm) {syllables -= asylm.length;} //A clustered negative\n\t\tconst usylp = word.match(/uo[^y]|[^gq]ua(?!r)|uen|[^g]iu|uis(?![aeiou]|se)|ou(et|ille)|eu(ing|er)|uye[dh]|nuine|ucle[aeiuy]/gmi);\n\t\tif (usylp) {syllables += usylp.length;} //U clustered positive\n\t\tconst usylm = word.match(/geous|busi|logu(?!e|i)/gmi);\n\t\tif (usylm) {syllables -= usylm.length;} //U clustered negative\n\t\tconst ysylp = word.match(/[ibcmrluhp]ya|nyac|[^e]yo|[aiou]y[aiou]|[aoruhm]ye(tt|l|n|v|z)|pye|dy[ae]|oye[exu]|lye[nlrs]|olye|aye(k|r|$|u[xr]|da)|saye\\w|iye|wy[ae]|[^aiou]ying/gmi);\n\t\tif (ysylp) {syllables += ysylp.length;} //Y clustered positive\n\t\tconst ysylm = word.match(/arley|key|ney$/gmi);\n\t\tif (ysylm) {syllables -= ysylm.length;}\n\t\tconst essuffix = word.match(/((?\u003C!c[hrl]|sh|[iszxgej]|[niauery]c|do)es$)/gmi);\n\t\tif (essuffix) {syllables--;}//es suffix\n\t\tconst edsuffix = word.match(/([aeiouy][^aeiouyrdt]|[^aeiouy][^laeiouyrdtbm]|ll|bb|ield|[ou]rb)ed$|[^cbda]red$/gmi);\n\t\tif (edsuffix) {syllables--}\n\t\tconst csylp = word.match(/chn[^eai]|mc|thm/gmi);\n\t\tif (csylp) {syllables += csylp.length;} //Consonant clustered negative\n\t\tconst eVowels = word.match(/[aiouy](?![aeiouy])|ee|e(?!$|-|[iua])/gmi);\n\t\tif (eVowels) {syllables += eVowels.length;} //Applicable vowel count (all but e at end of word)\n\t\tif (syllables \u003C= 0) {syllables = 1;} //catch-all\n\t\tif (word.match(/[^aeiou]n['’]t$/i)) {syllables ++;} //ending in n't, but not en't\n\t\tif (word.match(/en['’]t$/i)) {syllables --;} //ending in en't\n\t\tsyllablesTotal += syllables;\n\t});}\n\treturn syllablesTotal;\n}"
        }
    },
    "Z2K3": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11",
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1002",
                "Z11K2": "syllables of English word (string), RegEx JS"
            }
        ]
    },
    "Z2K4": {
        "Z1K1": "Z32",
        "Z32K1": [
            "Z31"
        ]
    },
    "Z2K5": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11"
        ]
    }
}