/*

Ithkuil Word Builder version 1 by redditor /user/Joined-to-say

I do not own, or am in any way affiliated with the Ithkuil language created by John Quijada

[How program works]

Tables of phonetic morphology were copied and pasted as they appeared on www.ithkuil.net and edited into arrays of strings

The grammatical categories are stored in the array m[][]

The select() method takes a string array and prints the contents, asking the user which to choose with an integer, which is returned

This method selects both the categories to inflect, and the specific member of that category

array s[] contains selected integers for each category, note s[i]==0 is default and equivalent to m[i][1], s[i]==1 for m[i][2] etc

When 0 is selected for category, the word is assembled as the string 'output' using the non-default selected categories and phonetic arrays

Certain categories can be expressed in multiple ways (see below) e.g. Illocution in slots IX, V, III or A

Currently, these categories will only be shown in one slot, with other options printed later

Command prompt doesn't always display Unicode characters, so printtotxt() sends everything to a txt file named 'ithkuiloutput'

Due to current limitations:

Only grammatical abbreviations (e.g. OBL) are shown, they don't tell you what they mean

Roots, incorporated roots and suffixes cannot be chosen for now, will be -ph-, -kš- and -x respectively

Only one suffix can be selected at a time

Secondary aspect cannot be selected, but Vs is shown

Personal Reference Adjuncts have not been attempted

ň (XSAMPA n_d) shown as n^

č (t_S) shown as c^

Consonant + superscript "h" (e.g. in "tree" apʰal) shown as regular "h" (Note "xh" and "dh" are unchanged)

High tone shown as dash "-"

Vc/CiVi diphthong interaction (e.g. u+h -> hw, i+y -> ihw) not implemented

SLOT TABLES:

A, B, C, D, E, F, G, H

(((Cl),Ve),Cv),Vm),Cs,(Vs,(Cb))[tone]

Cl Valence

Ve Level

Cv Phase+Sanction+Illocution

Vm Modality

Cs Aspect

Vs Aspect

Cb Bias

Tone Extension

I, II, III, IV, V,VI, VII,VIII, IX, X, XI, XII,XIII, XIV, XV

(((Cv),VL),Cg/Cs),Vr,(’Cx/Cv,Vp/VL),Cr,Vc,(Ci+Vi),Ca,(VxC),(Vf,(’Cb)),[tone],[stress]

Cv "Phase+Sanction(+ Illocution)"

Vl Valence,

Cg "Validation OR Cs Aspect(+ Mood)",

Vr "Pattern +Stem +Function",

Cx"Incorp.Root OR Cv Phase + Sanction (+ Illocution)",

Vp "Pattern + Stem + Designation of Incorp. Root OR Vl Valence",

Cr Root,

Vc Case,

CiVi "Illocution +Mood",

"Essence +Extension +Perspective +Configuration + Affiliation",

VxC "Deriv. Suffix",

Vf Context + Format,

Cb Bias,

Tone Version,

Stress "Designation + Relation"

*/

import java.util.* ;

import java.io.* ;

class ith {

public static void main ( String [ ] args ) throws IOException {

String [ ] [ ] m = { //m for morphology

{ "Category" } ,

{ "Essence" , "NRM" , "RPV" } ,

{ "Extension" , "DEL" , "PRX" , "ICP" , "TRM" , "DPL" , "GRA" } ,

{ "Perspective" , "M" , "U" , "N" , "A" } ,

{ "Affiliation" , "CSL" , "ASO" , "VAR" , "COA" } ,

{ "Configuration" , "UNI" , "DPX" , "DCT" , "AGG" , "SEG" , "CPN" , "COH" , "CST" , "MLT" } , //5

{ "Case" , "OBL" , "IND" , "ABS" , "ERG" , "EFF" , "AFF" , "DAT" , "INS" , "ACT" ,

"DER" , "SIT" , "POS" , "PRP" , "GEN" , "ATT" , "PDC" , "ITP" , "OGN" ,

"PAR" , "CRS" , "CPS" , "PRD" , "MED" , "APL" , "PUR" , "CSD" , "ESS" ,

"ASI" , "FUN" , "TFM" , "REF" , "CLA" , "CNV" , "IDP" , "BEN" , "TSP" ,

"CMM" , "COM" , "CNJ" , "UTL" , "ABE" , "CVS" , "COR" , "DEP" , "PVS" ,

"PTL" , "CON" , "EXC" , "AVR" , "CMP" , "SML" , "ASS" , "CNR" , "ACS" ,

"DFF" , "PER" , "PRO" , "PCV" , "PCR" , "ELP" , "ALP" , "INP" , "EPS" ,

"PLM" , "LIM" , "LOC" , "ORI" , "PSV" , "ALL" , "ABL" , "NAV" , "VOC" } ,

{ "Function" , "STA" , "DYN" , "MNF" , "DSC" } ,

{ "Context" , "EXS" , "FNC" , "RPS" , "AMG" } ,

{ "Mood" , "FAC" , "SUB" , "ASM" , "SPC" , "COU" , "HYP" , "IPL" , "ASC" } ,

{ "Illocution" , "ASR" , "DIR" , "IRG" , "ADM" , "HOR" , "DEC" } , //10

{ "Phase" , "CTX" , "PCT" , "ITR" , "REP" , "ITM" , "RCT" , "FRE" , "FRG" , "FLC" } ,

{ "Sanction" , "PPS" , "EPI" , "ALG" , "IPU" , "RFU" , "REB" , "THR" , "EXV" , "AXM" } ,

{ "Valence" , "MNO" , "PRL" , "CRO" , "RCP" , "CPL" , "NNR" , "DUP" ,

"DEM" , "RES" , "IMT" , "CNG" , "PTI" , "IDC" , "MUT" } ,

{ "Version" , "PRC" , "CPT" , "INE" , "INC" , "PST" , "EFC" } ,

{ "Validation" , "CNF" , "AFM" , "RPT" , "INF" , "ITU" , "PSM" , "PSM2" , //15

"PPT" , "PPT2" , "CJT" , "DUB" , "TEN" , "PUT" , "IPB" } ,

{ "Aspect" , "RTR" , "PRS" , "HAB" , "PRG" , "IMM" , "PCS" , "REG" , "EXP" , "RSM" , "CSS" , "RCS" , "PAU" , "RGR" , "PCL" , "CNT" ,

"ICS" , "PMP" , "CLM" , "PTC" , "TMP" , "MTV" , "CSQ" , "SQN" , "EPD" , "DCL" , "CCL" , "CUL" , "IMD" , "TRD" , "TNS" , "ITC" , "CSM" } ,

{ "Bias" , "NOB" , "ASU" , "ASU+" , "HPB" , "HPB+" , "COI" , "COI+" , "ACP" , "ACP+" , "RAC" , "RAC+" , //Change to 2D array?

"STU" , "STU+" , "CTV" , "CTV+" , "DPV" , "DPV+" , "RVL" , "RVL+" , "GRT" , "GRT+" , "SOL" , "SOL+" ,

"SEL" , "SEL+" , "IRO" , "IRO+" , "EXA" , "EXA+" , "LTL" , "LTL+" , "CRR" , "CRR+" , "EUP" , "EUP+" ,

"SKP" , "SKP+" , "CYN" , "CYN+" , "CTP" , "CTP+" , "DSM" , "DSM+" , "IDG" , "IDG+" , "SGS" , "SGS+" , "PPV" , "PPV+" } ,

{ "Relation" , "UNFRAMED" , "FRAMED" } ,

{ "Format" , "NOF" , "SCH" , "ISR" , "ATH" , "RSL" , "SBQ" , "CCM" , "OBJ" , "PRT" , "AFI" } , //only if incorp

{ "Modality" , "DES" , "ASP" , "EPC" , "CRD" , "REQ" , "EXH" , "OPR" , "CPC" , "PRM" , "PTN" , "CLS" , "OBG" , "IMS" , //20

"ADV" , "ANT" , "DSP" , "PRE" , "NEC" , "DCV" , "PTV" , "VOL" , "ACC" , "ICL" , "CML" , "DVR" , "DVT" , "PFT" , "IPS" } ,

{ "Level" , "EQU" , "SUR" , "DFC" , "OPT" , "MIN" , "SPL" , "IFR" , "SPQ" , "SBE" } , //NB TWO FORMS

{ "Comparison Case" , "CMP1A" , "CMP2A" , "CMP3A" , "CMP4A" , "CMP5A" , "CMP6A" ,

"CMP7A" , "CMP8A" , "CMP1B" , "CMP2B" , "CMP3B" , "CMP4B" , "CMP5B" , "CMP6B" , "CMP7B" ,

"CMP8B" , "CMP1C" , "CMP2C" , "CMP3C" , "CMP4C" , "CMP5C" , "CMP6C" , "CMP7C" , "CMP8C" } ,

{ "Incorp. Root included" , "NO" , "YES" } ,

{ "Pattern&Stem" , "P1S1" , "P1S2" , "P1S3" , "P2S1" , "P2S2" , "P2S3" , "P3S1" , "P3S2" , "P3S3" } ,

{ "Suffix degree" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" } , //25

{ "Suffix type" , "1" , "2" , "3" } ,

{ "Designation" , "Informal" , "Formal" }

/*{"PRA","Abstract","Obviative","Collective","Mixed","Universal a","Universal i","Indefinite a","Indefinite i"

"Impersonal a","Impersonal i","ma","ua","mi","ui","1m","1+ma","1+ua","1+mi","1+ui","1m+Mx","2m","2u",

"2m+ma","2m+ua","2u+ma","2u+ua","2m+Mx","2u+Mx","2m+mi","2m+ui","2u+mi","2u+ui","1+2m","1+2u","1+2m+ma",

"1+2m+ua","1+2u+ma","1+2u+ua","1+2m+Mx","1+2u+Mx","1+2m+mi","1+2m+ui","1+2u+mi","1+2u+ui"}*/

} ;

String [ ] category = new String [ m. length ] ;

for ( int i = 0 ; i < m. length ; i ++ )

category [ i ] = m [ i ] [ 0 ] ;

int [ ] s = new int [ category. length ] ; //s for value of category selected, e.g. 1,2,3 = NRM, PRX, N etc

ith object1 = new ith ( ) ;

while ( true ) { //repeats forever

Arrays . fill ( s, 0 ) ; //sets all categories to default before building each word

int x = 1 ;

do { //scroll through cat.s picking each one

x = object1. select ( category ) ;

if ( x != 0 )

s [ x ] = ( object1. select ( m [ x ] ) - 1 ) ;

} while ( x != 0 ) ;

for ( int i = 0 ; i < s. length ; i ++ )

if ( s [ i ] != 0 ) //only non-default values (s[i]!=0) e.g. NRM or UNI will not be printed

System . out . printf ( "%s " , m [ i ] [ s [ i ] + 1 ] ) ;

System . out . printf ( "



" ) ;

object1. assemble ( s ) ;

}

}

public static int select ( String [ ] y ) {

Scanner object2 = new Scanner ( System . in ) ;

System . out . printf ( "Choose %s, " , y [ 0 ] ) ;

for ( int i = 1 ; i < y. length ; i ++ )

System . out . printf ( "%d:%s, " , i,y [ i ] ) ;

System . out . printf ( "0 to finish

" ) ;

int x = object2. nextInt ( ) ;

if ( x != 0 )

System . out . printf ( "You entered %s

" , y [ x ] ) ; //Gets annoying, delete later

return x ;

}

//Command line interpreter may not display all characters, writes everything to txt file as well

public static void printtotxt ( String y ) throws IOException {

System . out . printf ( y ) ;

FileWriter outFile = new FileWriter ( "ithkuiloutput.txt" , true ) ;

try {

PrintWriter object3 = new PrintWriter ( outFile ) ;

try {

object3. println ( ) ;

object3. append ( y ) ;

} finally {

object3. close ( ) ;

}

} finally {

outFile. close ( ) ;

}

}

public static void assemble ( int [ ] s ) throws IOException {

ith object4 = new ith ( ) ;

String [ ] [ ] [ ] ca = { //Ca[6*Essence+Extension][4*Perspective+Affiliation][Configuration]

{

{ "l" , "ll" , "tļ" , "ļ" , "ļļ" , "řļ" , "sk" , "šk" , "kţ" } ,

{ "r" , "rr" , "lļ" , "rl" , "rļ" , "řl" , "st" , "št" , "kç" } ,

{ "m" , "mm" , "lm" , "rm" , "mļ" , "řm" , "sp" , "šp" , "pţ" } ,

{ "n" , "nn" , "ln" , "rn" , "nļ" , "řn" , "sq" , "šq" , "qţ" } ,

{ "t" , "ļt" , "lt" , "rt" , "nt" , "řt" , "n^t" , "n^d" , "çt" } ,

{ "k" , "ļk" , "lk" , "rk" , "n^k" , "řk" , "kt" , "xt" , "çk" } ,

{ "p" , "ļp" , "lp" , "rp" , "mp" , "řp" , "pt" , "ft" , "çp" } ,

{ "q" , "ļq" , "lq" , "rq" , "n^q" , "řq" , "qt" , "xht" , "çq" } ,

{ "ţ" , "ţţ" , "lţ" , "rţ" , "nţ" , "řţ" , "sţ" , "šţ" , "tf" } ,

{ "x" , "xx" , "lx" , "rx" , "n^x" , "mx" , "sx" , "šx" , "kf" } ,

{ "f" , "ff" , "lf" , "rf" , "mf" , "řf" , "sf" , "šf" , "pf" } ,

{ "xh" , "xxh" , "lxh" , "rxh" , "n^xh" , "mxh" , "sxh" , "šxh" , "qf" } ,

{ "c" , "cc" , "lc" , "rc" , "ns" , "řc" , "sc" , "fk" , "fq" } ,

{ "c^" , "c^c^" , "lc^" , "rc^" , "nš" , "řc^" , "šc^" , "ţk" , "ţq" } ,

{ "ż" , "żż" , "lż" , "rż" , "nz" , "řż" , "ţf" , "ţs" , "ţc" } ,

{ "j" , "jj" , "lj" , "rj" , "nž" , "řj" , "fţ" , "ţš" , "ţc^" }

} ,

{

{ "s" , "ss" , "ls" , "rs" , "fs" , "řs" , "n^s" , "ms" , "mss" } ,

{ "š" , "šš" , "lš" , "rš" , "fš" , "řš" , "n^š" , "mš" , "mšš" } ,

{ "z" , "zz" , "lz" , "rz" , "vz" , "řz" , "n^z" , "mz" , "mzz" } ,

{ "ž" , "žž" , "lž" , "rž" , "vž" , "řž" , "n^ž" , "mž" , "mžž" } ,

{ "d" , "dv" , "ld" , "rd" , "nd" , "řd" , "md" , "zd" , "žd" } ,

{ "g" , "gv" , "lg" , "rg" , "n^g" , "řg" , "n^kf" , "zg" , "žg" } ,

{ "b" , "bv" , "lb" , "rb" , "mb" , "řb" , "ntf" , "zb" , "žb" } ,

{ "n^" , "n^n^" , "n^ç" , "rn^" , "n^v" , "ř n^" , "n^f" , "řtf" , "řkf" } ,

{ "dh" , "ddh" , "ldh" , "rdh" , "ndh" , "řdh" , "mdh" , "ţx" , "ţxh" } ,

{ "ç" , "çç" , "lç" , "rç" , "nç" , "řç" , "mç" , "fx" , "fxh" } ,

{ "v" , "vv" , "lv" , "rv" , "mv" , "řv" , "ndv" , "xf" , "xţ" } ,

{ "ř" , "řř" , "rbv" , "rdv" , "rgv" , "řxh" , "mţ" , "xhf" , "xhţ" } ,

{ "ck" , "c^k" , "ps" , "ks" , "gd" , "psk" , "pšk" , "ksk" , "kšk" } ,

{ "ct" , "c^t" , "pš" , "kš" , "bd" , "pst" , "pšt" , "tx" , "txh" } ,

{ "cp" , "c^p" , "bz" , "gz" , "pç" , "ksp" , "kšp" , "px" , "pxh" } ,

{ "cq" , "c^q" , "bž" , "gž" , "řqf" , "kst" , "kšt" , "psq" , "pšq" }

} ,

{

{ "mt" , "mt’" , "skh" , "sk’" , "mth" , "pst’" , "psth" , "pšt’" , "pšth" } ,

{ "mk" , "mk’" , "sth" , "st’" , "mkh" , "kst’" , "ksth" , "kšt’" , "kšth" } ,

{ "n^p" , "n^p’" , "sph" , "sp’" , "n^ph" , "psk’" , "pskh" , "pšk’" , "pškh" } ,

{ "mq" , "mq’" , "sqh" , "sq’" , "mqh" , "ksp’" , "ksph" , "kšp’" , "kšph" } ,

{ "pk" , "pk’" , "škh" , "šk’" , "pkh" , "fk’" , "fkh" , "psq’" , "psqh" } ,

{ "tk" , "tk’" , "šth" , "št’" , "tkh" , "ţk’" , "ţkh" , "ksk’" , "kskh" } ,

{ "tp" , "tp’" , "šph" , "šp’" , "tph" , "ţp’" , "ţph" , "pšq’" , "pšqh" } ,

{ "kp" , "kp’" , "šqh" , "šq’" , "kph" , "xp’" , "xph" , "kšk’" , "kškh" } ,

{ "pq" , "pq’" , "fg" , "bg" , "pqh" , "vg" , "fp" , "fq’" , "fqh" } ,

{ "tq" , "tq’" , "ţg" , "dg" , "tqh" , "dhg" , "vd" , "ţq’" , "ţqh" } ,

{ "qp" , "qp’" , "xhp" , "xp" , "sch" , "sc’" , "n^qf" , "gb" , "kkç/kçç" } ,

{ "pļ" , "tç" , "xhp’" , "ţp" , "šc^h" , "šc^’" , "vb" , "dhz" , "ppç/pçç" } ,

{ "fst" , "fc’" , "fc" , "lfs" , "xc’" , "ţc’" , "ltf" , "fst’" , "fsth" } ,

{ "fšt" , "fc^’" , "fc^" , "lfš" , "xc^’" , "ţc^’" , "lkf" , "fšt’" , "fšth" } ,

{ "fsk" , "fch" , "rfs" , "fsq" , "xch" , "ţch" , "xhph" , "fsk’" , "fskh" } ,

{ "fšk" , "fc^h" , "rfš" , "fšq" , "xc^h" , "ţc^h" , "qph" , "fšk’" , "fškh" }

} ,

{

{ "t’" , "ļt’" , "lt’" , "rt’" , "nt’" , "řt’" , "ţsk’" , "kt’" , "n^t’" } ,

{ "k’" , "ļk’" , "lk’" , "rk’" , "n^k’" , "řk’" , "ţšk’" , "ft’" , "xt’" } ,

{ "p’" , "ļp’" , "lp’" , "rp’" , "mp’" , "řp’" , "fsq’" , "pt’" , "fp’" } ,

{ "q’" , "ļq’" , "lq’" , "rq’" , "n^q’" , "řq’" , "fšq’" , "xht’" , "qt’" } ,

{ "th" , "ļth" , "lth" , "rth" , "nth" , "řth" , "ţskh" , "kth" , "n^th" } ,

{ "kh" , "ļkh" , "lkh" , "rkh" , "n^kh" , "řkh" , "ţškh" , "fth" , "xth" } ,

{ "ph" , "ļph" , "lph" , "rph" , "mph" , "řph" , "fsqh" , "pth" , "fph" } ,

{ "qh" , "ļqh" , "lqh" , "rqh" , "n^qh" , "řqh" , "fšqh" , "xhth" , "qth" } ,

{ "c’" , "cc’" , "lc’" , "rc’" , "nc’" , "řc’" , "mc’" , "n^c’" , "çt’" } ,

{ "c^’" , "c^c^’" , "lc^’" , "rc^’" , "nc^’" , "řc^’" , "mc^’" , "n^c^’" , "çk’" } ,

{ "ch" , "cch" , "lch" , "rch" , "nch" , "řch" , "mch" , "n^ch" , "çp’" } ,

{ "c^h" , "c^c^h" , "lc^h" , "rc^h" , "nc^h" , "c^řh" , "mc^h" , "n^c^h" , "çq’" } ,

{ "pps/pss" , "rps" , "lps" , "rbz" , "lbz" , "řps" , "řbz" , "n^ss" , "çth" } ,

{ "ppš/pšš" , "rpš" , "lpš" , "rbž" , "lbž" , "řpš" , "řbž" , "n^šš" , "çkh" } ,

{ "kks/ kss" , "rks" , "lks" , "rgz" , "lgz" , "řks" , "řgz" , "n^zz" , "çph" } ,

{ "kkš/kšš" , "rkš" , "lkš" , "rgž" , "lgž" , "řkš" , "řgž" , "n^žž" , "çqh" }

} ,

{

{ "kc" , "lkç" , "lsk" , "rsk" , "nsk" , "řsk" , "msk" , "n^sk" , "ssk" } ,

{ "żd" , "lţs" , "lst" , "rst" , "nst" , "řst" , "mst" , "n^st" , "sst" } ,

{ "pc" , "bbz/bzz" , "lsp" , "rsp" , "nsp" , "řsp" , "msp" , "n^sp" , "ssp" } ,

{ "qc" , "ggz/gzz" , "lsq" , "rsq" , "nsq" , "řsq" , "msq" , "n^sq" , "ssq" } ,

{ "kc^" , "rçç" , "lšk" , "ršk" , "nšk" , "řšk" , "mšk" , "n^šk" , "ššk" } ,

{ "jd" , "lţš" , "lšt" , "ršt" , "nšt" , "řšt" , "mšt" , "n^št" , "ššt" } ,

{ "pc^" , "bbž/bžž" , "lšp" , "ršp" , "nšp" , "řšp" , "mšp" , "n^šp" , "ššp" } ,

{ "qc^" , "ggž/gžž" , "lšq" , "ršq" , "nšq" , "řšq" , "mšq" , "n^šq" , "ššq" } ,

{ "bdh" , "xpf" , "lvz" , "rvz" , "rbdh" , "řpţ" , "lpf" , "rpf" , "bzd" } ,

{ "gdh" , "n^dh" , "lvž" , "rvž" , "rgdh" , "řkţ" , "lpç" , "rpç" , "bžd" } ,

{ "ţt" , "dhd" , "ldhz" , "rţs" , "rqţ" , "řqţ" , "n^kç" , "řpf" , "gzd" } ,

{ "db" , "ttç/tçç" , "ldhž" , "rţš" , "rkç" , "řkç" , "mpç" , "řpç" , "gžd" } ,

{ "bż" , "rpss" , "lzb" , "rzb" , "nzb" , "řzb" , "mzb" , "řpss" , "gzb" } ,

{ "gż" , "rkss" , "lžb" , "ržb" , "nžb" , "řžb" , "mžb" , "řkss" , "gžb" } ,

{ "bj" , "rpšš" , "lzg" , "rzg" , "nzg" , "řzg" , "mzg" , "řpšš" , "bzg" } ,

{ "gj" , "rkšš" , "lžg" , "ržg" , "nžg" , "řžg" , "mžg" , "řkšš" , "bžg" }

} ,

{

{ "kc’" , "ck’" , "lsk’" , "rsk’" , "nsk’" , "řsk’" , "msk’" , "n^sk’" , "ssk’" } ,

{ "żb" , "ct’" , "lst’" , "rst’" , "nst’" , "řst’" , "mst’" , "n^st’" , "sst’" } ,

{ "pc’" , "cp’" , "lsp’" , "rsp’" , "nsp’" , "řsp’" , "msp’" , "n^sp’" , "ssp’" } ,

{ "qc’" , "cq’" , "lsq’" , "rsq’" , "nsq’" , "řsq’" , "msq’" , "n^sq’" , "ssq’" } ,

{ "kc^’" , "c^k’" , "lšk’" , "ršk’" , "nšk’" , "řšk’" , "mšk’" , "n^šk’" , "ššk’" } ,

{ "jb" , "c^t’" , "lšt’" , "ršt’" , "nšt’" , "řšt’" , "mšt’" , "n^št’" , "ššt’" } ,

{ "pc^’" , "c^p’" , "lšp’" , "ršp’" , "nšp’" , "řšp’" , "mšp’" , "n^šp’" , "ššp’" } ,

{ "qc^’" , "c^q’" , "lšq’" , "ršq’" , "nšq’" , "řšq’" , "mšq’" , "n^šq’" , "ššq’" } ,

{ "kch" , "ckh" , "lskh" , "rskh" , "nskh" , "řskh" , "mskh" , "n^skh" , "sskh" } ,

{ "żg" , "cth" , "lsth" , "rsth" , "nsth" , "řsth" , "msth" , "n^sth" , "ssth" } ,

{ "pch" , "cph" , "lsph" , "rsph" , "nsph" , "řsph" , "msph" , "n^sph" , "ssph" } ,

{ "qch" , "cqh" , "lsqh" , "rsqh" , "nsqh" , "řsqh" , "msqh" , "n^sqh" , "ssqh" } ,

{ "kc^h" , "c^kh" , "lškh" , "rškh" , "nškh" , "řškh" , "mškh" , "n^škh" , "šškh" } ,

{ "jg" , "c^th" , "lšth" , "ršth" , "nšth" , "řšth" , "mšth" , "n^šth" , "ššth" } ,

{ "pc^h" , "c^ph" , "lšph" , "ršph" , "nšph" , "řšph" , "mšph" , "n^šph" , "ššph" } ,

{ "qc^h" , "c^qh" , "lšqh" , "ršqh" , "nšqh" , "řšqh" , "mšqh" , "n^šqh" , "ššqh" }

} ,

{

{ "tt" , "tt’" , "tth" , "lpt’" , "rpt’" , "řpt’" , "lpth" , "rpth" , "řpth" } ,

{ "kk" , "kk’" , "kkh" , "lkt’" , "rkt’" , "řkt’" , "lkth" , "rkth" , "řkth" } ,

{ "pp" , "pp’" , "pph" , "lpk’" , "rpk’" , "řpk’" , "lpkh" , "rpkh" , "řpkh" } ,

{ "qq" , "qq’" , "qqh" , "ltk’" , "rtk’" , "řtk’" , "ltkh" , "rtkh" , "řtkh" } ,

{ "dd" , "nçw" , "pçw" , "lft’" , "rft’" , "řft’" , "lfth" , "rfth" , "řfth" } ,

{ "gg" , "n^çw" , "kfw" , "lxt’" , "rxt’" , "řxt’" , "lxth" , "rxth" , "řxth" } ,

{ "bb" , "mçw" , "pfw" , "lfk’" , "rfk’" , "řfk’" , "lfkh" , "rfkh" , "řfkh" } ,

{ "cf" , "c^f" , "qfw" , "lţk’" , "rţk’" , "řţk’" , "lţkh" , "rţkh" , "řţkh" } ,

{ "ţw" , "dhw" , "lţw" , "rţw" , "mţw" , "řţw" , "nţw" , "ldhw" , "rdhw" } ,

{ "xw" , "n^w" , "lxw" , "rxw" , "mxw" , "řxw" , "n^xw" , "ln^w" , "rn^w" } ,

{ "fw" , "vw" , "lfw" , "rfw" , "n^fw" , "řfw" , "mfw" , "lvw" , "rvw" } ,

{ "xhw" , "çw" , "lxhw" , "rxhw" , "mxhw" , "tçw" , "n^xhw" , "lçw" , "rçw" } ,

{ "sw" , "cw" , "lsw" , "rsw" , "msw" , "řsw" , "nsw" , "n^sw" , "ssw" } ,

{ "šw" , "c^w" , "lšw" , "ršw" , "mšw" , "řšw" , "nšw" , "n^šw" , "ššw" } ,

{ "zw" , "żw" , "lzw" , "rzw" , "mzw" , "řzw" , "nzw" , "n^zw" , "zzw" } ,

{ "žw" , "jw" , "lžw" , "ržw" , "mžw" , "řžw" , "nžw" , "n^žw" , "žžw" }

} ,

{

{ "tw" , "ttw" , "thw" , "t’w" , "tt’w" , "tthw" , "ltw" , "rtw" , "ntw" } ,

{ "kw" , "kkw" , "khw" , "k’w" , "kk’w" , "kkhw" , "lkw" , "rkw" , "n^kw" } ,

{ "pw" , "ppw" , "phw" , "p’w" , "pp’w" , "pphw" , "lpw" , "rpw" , "mpw" } ,

{ "qw" , "qqw" , "qhw" , "q’w" , "qq’w" , "qqhw" , "lqw" , "rqw" , "n^qw" } ,

{ "ty" , "tty" , "lty" , "ţy" , "nty" , "řty" , "rty" , "pty" , "tky" } ,

{ "ky" , "kky" , "lky" , "ży" , "n^ky" , "řky" , "rky" , "kty" , "kpy" } ,

{ "py" , "ppy" , "lpy" , "fy" , "npy" , "řpy" , "rpy" , "tpy" , "pky" } ,

{ "my" , "fty" , "ptw" , "mw" , "ftw" , "ptr" , "ftr" , "pkw" , "fkw" } ,

{ "dw" , "ddw" , "ldw" , "tv" , "ndw" , "řdw" , "bdw" , "dgw" , "rdw" } ,

{ "gw" , "ggw" , "lgw" , "kv" , "n^gw" , "řgw" , "gdw" , "gbw" , "rgw" } ,

{ "bw" , "bbw" , "lbw" , "pv" , "mbw" , "řbw" , "dbw" , "bgw" , "rbw" } ,

{ "lw" , "ly" , "ry" , "rw" , "ļw" , "řy" , "tļw" , "řw" , "lř" } ,

{ "dy" , "ddy" , "ldy" , "dhy" , "ndy" , "řdy" , "rdy" , "bdy" , "dgy" } ,

{ "gy" , "ggy" , "lgy" , "jy" , "n^gy" , "řgy" , "rgy" , "gdy" , "gby" } ,

{ "by" , "bby" , "lby" , "vy" , "mby" , "řby" , "rby" , "dby" , "bgy" } ,

{ "ny" , "xty" , "ktw" , "nw" , "xtw" , "ktr" , "xtr" , "tkw" , "ţkw" }

} ,

{

{ "tl" , "ttl" , "ltl" , "rtl" , "ntl" , "řtl" , "mtl" , "ļtl" , "kçw" } ,

{ "kl" , "kkl" , "lkl" , "rkl" , "n^kl" , "řkl" , "mkl" , "ļkl" , "c’w" } ,

{ "pl" , "ppl" , "lpl" , "rpl" , "mpl" , "řpl" , "n^pl" , "ļpl" , "tfw" } ,

{ "ql" , "qql" , "lql" , "rql" , "n^ql" , "řql" , "mql" , "ļql" , "c^’w" } ,

{ "dl" , "ddl" , "ldl" , "rdl" , "ndl" , "řdl" , "bdl" , "dgl" , "vbl" } ,

{ "gl" , "ggl" , "lgl" , "rgl" , "n^gl" , "řgl" , "gdl" , "gbl" , "vgl" } ,

{ "bl" , "bbl" , "lbl" , "rbl" , "mbl" , "řbl" , "dbl" , "bgl" , "vdl" } ,

{ "ml" , "mř" , "n^l" , "nl" , "ţř" , "fř" , "př" , "tř" , "lr" } ,

{ "skl" , "ckl" , "ckw" , "skw" , "sskw" , "çkw" , "sk’w" , "ck’w" , "sskl" } ,

{ "stl" , "ctl" , "ctw" , "stw" , "sstw" , "çtw" , "st’w" , "ct’w" , "sstl" } ,

{ "spl" , "cpl" , "cpw" , "spw" , "sspw" , "çpw" , "sp’w" , "cp’w" , "sspl" } ,

{ "sql" , "cql" , "cqw" , "sqw" , "ssqw" , "çqw" , "sq’w" , "cq’w" , "ssql" } ,

{ "škl" , "c^kl" , "c^kw" , "škw" , "šškw" , "xxw" , "šk’w" , "c^k’w" , "šškl" } ,

{ "štl" , "c^tl" , "c^tw" , "štw" , "šštw" , "ţţw" , "št’w" , "c^t’w" , "šštl" } ,

{ "špl" , "c^pl" , "c^pw" , "špw" , "ššpw" , "ffw" , "šp’w" , "c^p’w" , "ššpl" } ,

{ "šql" , "c^ql" , "c^qw" , "šqw" , "ššqw" , "xxhw" , "šq’w" , "c^q’w" , "ššql" }

} ,

{

{ "tr" , "ttr" , "ltr" , "rtr" , "ntr" , "řtr" , "mtr" , "ļtr" , "rtn" } ,

{ "kr" , "kkr" , "lkr" , "rkr" , "n^kr" , "řkr" , "mkr" , "ļkr" , "rkn" } ,

{ "pr" , "ppr" , "lpr" , "rpr" , "mpr" , "řpr" , "n^pr" , "ļpr" , "rpn" } ,

{ "qr" , "qqr" , "lqr" , "rqr" , "n^qr" , "řqr" , "mqr" , "ļqr" , "rqn" } ,

{ "dr" , "ddr" , "ldr" , "rdr" , "ndr" , "řdr" , "bdr" , "dgr" , "vbr" } ,

{ "gr" , "ggr" , "lgr" , "rgr" , "n^gr" , "řgr" , "gdr" , "gbr" , "vgr" } ,

{ "br" , "bbr" , "lbr" , "rbr" , "mbr" , "řbr" , "dbr" , "bgr" , "vdr" } ,

{ "mr" , "nř" , "n^r" , "nr" , "dhř" , "vř" , "bř" , "dř" , "gř" } ,

{ "skr" , "ckr" , "cky" , "sky" , "ssky" , "c^hw" , "skhw" , "ckhw" , "sskr" } ,

{ "str" , "ctr" , "cty" , "sty" , "ssty" , "chy" , "sthw" , "cthw" , "sstr" } ,

{ "spr" , "cpr" , "cpy" , "spy" , "sspy" , "chw" , "sphw" , "cphw" , "sspr" } ,

{ "sqr" , "cqr" , "c’y" , "cy" , "çr" , "c^hy" , "sqhw" , "cqhw" , "ssqr" } ,

{ "škr" , "c^kr" , "c^ky" , "šky" , "ššky" , "ļkw" , "škhw" , "c^khw" , "šškr" } ,

{ "štr" , "c^tr" , "c^ty" , "šty" , "ššty" , "ļtw" , "šthw" , "c^thw" , "šštr" } ,

{ "špr" , "c^pr" , "c^py" , "špy" , "ššpy" , "ļpw" , "šphw" , "c^phw" , "ššpr" } ,

{ "šqr" , "c^qr" , "c^’y" , "c^y" , "çř" , "ļqw" , "šqhw" , "c^qhw" , "ššqr" }

} ,

{

{ "sl" , "ssl" , "lsl" , "rsl" , "msl" , "řsl" , "nsl" , "n^sl" , "ţst" } ,

{ "šl" , "ššl" , "lšl" , "ršl" , "mšl" , "řšl" , "nšl" , "n^šl" , "ţšt" } ,

{ "zl" , "zzl" , "lzl" , "rzl" , "mzl" , "řzl" , "nzl" , "n^zl" , "ţsp" } ,

{ "žl" , "žžl" , "lžl" , "ržl" , "mžl" , "řžl" , "nžl" , "n^žl" , "ţšp" } ,

{ "fl" , "ffl" , "lfl" , "rfl" , "mfl" , "řfl" , "fxl" , "n^fl" , "pxl" } ,

{ "ţl" , "ţţl" , "lţl" , "rţl" , "nţl" , "řţl" , "ţxl" , "mţl" , "txl" } ,

{ "xl" , "xxl" , "lxl" , "rxl" , "n^xl" , "řxl" , "xfl" , "mxl" , "xţl" } ,

{ "xhl" , "xxhl" , "lxhl" , "rxhl" , "n^xhl" , "qtl" , "xhfl" , "mxhl" , "xhţl" } ,

{ "vl" , "vvl" , "lvl" , "rvl" , "mvl" , "řvl" , "lpţ" , "lkţ" , "mpļ" } ,

{ "dhl" , "ddhl" , "ldhl" , "rdhl" , "ndhl" , "řdhl" , "cl" , "c^l" , "ntļ" } ,

{ "sv" , "sř" , "ksw" , "sxw" , "lsř" , "rsř" , "fsw" , "řsř" , "bzw" } ,

{ "zv" , "zř" , "psw" , "sxhw" , "lzř" , "rzř" , "sfw" , "řzř" , "gzw" } ,

{ "sm" , "sy" , "cm" , "zm" , "żm" , "çm" , "bm" , "dm" , "gm" } ,

{ "šm" , "šy" , "c^m" , "žm" , "jm" , "ļm" , "vm" , "dhm" , "kř" } ,

{ "sn" , "zy" , "cn" , "zn" , "żn" , "çn" , "bn" , "dn" , "gn" } ,

{ "šn" , "žy" , "c^n" , "žn" , "jn" , "ļn" , "vn" , "dhn" , "n^ř" }

} ,

{

{ "sr" , "ssr" , "lsr" , "rsr" , "msr" , "řsr" , "nsr" , "n^sr" , "ţsk" } ,

{ "šr" , "ššr" , "lšr" , "ršr" , "mšr" , "řšr" , "nšr" , "n^šr" , "ţšk" } ,

{ "zr" , "zzr" , "lzr" , "rzr" , "mzr" , "řzr" , "nzr" , "n^zr" , "ţsq" } ,

{ "žr" , "žžr" , "lžr" , "ržr" , "mžr" , "řžr" , "nžr" , "n^žr" , "ţšq" } ,

{ "fr" , "ffr" , "lfr" , "rfr" , "mfr" , "řfr" , "fxr" , "n^fr" , "pxr" } ,

{ "ţr" , "ţţr" , "lţr" , "rţr" , "nţr" , "řţr" , "ţxr" , "mţr" , "txr" } ,

{ "xr" , "xxr" , "lxr" , "rxr" , "n^xr" , "řxr" , "xfr" , "mxr" , "xţr" } ,

{ "xhr" , "xxhr" , "lxhr" , "rxhr" , "n^xhr" , "qtr" , "xhfr" , "mxhr" , "xhţr" } ,

{ "vr" , "vvr" , "lvr" , "rvr" , "mvr" , "řvr" , "rpţ" , "rkţ" , "mpř" } ,

{ "dhr" , "ddhr" , "ldhr" , "rdhr" , "ndhr" , "řdhr" , "cr" , "c^r" , "ntř" } ,

{ "šv" , "šř" , "kšw" , "šxw" , "lšř" , "ršř" , "fšw" , "řšř" , "bžw" } ,

{ "žv" , "žř" , "pšw" , "šxhw" , "lžř" , "ržř" , "šfw" , "řžř" , "gžw" } ,

{ "tm" , "ţm" , "ţn" , "tn" , "rsm" , "rsn" , "sn^" , "rsn^" , "nm" } ,

{ "km" , "xm" , "xn" , "kn" , "rzm" , "rzn" , "zn^" , "rzn^" , "n^m" } ,

{ "pm" , "fm" , "fn" , "pn" , "ršm" , "ršn" , "šn^" , "ršn^" , "mn" } ,

{ "qm" , "xhm" , "xhn" , "qn" , "ržm" , "ržn" , "žn^" , "ržn^" , "n^n" }

}

} ;

String [ ] vc = { //Cases 1-72

"a" , "u" , "e" , "o" , "ö" , "i" , "ü/a’e" , "ai" , "ei" ,

"ui" , "oi" , "â" , "î/û" , "ê" , "ô" , "ëi" , "öi" , "ae" ,

"ia/ua" , "ie/ue" , "io/uo" , "iö/uö" , "a’" , "u’e’" , "o’" , "ea" , "eo" ,

"eö" , "oa" , "oe" , "öa" , "öe" , "üa/i’" , "üe/ö’" , "üo/î’/û’" , "au" ,

"eu" , "iu" , "ou" , "ëu" , "öu" , "ai’" , "ui’" , "ei’" , "oi’" ,

"au’" , "iu’" , "eu’" , "ou’" , "a’V" , "e’V" , "i’V" , "o’V" ,

"u’V" , "ö’V" , "ü’ëu’V" , "ai’V" , "ei’V" , "ui’V" , "oi’V" , "ëi’V" , "au’V" ,

"eu’V" , "iu’V" , "â’V" , "ê’V" , "ô’V" , "î’V" , "û’V" , "ëu’V" , "ou’V" , "ë"

} ;

String [ ] [ ] vr = { //vr[function][3*pattern+stem]

{ "(a)" , "e" , "u" , "o" , "ö" , "î/û" , "â" , "ê" , "ô" } ,

{ "i" , "ai" , "ei" , "au" , "eu" , "iu" , "ia/ua" , "ie/ue" , "io/uo" } ,

{ "ui" , "ü/ou" , "ëi" , "ae" , "ea" , "oa" , "üa/aì" , "iù/uì" , "iö/uö" } ,

{ "oi" , "eo" , "eö" , "oe" , "öe" , "ëu" , "üo/oì" , "üe/eì" , "üö/aù" }

} ;

String [ ] [ ] vf = { //[context][format], first format is blank

{ "a" , "o" , "ai" , "â" , "au" , "ëi" , "oa" , "ea" , "aì" , "aù" } ,

{ "i" , "ö" , "ui" , "ae" , "iu" , "ëu" , "oe" , "ia/ua" , "uì" , "iù" } ,

{ "e" , "ü/öe" , "ei" , "ê" , "eu" , "öi" , "eo" , "ie/ue" , "eì" , "eù" } ,

{ "u" , "öa" , "oi" , "ô" , "ou" , "öu" , "iö/uö" , "io/uo" , "oì" , "où" }

} ;

String [ ] [ ] civi = { //[illocution][mood], DEC ony used with FAC mood

{ "(wë)" , "wa" , "yë" , "ya" , "yû" , "hë" , "ha" , "hû/hî" } ,

{ "we" , "wö" , "ye" , "yö" , "yeu/wei" , "he" , "hö" , "hei" } ,

{ "wu" , "wâ" , "yu" , "yâ" , "yau/wai" , "hu" , "hâ" , "hai" } ,

{ "wo" , "wê" , "yo" , "yê" , "you/woi" , "ho" , "hê" , "hoi" } ,

{ "wi" , "wô" , "yi" , "yô" , "yiu/wui" , "hi" , "hô" , "hui" } ,

{ "wî" }

} ;

String [ ] [ ] stress = { //[0 Unframed, 1 Framed][0 Informal, 1 Formal]

{ "penultimate stress" , "ultimate stress" } ,

{ "antepenultimate stress" , "pre-antepenultimate stress" }

} ;

String [ ] [ ] [ ] cv = { //[Illocution][Phase][Sanction]

{

{ "t" , "t’" , "th" , "l" , "tr" , "tl" , "tř" , "tw" , "ty" } ,

{ "k" , "k’" , "kh" , "x" , "kr" , "kl" , "kř" , "kw" , "ky" } ,

{ "p" , "p’" , "ph" , "vv" , "pr" , "pl" , "př" , "pw" , "py" } ,

{ "q" , "q’" , "qh" , "ř" , "qr" , "ql" , "xr" , "qw" , "xl" } ,

{ "b" , "v" , "vr" , "vl" , "br" , "bl" , "bř" , "bw" , "by" } ,

{ "d" , "dh" , "ż" , "żż" , "dr" , "dl" , "dř" , "dw" , "dy" } ,

{ "g" , "xh" , "j" , "jj" , "gr" , "gl" , "gř" , "gw" , "gy" } ,

{ "m" , "mm" , "r" , "rr" , "mr" , "ml" , "mř" , "mw" , "my" } ,

{ "n" , "nn" , "ddh" , "ll" , "nr" , "nl" , "nř" , "nw" , "ny" } ,

} ,

{

{ "s" , "ss" , "sm" , "sn" , "sr" , "sl" , "sř" , "sw" , "sy" } ,

{ "š" , "šš" , "šm" , "šn" , "šr" , "šl" , "šř" , "šw" , "šy" } ,

{ "ç" , "çç" , "çm" , "çn" , "çl" , "çr" , "çř" , "çw" , "ly" } ,

{ "c" , "cc" , "cm" , "cn" , "cr" , "cl" , "cř" , "cw" , "cy" } ,

{ "c^" , "c^c^" , "c^m" , "c^n" , "c^r" , "c^l" , "c^ř" , "c^w" , "c^y" } ,

{ "z" , "zz" , "zm" , "zn" , "zr" , "zl" , "zř" , "zw" , "zy" } ,

{ "ž" , "žž" , "žm" , "žn" , "žr" , "žl" , "žř" , "žw" , "žy" } ,

{ "f" , "ff" , "fw" , "fy" , "fr" , "fl" , "fř" , "vw" , "vy" } ,

{ "ţ" , "ţţ" , "ţw" , "ţy" , "ţr" , "ţl" , "ţř" , "dhw" , "dhy" } ,

} ,

{

{ "sk" , "sk’" , "skh" , "zg" , "skr" , "skl" , "skř" , "skw" , "sky" } ,

{ "st" , "st’" , "sth" , "zd" , "str" , "stl" , "stř" , "stw" , "sty" } ,

{ "sp" , "sp’" , "sph" , "zb" , "spr" , "spl" , "spř" , "spw" , "spy" } ,

{ "sq" , "sq’" , "sqh" , "xx" , "sqr" , "sql" , "xw" , "sqw" , "řř" } ,

{ "šk" , "šk’" , "škh" , "žg" , "škr" , "škl" , "škř" , "škw" , "šky" } ,

{ "št" , "št’" , "šth" , "žd" , "štr" , "štl" , "štř" , "štw" , "šty" } ,

{ "šp" , "šp’" , "šph" , "žb" , "špr" , "špl" , "špř" , "špw" , "špy" } ,

{ "šq" , "šq’" , "šqh" , "xxh" , "šqr" , "šql" , "xhw" , "šqw" , "řw" } ,

{ "n^" , "n^n^" , "rw" , "ry" , "n^r" , "n^l" , "n^ř" , "n^w" , "řy" } ,

} ,

{

{ "ks" , "kss" , "ksm" , "ksn" , "ksr" , "ksl" , "ksř" , "ksw" , "ksy" } ,

{ "kš" , "kšš" , "kšm" , "kšn" , "kšr" , "kšl" , "kšř" , "kšw" , "kšy" } ,

{ "ps" , "pss" , "psm" , "psn" , "psr" , "psl" , "psř" , "psw" , "psy" } ,

{ "pš" , "pšš" , "pšm" , "pšn" , "pšr" , "pšl" , "pšř" , "pšw" , "pšy" } ,

{ "gz" , "gzz" , "gzm" , "gzn" , "gzr" , "gzl" , "gzř" , "gzw" , "gzy" } ,

{ "gž" , "gžž" , "gžm" , "gžn" , "gžr" , "gžl" , "gžř" , "gžw" , "gžy" } ,

{ "bz" , "bzz" , "bzm" , "bzn" , "bzr" , "bzl" , "bzř" , "bzw" , "bzy" } ,

{ "bž" , "bžž" , "bžm" , "bžn" , "bžr" , "bžl" , "bžř" , "bžw" , "bžy" } ,

{ "sx" , "sxh" , "šx" , "šxh" , "zgr" , "zgl" , "zgř" , "zgw" , "zgy" } ,

} ,

{

{ "çt" , "çt’" , "çth" , "sţ" , "çtr" , "çtl" , "çtř" , "çtw" , "çty" } ,

{ "çk" , "çk’" , "çkh" , "šţ" , "çkr" , "çkl" , "çkř" , "çkw" , "çky" } ,

{ "çp" , "çp’" , "çph" , "sf" , "çpr" , "çpl" , "çpř" , "çpw" , "çpy" } ,

{ "çq" , "çq’" , "çqh" , "šf" , "çqr" , "çql" , "çqř" , "çqw" , "çc^" } ,

{ "kt" , "kt’" , "kth" , "gd" , "ktr" , "ktl" , "ktř" , "ktw" , "kty" } ,

{ "pt" , "pt’" , "pth" , "bd" , "ptr" , "ptl" , "ptř" , "ptw" , "pty" } ,

{ "qt" , "qt’" , "qth" , "tk" , "qtr" , "qtl" , "qtř" , "qtw" , "qty" } ,

{ "sc" , "sc’" , "sch" , "db" , "żr" , "żl" , "żř" , "żw" , "ży" } ,

{ "šc^" , "šc^’" , "šc^h" , "dg" , "jr" , "jl" , "jř" , "jw" , "jy" } ,

} ,

{

{ "ct" , "ct’" , "cth" , "tm" , "ctr" , "ctl" , "ctř" , "ctw" , "cty" } ,

{ "ck" , "ck’" , "ckh" , "km" , "ckr" , "ckl" , "ckř" , "ckw" , "cky" } ,

{ "cp" , "cp’" , "cph" , "pm" , "cpr" , "cpl" , "cpř" , "cpw" , "cpy" } ,

{ "cq" , "cq’" , "cqh" , "qm" , "cqr" , "cql" , "gm" , "cqw" , "xm" } ,

{ "c^t" , "c^t’" , "c^th" , "tn" , "c^tr" , "c^tl" , "c^tř" , "c^tw" , "c^ty" } ,

{ "c^k" , "c^k’" , "c^kh" , "kn" , "c^kr" , "c^kl" , "c^kř" , "c^kw" , "c^ky" } ,

{ "c^p" , "c^p’" , "c^ph" , "pn" , "c^pr" , "c^pl" , "c^př" , "c^pw" , "c^py" } ,

{ "c^q" , "c^q’" , "c^qh" , "qn" , "c^qr" , "c^ql" , "gn" , "c^qw" , "xn" } ,

{ "xt" , "xt’" , "xth" , "pk" , "xtr" , "xtl" , "xtř" , "xtw" , "xty" } ,

}

} ;

String [ ] vl = { //Valence

"a" , "e" , "o" , "i" , "u" , "â" , "ê" , "ô" , "û/î" , "ai/au" , "ei/eu" , "oi/ou" , "ui/iu" , "ö"

} ;

String [ ] tone = { //Version, Extension, second should be high dash

"" , "-" , "/" , "_" , "^" , "ˇ"

} ;

String [ ] cg = { //Validation, same as Cl valence + 1

"(h)" , "y" , "w" , "hw" , "hh" , "hm" , "hn" , "hr" , "lw" , "ly" , "rw" , "ry" , "řw" , "řy"

} ;

String [ ] [ ] cs = { //[Aspect][Mood], first aspect is blank

{ "n-n" , "m-m" , "l-l" , "r-r" , "n^-n^" , "r-n" , "l-n^" , "r-n^" } ,

{ "n-nr" , "n-nt" , "n-nt’" , "n-nd" , "n-nth" , "n-nţ" , "n-ndh" , "n-nh" } ,

{ "m-mr" , "m-mp" , "m-mp’" , "m-mb" , "m-mph" , "m-mf" , "m-mv" , "m-mh" } ,

{ "l-lr" , "l-lt" , "l-lt’" , "l-ld" , "l-lth" , "l-lţ" , "l-ldh" , "l-lh" } ,

{ "r-rn" , "r-rt" , "r-rt’" , "r-rd" , "r-rth" , "r-rţ" , "r-rdh" , "r-rh" } ,

{ "n^-n^r" , "n^-n^k" , "n^-n^k’" , "n^-n^g" , "n^-n^kh" , "n^-n^x" , "n^-n^q" , "n^-n^h" } ,

{ "n-nw" , "n-ntw" , "n-nt’w" , "n-ndw" , "n-nthw" , "n-nţw" , "n-ndhw" , "n-nhw" } ,

{ "m-mw" , "m-mpw" , "m-mp’w" , "m-mbw" , "m-mphw" , "m-mfw" , "m-mvw" , "m-mhw" } ,

{ "l-lw" , "l-ltw" , "l-lt’w" , "l-ldw" , "l-lthw" , "l-lţw" , "l-ldhw" , "l-lhw" } ,

{ "r-rw" , "r-rtw" , "r-rt’w" , "r-rdw" , "r-rthw" , "r-rţw" , "r-rdhw" , "r-rhw" } ,

{ "n^-n^w" , "n^-n^kw" , "n^-n^k’w" , "n^-n^gw" , "n^-n^khw" , "n^-n^xw" , "n^-n^qw" , "n^-n^hw" } ,

{ "n-ny" , "n-nty" , "n-nt’y" , "n-ndy" , "n-nthy" , "n-nţy" , "n-ndhy" , "n-nç" } ,

{ "m-my" , "m-mpy" , "m-mp’y" , "m-mby" , "m-mphy" , "m-mfy" , "m-mvy" , "m-mç" } ,

{ "l-ly" , "l-lty" , "l-lt’y" , "l-ldy" , "l-lthy" , "l-lţy" , "l-ldhy" , "l-lç" } ,

{ "r-ry" , "r-rty" , "r-rt’y" , "r-rdy" , "r-rthy" , "r-rţy" , "r-rdhy" , "r-rç" } ,

{ "n-ns" , "n-nz" , "n-nsw" , "n-nzw" , "n-nc’" , "n-nch" , "n-nc’w" , "n-nchw" } ,

{ "m-ms" , "m-mz" , "m-msw" , "m-mzw" , "m-mc’" , "m-mch" , "m-mc’w" , "m-mchw" } ,

{ "n^-n^s" , "n^-n^z" , "n^-n^sw" , "n^-n^zw" , "n^-n^c’" , "n^-n^ch" , "n^-n^c’w" , "n^-n^chw" } ,

{ "l-ls" , "l-lz" , "l-lsw" , "l-lzw" , "l-lc’" , "l-lch" , "l-lc’w" , "l-lchw" } ,

{ "r-rs" , "r-rz" , "r-rsw" , "r-rzw" , "r-rc’" , "r-rch" , "r-rc’w" , "r-rchw" } ,

{ "n-nš" , "n-nž" , "n-nšw" , "n-nžw" , "n-nc^’" , "n-nc^h" , "n-nc^’w" , "n-nc^hw" } ,

{ "m-mš" , "m-mž" , "m-mšw" , "m-mžw" , "m-mc^’" , "m-mc^h" , "m-mc^’w" , "m-mc^hw" } ,

{ "n^-n^š" , "n^-n^ž" , "n^-n^šw" , "n^-n^žw" , "n^-n^c^’" , "n^-n^c^h" , "n^-n^c^’w" , "n^-n^c^hw" } ,

{ "l-lš" , "l-lž" , "l-lšw" , "l-lžw" , "l-lc^’" , "l-lc^h" , "l-lc^’w" , "l-lc^hw" } ,

{ "r-rš" , "r-rž" , "r-ršw" , "r-ržw" , "r-rc^’" , "r-rc^h" , "r-rc^’w" , "r-rc^hw" } ,

{ "n-nļ" , "m-mļ" , "n^-n^ļ" , "n-ntļ" , "m-mtļ" , "n^-n^tļ" , "l-ltļ" , "r-rtļ" } ,

{ "l-lm" , "l-lļ" , "n-nl" , "n^-n^m" , "m-mř" , "m-mt" , "n^-n^t" , "n^-n^n" } ,

{ "r-rm" , "r-rl" , "m-ml" , "m-mn" , "r-mř" , "m-mt’" , "n^-n^t’" , "n^-n^ç" } ,

{ "l-ln" , "l-nļ" , "l-lř" , "n-nm" , "n^-n^ř" , "m-mth" , "n^-n^th" , "n^-n^ţ" } ,

{ "l-nw" , "l-ny" , "l-lg" , "l-lgw" , "l-lx" , "l-lxw" , "l-lv" , "l-lcw" } ,

{ "r-nw" , "r-my" , "r-rg" , "r-rgw" , "r-rx" , "r-rxw" , "r-rv" , "r-rcw" } ,

{ "l-mw" , "l-my" , "l-lb" , "l-lbw" , "l-lf" , "l-lfw" , "l-n^w" , "l-lc^w" } ,

{ "r-mw" , "r-ny" , "r-rb" , "r-rbw" , "r-rf" , "r-rfw" , "r-n^w" , "r-rc^w" }

} ;

String [ ] cb = { //NB glottal stop " ’ " not used in adjunct

"n" , "nn" , "m" , "mm" , "n^" , "n^n^" , "ţ" , "ţţ" , "ç" , "çç" , "s" , "ss" , "z" , "zz" , "š" , "šš" , "l" ,

"ll" , "r" , "rr" , "ř" , "řř" , "ļ" , "ļļ" , "kç" , "kçç" , "pļ" , "pļļ" , "pç" , "pçç" , "x" , "xx" , "xh" ,

"xxh" , "ks" , "kss" , "f" , "ff" , "kš" , "kšš" , "kf" , "kff" , "pš" , "pšš" , "ps" , "pss" , "pf" , "pff"

} ;

String [ ] vm = { //Modality

"a" , "u" , "e" , "o" , "i" , "ö" , "î/û" , "â" , "ê" , "ô" , "ü/oe" , "ai" , "ei" , "ui" , "oi" , "iu" , "au" , "eu" ,

"ou" , "ae" , "ia/ua" , "ie/ue" , "io/uo" , "iö/uö" , "ea" , "oa" , "öi/ië" , "öu/uë" , "eo" , "ëi" , "ëu"

} ;

String [ ] ve = { //Level

"ë" , "a" , "u" , "i" , "o" , "e" , "ai" , "ui" , "ei" , "oi" ,

"â" , "û/î" , "ö" , "ô" , "ê" , "au" , "iu" , "eu" , "ou"

} ;

String [ ] vcc = { //Comparison Case

"aì" , "eì" , "oì" , "uì" , "aù" , "eù" , "où" , "iù" , "ao" , "aü" , "eü" , "oü" , "ëì" , "öì" ,

"ëù" , "öù" , "eai" , "oai" , "eau" , "oau" , "uai/iau" , "uei/ieu" , "oi/iou" , "uëi/iëu"

} ;

String [ ] vs = { //Adjunct Aspect

"a" , "u" , "e" , "o" , "i" , "ö" , "î/û" , "â" , "ê" , "ô" , "ü/oe" , "ai" , "ei" , "ui" , "oi" , "iu" , "au" , "eu" , "ou" ,

"ae" , "ia/ua" , "ie/ue" , "io/uo" , "iù/uì" , "iö/uö" , "ea" , "oa" , "eö" , "öi/öa" , "öu/öe" , "eo" , "ëi" , "ëu"

} ;

String [ ] [ ] vxc = { //[suffix degree][type 1,2,3]

{ "i" , "iu/ua" , "ie" } ,

{ "ö" , "au/oa" , "iö" } ,

{ "e" , "ê" , "io" } ,

{ "î/uë" , "eu/oe" , "oi/öa" } ,

{ "(a)" , "â" , "üa/uì/iù" } ,

{ "û/ië" , "ei/eo" , "ou/öe" } ,

{ "o" , "ô" , "uo" } ,

{ "ü" , "ai/ea" , "uö" } ,

{ "u" , "ia/ui" , "ue" }

} ;

String [ ] consonant = { //if need to enter roots, suffixes, transliterations

"p" , "b" , "ph" , "p’" , "m" , "w" , "f" , "v" , "t" , "d" , "th" , "t’" , "ţ" , "dh" , "n" , "c" , "ż" , "ch" , "c’" , "s" , "z" , "r" ,

"c^" , "j" , "c^h" , "c^’" , "š" , "ž" , "ç" , "y" , "k" , "g" , "kh" , "k’" , "x" , "n^" , "q" , "qh" , "q’" , "xh" , "ř" , "h" , "ļ" , "l"

} ;

/*

//personal reference adjunct morphology

String[] c1 = {

"-ç","-r","-ç","-r","l","-l""v","-v","ř","-ř","q","xh","-q","-xh","t","ţ","n","-ţ","-n","-t","k","p",

"x","n^","f","m","-k","-p","-x","-n^","-f","-m","s","š","h","z","ļ","ž","-s","-š","-h","-z","-ļ","-ž"

};

String[][] vccz = {

{"a","u","e","o","ö","i","ü","ai","ei","ui","oi","â","î","ê","ô","ëi","öi","û","ia","ie","io","iö","ua",

"ue","uo","uö","ea","eo","eö","oa","oe","öa","öe","üa","üe","üo","aì","eì","oì","uì","öì","ëì","au","eu",

"ou","iu","öu","ëu","a","u","e","o","ö","i","ü","ai","ei","ui","oi","â","î","ê","ô","ëi","öi","û","ia",

"ie","io","iö","ua","ue","uo","uö","ea","eo","eö","oa","oe","öa","öe","üa","üe","üo","aì","eì","oì","uì",

"öì","ëì","au","eu","ou","iu","öu","ëu"},

{"aw","uw","ew","ow","öw","iw","üw","aiw","eiw","uiw","oiw","âw","îw","êw","ôw","ëiw","öiw","aew","iaw",

"iew","iow","iöw","uaw","uew","uow","uöw","eaw","eow","eöw","oaw","oew","öaw","öew","üaw","üew","üow",

"aìw","eìw","oìw","uìw","öìw","ëìw","aùw","eùw","oùw","iùw","öùw","ëùw","ay","uy","ey","oy","öy","iy",

"üy","auy","euy","iuy","ouy","ây","aey","êy","ôy","ëuy","öuy","ûy","iay","iey","ioy","iöy","uay","uey",

"uoy","uöy","eay","eoy","eöy","oay","oey","öay","öey","üay","üey","üoy","aìy","eìy","oìy","uìy","öìy",

"ëìy","aùy","eùy","oùy","iùy","öùy","ëùy"}

};

String[][] cz = {

{"w","’w","h","hw"},

{"y","’y","’","’h"}

};

String[] vz = {"a","u/i","e","o","ö","ü","ai/au","ei/eu","oi/iu"};

String[] vw = {"ö","e","a","ü","o","e","u","ë"};

String[] c2 = {"h","w","y","hw"};

String[][] ck = {//Taken from Adjuncts: table 34, see for details

{"qh","gř","çq’","qr","ql","gn","qn","qm","çqh","çq","qţ","qf","šq’","qw","sq’","šq","c^’","sq","q’","g","d",""},

{"th","tř","çt’","tr","tl","t’","tn","tm","çth","çt","dh","tf","j","tw","ż","c^","c’","c","ph","kh","",""},

{"tx","kř","çk’","kr","kl","k’","kn","km","çkh","çk","kţ","kf","gž","kw","gz","kš","tļ","ks","b","","",""},

{"px","př","çp’","pr","pl","p’","pn","pm","çph","çp","pţ","pf","bž","pw","bz","pš","pļ","ps","","","",""},

{"","sř","st","sr","sl","sň","sn","sm","sxh","sx","","sf","","sw","","","","","","","",""},

{"","ļkh","ļth","ļt’","ļļ","ļk’","ļt","ļp","ļq","ļk","","ch","","ļw","","","","","","","",""},

{"","šř","çw","šr","šl","šň","šn","šm","šxh","šx","šţ","šf","","šw","","","","","","","",""},

{"","skh","sk’","zr","zl","zg","","zm","ss","sk","","sp","","zw","","","","","","","",""},

{"šph","vř","šp’","vr","vl","dn","vn","vm","žb","zb","sţ","bm","vv","","","","","","","","",""},

{"","škh","šk’","žr","žl","žg","žn","žm","šš","šk","št","šp","","","","","","","","","",""},

{"sph","fř","sp’","fr","fl","bl","br","bv","pç","ţţ","bdh","","","","","","","","","","",""},

{"","ţř","st’","ţr","ţl","dl","dr","dv","gdh","ţk","","","","","","","","","","","",""},

{"xx","sqh","rr","xr","xl","gv","xn","xm","c^h","","","","","","","","","","","","",""},

{"xxh","šqh","řř","xhr","xhl","gr","xhn","xhm","","","","","","","","","","","","","",""},

{"hm","mř","çm","mr","ml","n^n^","mm","","","","","","","","","","","","","","",""},

{"hn","nř","çn","nr","nl","nn","","","","","","","","","","","","","","","",""},

{"hn","zn","št’","n^r","n^l","","","","","","","","","","","","","","","","",""},

{"hl","sth","cl","ll","","","","","","","","","","","","","","","","","",""},

{"hr","šth","cr","","","","","","","","","","","","","","","","","","",""},

{"çç","zz","","","","","","","","","","","","","","","","","","","",""},

{"žž","","","","","","","","","","","","","","","","","","","","",""}

};

*/

String output = new String ( ) ;

if ( s [ 21 ] + s [ 20 ] > 0 ) //if level or modality, OR if aspect and validation, have to use adjunct

output += ve [ s [ 21 ] ] + "h" + vm [ s [ 20 ] ] + "n-n " ;

//if(s[16]+s[15]>1)//if aspect and validation, have to show aspect on adjunct

if ( s [ 14 ] != 0 ) //version non-default

output += tone [ s [ 14 ] ] ;

if ( s [ 11 ] + s [ 12 ] + s [ 13 ] > 0 ) //if phase, sanction, valence [could go in slot 5&6 if no valid/asp/incorp]

output += cv [ 0 ] [ s [ 11 ] ] [ s [ 12 ] ] + vl [ s [ 13 ] ] ;

if ( s [ 15 ] != 0 ) //if validation

output += cg [ s [ 15 ] ] ;

else if ( s [ 11 ] + s [ 12 ] + s [ 13 ] + s [ 16 ] > 0 ) //if phase, sanction, valence or aspect - need to fill in slot 3

output += cs [ s [ 16 ] ] [ 0 ] ;

output += vr [ s [ 7 ] ] [ s [ 24 ] ] ;

if ( s [ 23 ] != 0 ) { //if incorp root

System . out . printf ( "Incorporated root:

" ) ;

String [ ] [ ] m = {

{ "Function" , "STA" , "DYN" , "MNF" , "DSC" } ,

{ "Pattern&Stem" , "P1S1" , "P1S2" , "P1S3" , "P2S1" , "P2S2" , "P2S3" , "P3S1" , "P3S2" , "P3S3" }

} ;

output += "’" + "kš" + vr [ object4. select ( m [ 0 ] ) - 1 ] [ object4. select ( m [ 1 ] ) - 1 ] ; //asks for incorp root function,Pattern&Stem

}

output += "ph" ;

if ( s [ 22 ] != 0 ) //if there's a Comparison case (otherwise, use Case)

output += vcc [ s [ 22 ] ] ;

else output += vc [ s [ 6 ] ] ;

if ( s [ 9 ] != 0 || s [ 10 ] != 0 ) { //if mood or illocution

output += civi [ s [ 10 ] ] [ s [ 9 ] ] ;

// Vc/CiVi diphthong interaction

}

output += ca [ 6 * s [ 1 ] + s [ 2 ] ] [ 4 * s [ 3 ] + s [ 4 ] ] [ s [ 5 ] ] ;

if ( s [ 25 ] != 0 ) //if suffix

output += vxc [ s [ 25 ] ] [ s [ 26 ] ] + "x" ;

if ( s [ 23 ] != 0 || s [ 8 ] != 0 ) //if incorp root or a non-default context

output += vf [ s [ 8 ] ] [ s [ 19 ] ] ;

else if ( s [ 17 ] != 0 ) //non default bias

output += "a’" + cb [ s [ 17 ] ] ;

if ( s [ 17 ] != 0 ) //non default bias and Vf already present

output += "’" + cb [ s [ 17 ] ] ;

if ( s [ 18 ] != 0 || s [ 27 ] != 0 ) //if framed or formal

output += " " + stress [ s [ 18 ] ] [ s [ 27 ] ] ;

System . out . printf ( "



" ) ;

object4. printtotxt ( output ) ;

System . out . printf ( "



" ) ;

//Notifies user of other possible combinations

if ( s [ 6 ] > 50 && s [ 6 ] < 72 )

object4. printtotxt ( " \" V \" can be either \" a \" or Vr



" ) ;

if ( s [ 11 ] + s [ 12 ] + s [ 13 ] > 0 && s [ 23 ] == 0 ) //if phase, sanction, valence Cv in slot 1&2 and no incorp root

object4. printtotxt ( cv [ 0 ] [ s [ 11 ] ] [ s [ 12 ] ] + vl [ s [ 13 ] ] + " can be shown instead between Vr (’) and Cr

" ) ;

if ( s [ 11 ] + s [ 12 ] + s [ 13 ] > 0 ) { //if phase, sanction or valence Cv in slot 1&2

object4. printtotxt ( cv [ 0 ] [ s [ 11 ] ] [ s [ 12 ] ] + vl [ s [ 13 ] ] + " can be shown instead on adjunct before Vm as " ) ;

if ( s [ 13 ] != 0 )

object4. printtotxt ( cg [ s [ 13 ] - 1 ] + ve [ s [ 21 ] ] + cv [ 0 ] [ s [ 11 ] ] [ s [ 12 ] ] + "

" ) ;

else object4. printtotxt ( ve [ s [ 21 ] ] + cv [ 0 ] [ s [ 11 ] ] [ s [ 12 ] ] + "

" ) ;

}

if ( s [ 10 ] != 0 ) //if Illocution

object4. printtotxt ( "Can show Cv " + cv [ 0 ] [ s [ 11 ] ] [ s [ 12 ] ] + " as " + cv [ s [ 10 ] ] [ s [ 11 ] ] [ s [ 12 ] ] + " " ) ;

if ( s [ 9 ] != 0 ) //if Mood

object4. printtotxt ( "Can show " + cs [ s [ 16 ] ] [ 0 ] + " as " + cs [ s [ 16 ] ] [ s [ 9 ] ] + " " ) ;

if ( s [ 9 ] != 0 ^ s [ 10 ] != 0 ) //if Illoc XOR Mood but not both

object4. printtotxt ( "leaving CiVi " + civi [ s [ 10 ] ] [ s [ 9 ] ] + " as

" ) ;

if ( s [ 2 ] != 0 ) //if Extension

object4. printtotxt ( "Can show extension as tone " + tone [ s [ 2 ] ] + " on adjunct leaving Ca as " + ca [ 6 * s [ 1 ] ] [ 4 * s [ 3 ] + s [ 4 ] ] [ s [ 5 ] ] + "

" ) ;

if ( s [ 16 ] != 0 ) //if Aspect

object4. printtotxt ( "Can show aspect " + cs [ s [ 16 ] ] [ s [ 9 ] ] + " as self-standing adjunct " + vs [ s [ 16 ] ] + "

" ) ;

if ( s [ 17 ] != 0 ) //if Bias

object4. printtotxt ( "Can show bias on adjunct after Vs as " + cb [ s [ 17 ] ] + "

" ) ;

if ( s [ 26 ] != 0 && s [ 26 ] != 3 ) //if suffix type 1 or 2

object4. printtotxt ( "Can show suffix " + vxc [ s [ 25 ] ] [ s [ 26 ] ] + "x as self-standing adjunct

" ) ;

System . out . printf ( "



" ) ;

}