0001 #include "Trie.HC";
0002 //-ne after the first word means question
0003 //-que means and
0004 #define NOMITIVE (1)
0005 #define GENITIVE (1<<1)
0006 #define DATIVE (1<<2)
0007 #define ACCUSATIVE (1<<3)
0008 #define ABLATIVE (1<<4)
0009 #define SINGULAR (1<<5)
0010 #define PLURAL (1<<6)
0011 #define MASCULINE (1<<7)
0012 #define FEMININE (1<<8)
0013 #define INFINITIVE (1<<9)
0014 #define _1P (1<<10)
0015 #define _2P (1<<11)
0016 #define _3P (1<<12)
0017 #define IMPERFECT (1<<13)
0018 #define FUTURE (1<<14)
0019 #define CONJUNCTION (1<<15)
0020 #define VERB (1<<16)
0021 #define NOUN (1<<17)
0022 #define ADJECTIVE (1<<18)
0023 #define INFINITIVE (1<<19)
0024 #define PRONOUN (1<<20)
0025 #define REFLEXIVE (1<<21) //Himself
0026 #define POSSESIVE (1<<22) //My
0027 #define DEMONSTRATIVE (1<<23) //That
0028 #define INTEROGITIVE (1<<24) //Who
0029 #define NEUTER (1<<25)
0030 #define RELATIVE (1<<26)
0031 #define PREPOSITION (1<<27)
0032 #define ADVERB (1<<28)
0033 #define PERFECT (1<<29)
0034 #define PLUPERFECT (1<<30)
0035 #define SUBJUNCTIVE (1<<31)
0036 //No declensions (like numbers that dont decline)
0037 #define INDECLINABLE (1<<32)
0038 #define PRESENT (1<<33)
0039 #define PASSIVE (1<<34)
0040 #define IMPERATIVE (1<<35)
0041 #define PARTICIPLE (1<<36)
0042 #define GERUND (1<<37)
0043 #define COMPARATIVE (1<<38)
0044 #define SUPERLATIVE (1<<39)
0045 #define PARTICLE (1<<40)
0046 #define CONJUNCTION2 (1<<41) //dixeque Words ending in -que
0047 #define IS (1<<42) //Words like sum
0048 #define DETIRMINER (1<<43) //things *that* are green 
0049 #define DECLENSION1 (1<<44)
0050 #define DECLENSION2 (1<<45)
0051 #define DECLENSION3 (1<<46)
0052 #define DECLENSION4 (1<<47)
0053 #define DECLENSION5 (1<<48)
0054 #define CONJUGATION1 (1<<49)
0055 #define CONJUGATION2 (1<<50)
0056 #define CONJUGATION3 (1<<51)
0057 #define CONJUGATION4 (1<<52)
0058 #define CONJUGATION5 (1<<53)
0059 #define INTRANSITIVE (1<<54)
0060 class CDeclension:CQue {
0061   I64 flags;
0062   U64 set;
0063   U8 *str;
0064 };
0065 CDeclension declensions;
0066 CDeclension AddDeclension(U8 *declen,I64 flags,U64 set) {
0067   CDeclension *d=CAlloc(sizeof CDeclension);
0068   if(flags&VERB) {
0069     if(set.u8[0]=='1')
0070       flags|=CONJUGATION1; 
0071     if(set.u8[0]=='2')
0072       flags|=CONJUGATION2;
0073     if(set.u8[0]=='3')
0074       flags|=CONJUGATION3;
0075     if(set.u8[0]=='4')
0076       flags|=CONJUGATION4;
0077   } else {
0078     if(set.u8[0]=='1')
0079       flags|=DECLENSION1;
0080     if(set.u8[0]=='2')
0081       flags|=DECLENSION2;
0082     if(set.u8[0]=='3')
0083       flags|=DECLENSION3;
0084     if(set.u8[0]=='4')
0085       flags|=DECLENSION4;
0086     if(set.u8[0]=='5')
0087       flags|=DECLENSION5;
0088   }
0089   d->flags=flags;
0090   d->set=set;
0091   d->str=StrNew(declen);
0092   QueIns(d,&declensions);
0093   return d;
0094 }
0095 Bool EndsWith(U8 *a,U8 *with) {
0096   if(StrLen(with)>StrLen(a)) return FALSE;
0097   return !StrCmp(with,a+StrLen(a)-StrLen(with));
0098 }
0099 
0100 Bool IsOfDelcensionSet(U8 *str,U64 set,I64 flags) {
0101   CDeclension *d,*head=&declensions;
0102   for(d=head->next;head!=d;d=d->next)
0103     if(d->set==set&&d->flags&flags==flags)
0104       if(EndsWith(str,d->str)&&StrLen(d->str)) //Empty endings are speacial
0105         return TRUE;
0106   return FALSE;
0107 }
0108 
0109 I64 GetTrimLength(U8 *str,U64 set,I64 flags=0,I64 anti_flags=0) {
0110   CDeclension *d,*head=&declensions;
0111   I64 t=0;
0112   for(d=head->next;head!=d;d=d->next) {
0113     if(d->set==set&&d->flags&flags==flags&&!(d->flags&anti_flags)) {
0114       if(EndsWith(str,d->str))
0115         t=MaxI64(StrLen(d->str),t);
0116     }
0117   }
0118   return t;
0119 }
0120 
0121 //Consult your local Latin dictionary for this one
0122 U0 _AddWordByPrincibleParts(U8 *translation=NULL,I64 add_flags,I64 flags,I64 argc,U8 **argv) {
0123   CDeclension *d=declensions.next,*head=&declensions,*d2;
0124   U64 valid_classes[0x80];
0125   U8 *base,*word,*word2;
0126   I64 i,part,valid_cls_cnt=0,i2,trim;
0127   U8 *dummy_argv[2];
0128   for(d=head->next;d!=head;d=d->next) {
0129     if(!StrLen(d->str)) {
0130       part=0;
0131       goto check;
0132     } else if(d->set=='2v'
0133           ||d->set=='1v'
0134           ||d->set=='3v'
0135           ||d->set='3iov'
0136           ||d->set=='4v'
0137     ) {
0138       if(d->flags&(PERFECT|PLUPERFECT))
0139         part=2;
0140       else if(d->flags&(_1P|SINGULAR)==(_1P|SINGULAR))
0141         part=0;
0142       else
0143         part=1;
0144       goto check;
0145     } else if(d->set=='adj12'
0146           ||d->set=='adj3'
0147           ||d->set=='1d'
0148           ||d->set=='2n'
0149           ||d->set=='2mfd'
0150           ||d->set=='3nd'
0151           ||d->set=='3mfd'
0152           ||d->set=='4mfd'
0153           ||d->set=='4nd'
0154           ||d->set=='5mfd'
0155     ) {
0156       if(d->flags&(NOMITIVE|SINGULAR)==(NOMITIVE|SINGULAR))
0157         part=0;
0158       else
0159         part=1;
0160       goto check;
0161     } else {
0162       part=0;
0163 check:
0164       if(part<argc)
0165         if(EndsWith(argv[part],d->str)&&(d->flags&flags==flags)) {
0166           for(i2=0;i2!=valid_cls_cnt;i2++) {
0167             if(valid_classes[i2]==d->set)
0168               goto pass;
0169           }
0170 //Check that all endings are in the delcension(except for first one as it may be special)
0171           for(i2=1;i2<argc;i2++)
0172             if(!IsOfDelcensionSet(argv[i2],d->set,flags))
0173               goto pass;
0174           valid_classes[valid_cls_cnt++]=d->set;
0175 pass:;
0176         }
0177     }
0178   }
0179   for(d=head->next;d!=head;d=d->next) {
0180     for(i2=0;i2!=valid_cls_cnt;i2++) {
0181       if(valid_classes[i2]==d->set) {
0182         if(!StrLen(d->str)) {
0183           trim=0;
0184           part=0;
0185         } else if(d->set=='2v'
0186               ||d->set=='1v'
0187               ||d->set=='3v'
0188               ||d->set=='3iov'
0189               ||d->set=='4v') {
0190           if(d->flags&(PERFECT|PLUPERFECT)) {
0191             part=2;
0192             if(part<argc)
0193               trim=MaxI64(
0194                     GetTrimLength(argv[part],valid_classes[i2],PERFECT),
0195                     GetTrimLength(argv[part],valid_classes[i2],PLUPERFECT)
0196               );
0197           } else if(d->flags&(_1P|SINGULAR)==(_1P|SINGULAR)) {
0198             part=0;
0199             if(part<argc)
0200               trim=GetTrimLength(argv[part],valid_classes[i2],_1P|SINGULAR,PERFECT|PLUPERFECT);
0201           } else {
0202             part=1;
0203             if(part<argc)
0204               trim=GetTrimLength(argv[part],valid_classes[i2],,PERFECT|PLUPERFECT);
0205           }
0206         } else if(d->set=='adj12'||d->set=='adj3'
0207               ||d->set=='adj3'
0208               ||d->set=='1d'
0209               ||d->set=='2n'
0210               ||d->set=='2mfd'
0211               ||d->set=='3nd'
0212               ||d->set=='3mfd'
0213               ||d->set=='4mfd'
0214               ||d->set=='4nd'
0215               ||d->set=='5mfd') {
0216           if(d->flags&(NOMITIVE|SINGULAR)==(NOMITIVE|SINGULAR))
0217             trim=part=0;
0218           else {
0219             part=1;
0220             trim=GetTrimLength(argv[part],valid_classes[i2]);
0221           }
0222         } else {
0223           part=0;
0224           trim=GetTrimLength(argv[part],valid_classes[i2]);
0225         }
0226         if(part<argc) {
0227           base=StrNew(argv[part]);
0228           base[StrLen(base)-trim]=0;
0229           word=MStrPrint("%s%s",base,d->str);
0230           TrieAdd(word,d->flags|add_flags,translation)->front_declension=StrNew(d->str);
0231           Free(base),Free(word);
0232         }
0233 
0234       }
0235     }
0236   }
0237   for(i2=0;i2!=valid_cls_cnt;i2++) {
0238 //Handle participles here,they act like adjectives
0239     if(valid_classes[i2]=='1v'&&2<argc) {
0240       part=2;
0241       base=StrNew(argv[part]);
0242       trim=GetTrimLength(argv[part],valid_classes[i2]);
0243       base[StrLen(base)-trim]=0;
0244       word=MStrPrint("%sans",base);
0245       word2=MStrPrint("%santis",base);
0246 //Participles are like adjectives
0247       dummy_argv[0]=word,dummy_argv[1]=word2;
0248       _AddWordByPrincibleParts(translation,PARTICIPLE,ADJECTIVE,2,dummy_argv);
0249       Free(word);
0250       word=MStrPrint("%surus",base);
0251       dummy_argv[0]=word;
0252       _AddWordByPrincibleParts(translation,PARTICIPLE,ADJECTIVE,1,dummy_argv);
0253       Free(base),Free(word),Free(word2);
0254     }
0255     if((valid_classes[i2]=='2v'||valid_classes[i2]=='3v'||valid_classes[i2]=='4v')&&2<argc) {
0256       part=2;
0257       base=StrNew(argv[part]);
0258       trim=GetTrimLength(argv[part],valid_classes[i2]);
0259       base[StrLen(base)-trim]=0;
0260       word=MStrPrint("%sens",base);
0261       word2=MStrPrint("%sentis",base);
0262       dummy_argv[0]=word,dummy_argv[1]=word2;
0263       _AddWordByPrincibleParts(translation,PARTICIPLE,ADJECTIVE,2,dummy_argv);
0264       Free(word);
0265       word=MStrPrint("%surus",base);
0266       dummy_argv[0]=word;
0267       _AddWordByPrincibleParts(translation,PARTICIPLE,ADJECTIVE,1,dummy_argv);
0268       Free(base),Free(word),Free(word2);
0269 
0270     }
0271     if(valid_classes[i2]=='3iov'&&2<argc) {
0272       part=2;
0273       base=StrNew(argv[part]);
0274       trim=GetTrimLength(argv[part],valid_classes[i2]);
0275       base[StrLen(base)-trim]=0;
0276       word=MStrPrint("%isens",base);
0277       word2=MStrPrint("%sientis",base);
0278       dummy_argv[0]=word,dummy_argv[1]=word2;
0279       _AddWordByPrincibleParts(translation,PARTICIPLE,ADJECTIVE,2,dummy_argv);
0280       Free(word);
0281       word=MStrPrint("%surus",base);
0282       dummy_argv[0]=word;
0283       _AddWordByPrincibleParts(translation,PARTICIPLE,ADJECTIVE,1,dummy_argv);
0284       Free(base),Free(word),Free(word2);
0285     }
0286     if(!(add_flags&(COMPARATIVE|SUPERLATIVE))) {
0287       if(valid_classes[i2]=='adj12'||valid_classes[i2]=='adj3') {
0288 //Adjectives comparative
0289         if(1<argc) {
0290           part=1;
0291           base=StrNew(argv[part]);
0292           trim=GetTrimLength(argv[part],valid_classes[i2]);
0293           base[StrLen(base)-trim]=0;
0294           word=MStrPrint("%sior",base);
0295           word2=MStrPrint("%sioris",base);
0296           dummy_argv[0]=word,dummy_argv[1]=word2;
0297           _AddWordByPrincibleParts(translation,COMPARATIVE,ADJECTIVE,2,dummy_argv);
0298           Free(base),Free(word),Free(word2);
0299         }
0300 //http://www.thelatinlibrary.com/101/AdjComp.pdf
0301         //Superlative
0302         if(1<argc&&EndsWith(argv[0],"er")) {
0303           part=1;
0304           base=StrNew(argv[part]);
0305           trim=2;
0306           base[StrLen(base)-trim]=0;
0307           word=MStrPrint("%srimus",base);
0308           word2=MStrPrint("%srima",base); 
0309           dummy_argv[0]=word,dummy_argv[1]=word2;
0310           _AddWordByPrincibleParts(translation,SUPERLATIVE,ADJECTIVE,2,dummy_argv);
0311           Free(base),Free(word),Free(word2);
0312         } else if(1<argc&&EndsWith(argv[0],"ilis")) {
0313           part=1;
0314           base=StrNew(argv[part]);
0315           trim=4;
0316           base[StrLen(base)-trim]=0;
0317           word=MStrPrint("%slimus",base);
0318           word2=MStrPrint("%slima",base); 
0319           dummy_argv[0]=word,dummy_argv[1]=word2;
0320           _AddWordByPrincibleParts(translation,SUPERLATIVE,ADJECTIVE,2,dummy_argv);
0321           Free(base),Free(word),Free(word2);
0322         } else {
0323           part=1;
0324           base=StrNew(argv[part]);
0325           trim=GetTrimLength(argv[part],valid_classes[i2]);
0326           base[StrLen(base)-trim]=0;
0327           word=MStrPrint("%ssimus",base);
0328           word2=MStrPrint("%ssimma",base);
0329           dummy_argv[0]=word,dummy_argv[1]=word2;
0330           _AddWordByPrincibleParts(translation,SUPERLATIVE,ADJECTIVE,2,dummy_argv);
0331           Free(base),Free(word),Free(word2);
0332         }
0333       }
0334     }
0335   }
0336 }
0337 
0338 U0 AddWordByPrincibleParts(U8 *translation=NULL,I64 flags,...) {
0339   _AddWordByPrincibleParts(translation,0,flags,argc,argv);
0340 }
0341 
0342 CFifoI64 *DelcensionsForFlags(I64 flags,U64 set) {
0343   CFifoI64 *ret=FifoI64New(0x20);
0344   CDeclension *d,*head=&declensions;
0345   for(d=head->next;head!=d;d=d->next)
0346     if(d->set==set&&d->flags&flags==flags)
0347       FifoI64Ins(ret,d);
0348   return ret;
0349 }
0350 
0351 U0 PrintDelcensForFlags(U8 *base,I64 flags,U64 set) {
0352   CFifoI64 *declens=DelcensionsForFlags(flags,set);
0353   CDeclension *d;
0354   Bool first=TRUE;
0355   while(FifoI64Rem(declens,&d)) {
0356     if(!first) "/";
0357     "%s%s",base,d->str;
0358     first=FALSE;
0359   }
0360   FifoI64Del(declens);
0361 }
0362 CDeclension *DeclensionForWord(I64 flags,CTrie *w) {
0363   I64 mask=DECLENSION1|DECLENSION2|DECLENSION3|DECLENSION4|DECLENSION5|
0364         NOUN|VERB|ADJECTIVE|CONJUGATION1|
0365         CONJUGATION2|
0366         CONJUGATION3|
0367         CONJUGATION4;
0368   CDeclension *d,*head=&declensions,*d2;
0369   for(d=head->next;d!=head;d=d->next) {
0370     if(EndsWith(w->str,d->str)) {
0371       if(mask&d->flags) {
0372         w->front_declension=d->str;
0373         return d;
0374       }
0375     }
0376   }
0377   return NULL;
0378 }
0379 
0380 
0381 U0 InitLatin() {
0382   QueInit(&declensions);
0383   I64 iter=0,cls;
0384 //1St Delcnesion 
0385   AddDeclension("a",SINGULAR|NOMITIVE|MASCULINE|FEMININE|NOUN,'1d');
0386   AddDeclension("ae",PLURAL|NEUTER|MASCULINE|FEMININE|NOUN|NOMITIVE,'1d');
0387   AddDeclension("ae",SINGULAR|GENITIVE|MASCULINE|FEMININE|NOUN,'1d');
0388   AddDeclension("arum",PLURAL|GENITIVE|MASCULINE|FEMININE|NOUN,'1d');
0389   AddDeclension("ae",SINGULAR|DATIVE|MASCULINE|FEMININE|NOUN,'1d');
0390   AddDeclension("is",PLURAL|DATIVE|MASCULINE|FEMININE|NOUN,'1d');
0391   AddDeclension("am",SINGULAR|ACCUSATIVE|MASCULINE|FEMININE|NOUN,'1d');
0392   AddDeclension("as",PLURAL|ACCUSATIVE|MASCULINE|FEMININE|NOUN,'1d');
0393   AddDeclension("a",SINGULAR|ABLATIVE|MASCULINE|FEMININE|NOUN,'1d');
0394   AddDeclension("is",PLURAL|ABLATIVE|MASCULINE|FEMININE|NOUN,'1d');
0395 //2nd declennsion M/F us
0396   AddDeclension("",SINGULAR|NOMITIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0397   AddDeclension("us",SINGULAR|NOMITIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0398   AddDeclension("i",PLURAL|NOMITIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0399   AddDeclension("i",SINGULAR|GENITIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0400   AddDeclension("orum",PLURAL|GENITIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0401   AddDeclension("o",SINGULAR|DATIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0402   AddDeclension("is",PLURAL|DATIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0403   AddDeclension("um",SINGULAR|ACCUSATIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0404   AddDeclension("os",PLURAL|ACCUSATIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0405   AddDeclension("o",SINGULAR|ABLATIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0406   AddDeclension("is",PLURAL|ABLATIVE|MASCULINE|FEMININE|NOUN,'2mfd');
0407 //2nd declennsion N
0408   AddDeclension("",SINGULAR|NOMITIVE|NEUTER|NOUN,'2mfd');
0409   AddDeclension("er",SINGULAR|NOMITIVE|NEUTER|NOUN,'2nd');
0410   AddDeclension("i",PLURAL|NOMITIVE|NEUTER|NOUN,'2nd');
0411   AddDeclension("i",SINGULAR|GENITIVE|NEUTER|NOUN,'2nd');
0412   AddDeclension("orum",PLURAL|GENITIVE|NEUTER|NOUN,'2nd');
0413   AddDeclension("o",SINGULAR|DATIVE|NEUTER|NOUN,'2nd');
0414   AddDeclension("is",PLURAL|DATIVE|NEUTER|NOUN,'2nd');
0415   AddDeclension("um",SINGULAR|ACCUSATIVE|NEUTER|NOUN,'2nd');
0416   AddDeclension("os",PLURAL|ACCUSATIVE|NEUTER|NOUN,'2nd');
0417   AddDeclension("o",SINGULAR|ABLATIVE|NEUTER|NOUN,'2nd');
0418   AddDeclension("is",PLURAL|ABLATIVE|NEUTER|NOUN,'2nd');
0419 //3rd declension nouns M
0420   AddDeclension("",SINGULAR|NOMITIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0421   AddDeclension("es",PLURAL|NOMITIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0422   AddDeclension("is",SINGULAR|GENITIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0423   AddDeclension("um",PLURAL|GENITIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0424   AddDeclension("i",SINGULAR|DATIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0425   AddDeclension("ibus",PLURAL|DATIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0426   AddDeclension("em",SINGULAR|ACCUSATIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0427   AddDeclension("es",PLURAL|ACCUSATIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0428   AddDeclension("e",SINGULAR|ABLATIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0429   AddDeclension("ibus",PLURAL|ABLATIVE|MASCULINE|FEMININE|NOUN,'3mfd');
0430 //3rd declension Neuter
0431   AddDeclension("",SINGULAR|NOMITIVE|NEUTER|NOUN,'3nd');
0432   AddDeclension("a",PLURAL|NOMITIVE|NEUTER|NOUN,'3nd');
0433   AddDeclension("ia",PLURAL|NOMITIVE|NEUTER|NOUN,'3nd');
0434   AddDeclension("is",SINGULAR|GENITIVE|NEUTER|NOUN,'3nd');
0435   AddDeclension("um",PLURAL|GENITIVE|NEUTER|NOUN,'3nd');
0436   AddDeclension("ium",PLURAL|GENITIVE|NEUTER|NOUN,'3nd');
0437   AddDeclension("i",SINGULAR|DATIVE|NEUTER|NOUN,'3nd');
0438   AddDeclension("ibus",PLURAL|DATIVE|NEUTER|NOUN,'3nd');
0439   AddDeclension("",SINGULAR|ACCUSATIVE|NEUTER|NOUN,'3nd');
0440   AddDeclension("a",PLURAL|ACCUSATIVE|NEUTER|NOUN,'3nd');
0441   AddDeclension("ia",PLURAL|ACCUSATIVE|NEUTER|NOUN,'3nd');
0442   AddDeclension("e",SINGULAR|ABLATIVE|NEUTER|NOUN,'3nd');
0443   AddDeclension("i",SINGULAR|ABLATIVE|NEUTER|NOUN,'3nd');
0444   AddDeclension("ibus",PLURAL|ABLATIVE|NEUTER|NOUN,'3nd');
0445 //4th declension M/F
0446   AddDeclension("",SINGULAR|NOMITIVE|NEUTER|NOUN,'4mfd');
0447   AddDeclension("us",PLURAL|NOMITIVE|NEUTER|NOUN,'4mfd');
0448   AddDeclension("us",SINGULAR|GENITIVE|NEUTER|NOUN,'4mfd');
0449   AddDeclension("uum",PLURAL|GENITIVE|NEUTER|NOUN,'4mfd');
0450   AddDeclension("ui",SINGULAR|DATIVE|NEUTER|NOUN,'4mfd');
0451   AddDeclension("ibus",PLURAL|DATIVE|NEUTER|NOUN,'4mfd');
0452   AddDeclension("um",SINGULAR|ACCUSATIVE|NEUTER|NOUN,'4mfd');
0453   AddDeclension("us",PLURAL|ACCUSATIVE|NEUTER|NOUN,'4mfd');
0454   AddDeclension("u",SINGULAR|ABLATIVE|NEUTER|NOUN,'4mfd');
0455   AddDeclension("ibus",PLURAL|ABLATIVE|NEUTER|NOUN,'4mfd');
0456 //4th declension N
0457   AddDeclension("",SINGULAR|NOMITIVE|NEUTER|NOUN,'4n');
0458   AddDeclension("ua",PLURAL|NOMITIVE|NEUTER|NOUN,'4nd');
0459   AddDeclension("u",SINGULAR|GENITIVE|NEUTER|NOUN,'4nd');
0460   AddDeclension("uum",PLURAL|GENITIVE|NEUTER|NOUN,'4nd');
0461   AddDeclension("u",SINGULAR|DATIVE|NEUTER|NOUN,'4nd');
0462   AddDeclension("ibus",PLURAL|DATIVE|NEUTER|NOUN,'4nd');
0463   AddDeclension("u",SINGULAR|ACCUSATIVE|NEUTER|NOUN,'4nd');
0464   AddDeclension("ua",PLURAL|ACCUSATIVE|NEUTER|NOUN,'4nd');
0465   AddDeclension("u",SINGULAR|ABLATIVE|NEUTER|NOUN,'4nd');
0466   AddDeclension("ibus",PLURAL|ABLATIVE|NEUTER|NOUN,'4nd');
0467 //%th declension MF
0468   AddDeclension("",SINGULAR|NOMITIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0469   AddDeclension("es",PLURAL|NOMITIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0470   AddDeclension("ei",SINGULAR|GENITIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0471   AddDeclension("erum",PLURAL|GENITIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0472   AddDeclension("ei",SINGULAR|DATIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0473   AddDeclension("ebus",PLURAL|DATIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0474   AddDeclension("em",SINGULAR|ACCUSATIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0475   AddDeclension("es",PLURAL|ACCUSATIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0476   AddDeclension("e",SINGULAR|ABLATIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0477   AddDeclension("ebus",PLURAL|ABLATIVE|MASCULINE|FEMININE|NOUN,'5mfd');
0478 //3rd declennsion MF Adjective
0479   AddDeclension("",SINGULAR|NOMITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0480   AddDeclension("is",SINGULAR|NOMITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0481   AddDeclension("es",PLURAL|NOMITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0482   AddDeclension("is",SINGULAR|GENITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0483   AddDeclension("ium",PLURAL|GENITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0484   AddDeclension("i",SINGULAR|DATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0485   AddDeclension("ibus",PLURAL|DATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0486   AddDeclension("em",SINGULAR|ACCUSATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0487   AddDeclension("es",PLURAL|ACCUSATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0488   AddDeclension("is",PLURAL|ACCUSATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0489   AddDeclension("i",SINGULAR|ABLATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0490   AddDeclension("ibu",PLURAL|ABLATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0491   AddDeclension("ibus",PLURAL|ABLATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0492 //3nd DEclensiuonb N0 Adjective
0493   AddDeclension("",SINGULAR|NOMITIVE|NEUTER|ADJECTIVE,'adj3');
0494   AddDeclension("a",PLURAL|NOMITIVE|NEUTER|ADJECTIVE,'adj3');
0495   AddDeclension("ia",PLURAL|NOMITIVE|NEUTER|ADJECTIVE,'adj3');
0496   AddDeclension("is",SINGULAR|GENITIVE|NEUTER|ADJECTIVE,'adj3');
0497   AddDeclension("um",PLURAL|GENITIVE|NEUTER|ADJECTIVE,'adj3');
0498   AddDeclension("ium",PLURAL|GENITIVE|NEUTER|ADJECTIVE,'adj3');
0499   AddDeclension("i",SINGULAR|DATIVE|NEUTER|ADJECTIVE,'adj3');
0500   AddDeclension("ibus",PLURAL|DATIVE|NEUTER|ADJECTIVE,'adj3');
0501   AddDeclension("",SINGULAR|ACCUSATIVE|NEUTER|ADJECTIVE,'adj3');
0502   AddDeclension("a",PLURAL|ACCUSATIVE|NEUTER|ADJECTIVE,'adj3');
0503   AddDeclension("ia",PLURAL|ACCUSATIVE|NEUTER|ADJECTIVE,'adj3');
0504   AddDeclension("",SINGULAR|ABLATIVE|NEUTER|ADJECTIVE,'adj3');
0505   AddDeclension("i",SINGULAR|ABLATIVE|NEUTER|ADJECTIVE,'adj3');
0506   AddDeclension("a",PLURAL|ABLATIVE|NEUTER|ADJECTIVE,'adj3');
0507   AddDeclension("ibus",PLURAL|ABLATIVE|NEUTER|ADJECTIVE,'adj3');
0508 //3rd Declension 2 Endings
0509   AddDeclension("",SINGULAR|NOMITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0510   AddDeclension("is",SINGULAR|NOMITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0511   AddDeclension("es",PLURAL|NOMITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0512   AddDeclension("is",SINGULAR|GENITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0513   AddDeclension("ium",PLURAL|GENITIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0514   AddDeclension("i",SINGULAR|DATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0515   AddDeclension("ibus",PLURAL|DATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0516   AddDeclension("em",SINGULAR|ACCUSATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0517   AddDeclension("es",PLURAL|ACCUSATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0518   AddDeclension("is",PLURAL|ACCUSATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0519   AddDeclension("i",SINGULAR|ABLATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0520   AddDeclension("ibu",PLURAL|ABLATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0521   AddDeclension("ibus",PLURAL|ABLATIVE|MASCULINE|FEMININE|ADJECTIVE,'adj3');
0522 
0523 
0524 
0525   //TODO future infinitive
0526   //1st conjuation present tense
0527   AddDeclension("o",SINGULAR|_1P|VERB|PRESENT,'1v');
0528   AddDeclension("amus",PLURAL|_1P|VERB|PRESENT,'1v');
0529   AddDeclension("as",SINGULAR|_2P|VERB|PRESENT,'1v');
0530   AddDeclension("atis",PLURAL|_2P|VERB|PRESENT,'1v');
0531   AddDeclension("at",SINGULAR|_3P|VERB|PRESENT,'1v');
0532   AddDeclension("ant",PLURAL|_3P|VERB|PRESENT,'1v');
0533 //1st conjugation passive
0534   AddDeclension("or",SINGULAR|_1P|VERB|PRESENT|PASSIVE,'1v');
0535   AddDeclension("amur",PLURAL|_1P|VERB|PRESENT|PASSIVE,'1v');
0536   AddDeclension("aris",SINGULAR|_2P|VERB|PRESENT|PASSIVE,'1v');
0537   AddDeclension("are",SINGULAR|_2P|VERB|PRESENT|PASSIVE,'1v');
0538   AddDeclension("amini",PLURAL|_2P|VERB|PRESENT|PASSIVE,'1v');
0539   AddDeclension("atur",SINGULAR|_3P|VERB|PRESENT|PASSIVE,'1v');
0540   AddDeclension("antur",PLURAL|_3P|VERB|PRESENT|PASSIVE,'1v');
0541 //Impefect tense 1st conujation
0542   AddDeclension("abam",SINGULAR|_1P|IMPERFECT|VERB,'1v');
0543   AddDeclension("abamus",PLURAL|_1P|IMPERFECT|VERB,'1v');
0544   AddDeclension("abas",SINGULAR|_2P|IMPERFECT|VERB,'1v');
0545   AddDeclension("abatis",PLURAL|_2P|IMPERFECT|VERB,'1v');
0546   AddDeclension("abat",SINGULAR|_3P|IMPERFECT|VERB,'1v');
0547   AddDeclension("abant",PLURAL|_3P|IMPERFECT|VERB,'1v');
0548 //Impefect tense 1st conujation passive
0549   AddDeclension("abar",SINGULAR|_1P|IMPERFECT|VERB|PASSIVE,'1v');
0550   AddDeclension("abamur",PLURAL|_1P|IMPERFECT|VERB|PASSIVE,'1v');
0551   AddDeclension("abaris",SINGULAR|_2P|IMPERFECT|VERB|PASSIVE,'1v');
0552   AddDeclension("abare",SINGULAR|_2P|IMPERFECT|VERB|PASSIVE,'1v');
0553   AddDeclension("abamini",PLURAL|_2P|IMPERFECT|VERB|PASSIVE,'1v');
0554   AddDeclension("abatur",SINGULAR|_3P|IMPERFECT|VERB|PASSIVE,'1v');
0555   AddDeclension("abantur",PLURAL|_3P|IMPERFECT|VERB|PASSIVE,'1v');
0556 //1st conjuation PERFECT  tense
0557   AddDeclension("avi",SINGULAR|_1P|PERFECT|VERB,'1v');
0558   AddDeclension("avimus",PLURAL|_1P|PERFECT|VERB,'1v');
0559   AddDeclension("avisti",SINGULAR|_2P|PERFECT|VERB,'1v');
0560   AddDeclension("avistis",PLURAL|_2P|PERFECT|VERB,'1v');
0561   AddDeclension("avit",SINGULAR|_3P|PERFECT|VERB,'1v');
0562   AddDeclension("averunt",PLURAL|_3P|PERFECT|VERB,'1v');
0563   AddDeclension("avere",PLURAL|_3P|PERFECT|VERB,'1v');
0564 //1st conjuation FUTURE tense
0565   AddDeclension("abo",SINGULAR|_1P|FUTURE|VERB,'1v');
0566   AddDeclension("abimus",PLURAL|_1P|FUTURE|VERB,'1v');
0567   AddDeclension("abis",SINGULAR|_2P|FUTURE|VERB,'1v');
0568   AddDeclension("abitis",PLURAL|_2P|FUTURE|VERB,'1v');
0569   AddDeclension("abis",SINGULAR|_3P|FUTURE|VERB,'1v');
0570   AddDeclension("abit",PLURAL|_3P|FUTURE|VERB,'1v');
0571   AddDeclension("abunt",PLURAL|_3P|FUTURE|VERB,'1v');
0572 //1st PLUPERFECT
0573   AddDeclension("averam",PLUPERFECT|SINGULAR|_1P|VERB,'1v');
0574   AddDeclension("averamus",PLUPERFECT|PLURAL|_1P|VERB,'1v');
0575   AddDeclension("averas",PLUPERFECT|SINGULAR|_2P|VERB,'1v');
0576   AddDeclension("averatis",PLUPERFECT|PLURAL|_2P|VERB,'1v');
0577   AddDeclension("averat",PLUPERFECT|SINGULAR|_3P|VERB,'1v');
0578   AddDeclension("averant",PLUPERFECT|PLURAL|_3P|VERB,'1v');
0579 //1st Present subjunctive
0580   AddDeclension("em",SUBJUNCTIVE|_1P|SINGULAR|VERB,'1v');
0581   AddDeclension("emus",SUBJUNCTIVE|_1P|PLURAL|VERB,'1v');
0582   AddDeclension("es",SUBJUNCTIVE|_2P|SINGULAR|VERB,'1v');
0583   AddDeclension("etis",SUBJUNCTIVE|_2P|PLURAL|VERB,'1v');
0584   AddDeclension("et",SUBJUNCTIVE|_3P|SINGULAR|VERB,'1v');
0585   AddDeclension("ent",SUBJUNCTIVE|_3P|PLURAL|VERB,'1v');
0586 //1st Present subjunctive passive
0587   AddDeclension("er",SUBJUNCTIVE|_1P|SINGULAR|VERB|PASSIVE,'1v');
0588   AddDeclension("emur",SUBJUNCTIVE|_1P|PLURAL|VERB|PASSIVE,'1v');
0589   AddDeclension("eris",SUBJUNCTIVE|_2P|SINGULAR|VERB|PASSIVE,'1v');
0590   AddDeclension("ere",SUBJUNCTIVE|_2P|SINGULAR|VERB|PASSIVE,'1v');
0591   AddDeclension("emini",SUBJUNCTIVE|_2P|PLURAL|VERB|PASSIVE,'1v');
0592   AddDeclension("etur",SUBJUNCTIVE|_3P|SINGULAR|VERB|PASSIVE,'1v');
0593   AddDeclension("entur",SUBJUNCTIVE|_3P|PLURAL|VERB|PASSIVE,'1v');
0594 //1st Present subjunctive IMPERFECT
0595   AddDeclension("arem",SUBJUNCTIVE|_1P|SINGULAR|VERB|IMPERFECT,'1v');
0596   AddDeclension("aremus",SUBJUNCTIVE|_1P|PLURAL|VERB|IMPERFECT,'1v');
0597   AddDeclension("ares",SUBJUNCTIVE|_2P|SINGULAR|VERB|IMPERFECT,'1v');
0598   AddDeclension("aretis",SUBJUNCTIVE|_2P|PLURAL|VERB|IMPERFECT,'1v');
0599   AddDeclension("aret",SUBJUNCTIVE|_3P|SINGULAR|VERB|IMPERFECT,'1v');
0600   AddDeclension("arent",SUBJUNCTIVE|_3P|PLURAL|VERB|IMPERFECT,'1v');
0601 //1st Present subjunctive passive IMPERFECT
0602   AddDeclension("arer",SUBJUNCTIVE|_1P|SINGULAR|VERB|PASSIVE|IMPERFECT,'1v');
0603   AddDeclension("aremur",SUBJUNCTIVE|_1P|PLURAL|VERB|PASSIVE|IMPERFECT,'1v');
0604   AddDeclension("areris",SUBJUNCTIVE|_2P|SINGULAR|VERB|PASSIVE|IMPERFECT,'1v');
0605   AddDeclension("arere",SUBJUNCTIVE|_2P|SINGULAR|VERB|PASSIVE|IMPERFECT,'1v');
0606   AddDeclension("aremini",SUBJUNCTIVE|_2P|PLURAL|VERB|PASSIVE|IMPERFECT,'1v');
0607   AddDeclension("aretur",SUBJUNCTIVE|_3P|SINGULAR|VERB|PASSIVE|IMPERFECT,'1v');
0608   AddDeclension("arentur",SUBJUNCTIVE|_3P|PLURAL|VERB|PASSIVE|IMPERFECT,'1v');
0609 //1st Present subjunctive PERFECT
0610   AddDeclension("averem",SUBJUNCTIVE|_1P|SINGULAR|VERB|PERFECT,'1v');
0611   AddDeclension("averemus",SUBJUNCTIVE|_1P|PLURAL|VERB|PERFECT,'1v');
0612   AddDeclension("averes",SUBJUNCTIVE|_2P|SINGULAR|VERB|PERFECT,'1v');
0613   AddDeclension("averetis",SUBJUNCTIVE|_2P|PLURAL|VERB|PERFECT,'1v');
0614   AddDeclension("averet",SUBJUNCTIVE|_3P|SINGULAR|VERB|PERFECT,'1v');
0615   AddDeclension("averent",SUBJUNCTIVE|_3P|PLURAL|VERB|PERFECT,'1v');
0616 //1st Present subjunctive PLUPERFECT
0617   AddDeclension("avissem",SUBJUNCTIVE|_1P|SINGULAR|VERB|PERFECT,'1v');
0618   AddDeclension("avissemus",SUBJUNCTIVE|_1P|PLURAL|VERB|PERFECT,'1v');
0619   AddDeclension("avisses",SUBJUNCTIVE|_2P|SINGULAR|VERB|PERFECT,'1v');
0620   AddDeclension("avissetis",SUBJUNCTIVE|_2P|PLURAL|VERB|PERFECT,'1v');
0621   AddDeclension("avisset",SUBJUNCTIVE|_3P|SINGULAR|VERB|PERFECT,'1v');
0622   AddDeclension("avissent",SUBJUNCTIVE|_3P|PLURAL|VERB|PERFECT,'1v');
0623 //1st PRESENT IMPERATIVE ACTIVE
0624   AddDeclension("a",IMPERATIVE|_2P|SINGULAR|VERB,'1v');
0625   AddDeclension("ate",IMPERATIVE|_2P|PLURAL|VERB,'1v');
0626 //1st  FUTURE IMPERATIVE ACTIVE
0627   AddDeclension("ato",IMPERATIVE|_2P|SINGULAR|VERB|FUTURE,'1v');
0628   AddDeclension("ato",IMPERATIVE|_3P|PLURAL|VERB|FUTURE,'1v');
0629   AddDeclension("atote",IMPERATIVE|_2P|SINGULAR|VERB|FUTURE,'1v');
0630   AddDeclension("anto",IMPERATIVE|_3P|PLURAL|VERB|FUTURE,'1v');
0631 //1st  PRESENT IMPERATIVE PASSIVE
0632   AddDeclension("are",IMPERATIVE|_2P|SINGULAR|VERB,'1v');
0633   AddDeclension("amini",IMPERATIVE|_2P|PLURAL|VERB,'1v');
0634 //1st  FUTURE IMPERATIVE PASSIVE
0635   AddDeclension("ator",IMPERATIVE|_2P|SINGULAR|VERB|FUTURE,'1v');
0636   AddDeclension("ator",IMPERATIVE|_3P|PLURAL|VERB|FUTURE,'1v');
0637   AddDeclension("antor",IMPERATIVE|_3P|PLURAL|VERB|FUTURE,'1v');
0638 //1st INFINTIVE
0639   AddDeclension("are",INFINITIVE,'1v');
0640   AddDeclension("visse",INFINITIVE|FUTURE,'1v');
0641   AddDeclension("ari",INFINITIVE|SUBJUNCTIVE,'1v');
0642 //This is handled by AddWordByPrincibleParts
0643 /*//1st PARTICIPLE 
0644   AddDeclension("ans",PARTICIPLE,'1v');
0645   AddDeclension("antis",PARTICIPLE,'1v');
0646   AddDeclension("aturus",PARTICIPLE|FUTURE,'1v');*/
0647 //1st GERUND
0648   AddDeclension("andi",GERUND|GENITIVE,'1v');
0649   AddDeclension("ando",GERUND|DATIVE,'1v');
0650    AddDeclension("andum",GERUND|ACCUSATIVE,'1v');
0651   AddDeclension("ando",GERUND|ABLATIVE,'1v');
0652 
0653   //2nd conjuation present tense
0654   AddDeclension("eo",SINGULAR|_1P|VERB|PRESENT,'2v');
0655   AddDeclension("emus",PLURAL|_1P|VERB|PRESENT,'2v');
0656   AddDeclension("es",SINGULAR|_2P|VERB|PRESENT,'2v');
0657   AddDeclension("etis",PLURAL|_2P|VERB|PRESENT,'2v');
0658   AddDeclension("et",SINGULAR|_3P|VERB|PRESENT,'2v');
0659   AddDeclension("ent",PLURAL|_3P|VERB|PRESENT,'2v');
0660 //2ND IMPERFECT
0661   AddDeclension("ebam",SINGULAR|_1P|VERB|IMPERFECT,'2v');
0662   AddDeclension("ebamus",PLURAL|_1P|VERB|IMPERFECT,'2v');
0663   AddDeclension("ebas",SINGULAR|_2P|VERB|IMPERFECT,'2v');
0664   AddDeclension("ebatis",PLURAL|_2P|VERB|IMPERFECT,'2v');
0665   AddDeclension("ebat",SINGULAR|_3P|VERB|IMPERFECT,'2v');
0666   AddDeclension("ebant",PLURAL|_3P|VERB|IMPERFECT,'2v');
0667 //2ND FUTURE
0668   AddDeclension("ebo",SINGULAR|_1P|VERB|FUTURE,'2v');
0669   AddDeclension("ebimus",PLURAL|_1P|VERB|FUTURE,'2v');
0670   AddDeclension("ebis",SINGULAR|_2P|VERB|FUTURE,'2v');
0671   AddDeclension("ebitis",PLURAL|_2P|VERB|FUTURE,'2v');
0672   AddDeclension("ebit",SINGULAR|_3P|VERB|FUTURE,'2v');
0673   AddDeclension("ebunt",PLURAL|_3P|VERB|FUTURE,'2v');
0674 //2ND PERFECT
0675   AddDeclension("i",SINGULAR|_1P|VERB|PERFECT,'2v');
0676   AddDeclension("imus",PLURAL|_1P|VERB|PERFECT,'2v');
0677   AddDeclension("iti",SINGULAR|_2P|VERB|PERFECT,'2v');
0678   AddDeclension("itis",PLURAL|_2P|VERB|PERFECT,'2v');
0679   AddDeclension("it",SINGULAR|_3P|VERB|PERFECT,'2v');
0680   AddDeclension("erunt",PLURAL|_3P|VERB|PERFECT,'2v');
0681   AddDeclension("ere",PLURAL|_3P|VERB|PERFECT,'2v');
0682 //2ND PLUPERFECT
0683   AddDeclension("eram",SINGULAR|_1P|VERB|PLUPERFECT,'2v');
0684   AddDeclension("eramus",PLURAL|_1P|VERB|PLUPERFECT,'2v');
0685   AddDeclension("eras",SINGULAR|_2P|VERB|PLUPERFECT,'2v');
0686   AddDeclension("eratis",PLURAL|_2P|VERB|PLUPERFECT,'2v');
0687   AddDeclension("erat",SINGULAR|_3P|VERB|PLUPERFECT,'2v');
0688   AddDeclension("erant",PLURAL|_3P|VERB|PLUPERFECT,'2v');
0689 //2ND FUTURE PERFECT
0690   AddDeclension("ero",SINGULAR|_1P|VERB|PERFECT,'2v');
0691   AddDeclension("erimus",PLURAL|_1P|VERB|PERFECT,'2v');
0692   AddDeclension("eras",SINGULAR|_2P|VERB|PERFECT,'2v');
0693   AddDeclension("eratis",PLURAL|_2P|VERB|PERFECT,'2v');
0694   AddDeclension("erit",SINGULAR|_3P|VERB|PERFECT,'2v');
0695   AddDeclension("erint",PLURAL|_3P|VERB|PERFECT,'2v');
0696 //2ND PRESENT PASSIVE
0697   AddDeclension("eor",SINGULAR|_1P|VERB|PRESENT,'2v');
0698   AddDeclension("emur",PLURAL|_1P|VERB|PRESENT,'2v');
0699   AddDeclension("eris",SINGULAR|_2P|VERB|PRESENT,'2v');
0700   AddDeclension("ere",SINGULAR|_2P|VERB|PRESENT,'2v');
0701   AddDeclension("emini",PLURAL|_2P|VERB|PRESENT,'2v');
0702   AddDeclension("etur",SINGULAR|_3P|VERB|PRESENT,'2v');
0703   AddDeclension("entur",PLURAL|_3P|VERB|PRESENT,'2v');
0704 //2ND IMPERFECT PASSIVE
0705   AddDeclension("ebar",SINGULAR|_1P|VERB|IMPERFECT,'2v');
0706   AddDeclension("ebamur",PLURAL|_1P|VERB|IMPERFECT,'2v');
0707   AddDeclension("ebaris",SINGULAR|_2P|VERB|IMPERFECT,'2v');
0708   AddDeclension("ebare",SINGULAR|_2P|VERB|IMPERFECT,'2v');
0709   AddDeclension("ebamini",PLURAL|_2P|VERB|IMPERFECT,'2v');
0710   AddDeclension("ebitur",SINGULAR|_3P|VERB|IMPERFECT,'2v');
0711   AddDeclension("ebuntur",PLURAL|_3P|VERB|IMPERFECT,'2v');
0712 //2ND FUTURE PASSIVE
0713   AddDeclension("ebor",SINGULAR|_1P|VERB|FUTURE,'2v');
0714   AddDeclension("ebimur",PLURAL|_1P|VERB|FUTURE,'2v');
0715   AddDeclension("eberis",SINGULAR|_2P|VERB|FUTURE,'2v');
0716   AddDeclension("ebere",SINGULAR|_2P|VERB|FUTURE,'2v');
0717   AddDeclension("ebimini",PLURAL|_2P|VERB|FUTURE,'2v');
0718   AddDeclension("ebitur",SINGULAR|_3P|VERB|FUTURE,'2v');
0719   AddDeclension("ebuntur",PLURAL|_3P|VERB|FUTURE,'2v');
0720 //2ND IMPERATIVE
0721   AddDeclension("e",IMPERATIVE|_2P|SINGULAR|VERB,'2v');
0722   AddDeclension("ete",IMPERATIVE|_2P|PLURAL|VERB,'2v');
0723   AddDeclension("eto",IMPERATIVE|_2P|SINGULAR|VERB|FUTURE,'2v');
0724   AddDeclension("etote",IMPERATIVE|_2P|PLURAL|VERB|FUTURE,'2v');
0725   AddDeclension("eto",IMPERATIVE|_3P|SINGULAR|VERB|FUTURE,'2v');
0726   AddDeclension("ento",IMPERATIVE|_3P|PLURAL|VERB|FUTURE,'2v');
0727   AddDeclension("ere",IMPERATIVE|_2P|SINGULAR|VERB|SUBJUNCTIVE,'2v');
0728   AddDeclension("emini",IMPERATIVE|_2P|PLURAL|VERB|SUBJUNCTIVE,'2v');
0729   AddDeclension("etor",IMPERATIVE|_2P|SINGULAR|VERB|SUBJUNCTIVE|FUTURE,'2v');
0730   AddDeclension("etor",IMPERATIVE|_3P|SINGULAR|VERB|SUBJUNCTIVE|FUTURE,'2v');
0731   AddDeclension("entor",IMPERATIVE|_3P|PLURAL|VERB|SUBJUNCTIVE|FUTURE,'2v');
0732 //2nd INFINITIVE
0733   AddDeclension("ere",INFINITIVE,'2v');
0734   AddDeclension("isse",INFINITIVE|IMPERFECT,'2v');
0735   AddDeclension("eri",INFINITIVE|SUBJUNCTIVE,'2v');
0736 /*//PARTICIPLES This is handled by AddWordByPrincibleParts
0737   AddDeclension("ens",PARTICIPLE,'2v');
0738   AddDeclension("entis",PARTICIPLE,'2v');
0739   AddDeclension("urus",PARTICIPLE|FUTURE,'2v');
0740   AddDeclension("us",PARTICIPLE|SUBJUNCTIVE|PERFECT,'2v');
0741 */
0742 //2nd GERIUND
0743   AddDeclension("endi",GERUND|GENITIVE,'2v');
0744   AddDeclension("endo",GERUND|DATIVE,'2v');
0745   AddDeclension("endum",GERUND|ACCUSATIVE,'2v');
0746   AddDeclension("endo",GERUND|ABLATIVE,'2v');
0747 
0748 //2nd SUBJUNCTIVE
0749   AddDeclension("eam",SINGULAR|_1P|VERB|SUBJUNCTIVE,'2v');
0750   AddDeclension("eamus",PLURAL|_1P|VERB|SUBJUNCTIVE,'2v');
0751   AddDeclension("eas",SINGULAR|_2P|VERB|SUBJUNCTIVE,'2v');
0752   AddDeclension("eatis",PLURAL|_2P|VERB|SUBJUNCTIVE,'2v');
0753   AddDeclension("eat",SINGULAR|_3P|VERB|SUBJUNCTIVE,'2v');
0754   AddDeclension("eant",PLURAL|_3P|VERB|SUBJUNCTIVE,'2v');
0755 //3nd conjuation indicative
0756   AddDeclension("o",SINGULAR|_1P|VERB,'3v');
0757   AddDeclension("imus",PLURAL|_1P|VERB,'3v');
0758   AddDeclension("is",SINGULAR|_2P|VERB,'3v');
0759   AddDeclension("itis",PLURAL|_2P|VERB,'3v');
0760   AddDeclension("it",SINGULAR|_3P|VERB,'3v');
0761   AddDeclension("unt",PLURAL|_3P|VERB,'3v');
0762 
0763   AddDeclension("ebam",SINGULAR|_1P|VERB|IMPERFECT,'3v');
0764   AddDeclension("ebamus",PLURAL|_1P|VERB|IMPERFECT,'3v');
0765   AddDeclension("ebas",SINGULAR|_2P|VERB|IMPERFECT,'3v');
0766   AddDeclension("ebatis",PLURAL|_2P|VERB|IMPERFECT,'3v');
0767   AddDeclension("ebat",SINGULAR|_3P|VERB|IMPERFECT,'3v');
0768   AddDeclension("ebant",PLURAL|_3P|VERB|IMPERFECT,'3v');
0769 
0770   AddDeclension("am",SINGULAR|_1P|VERB|FUTURE,'3v');
0771   AddDeclension("emus",PLURAL|_1P|VERB|FUTURE,'3v');
0772   AddDeclension("es",SINGULAR|_2P|VERB|FUTURE,'3v');
0773   AddDeclension("etis",PLURAL|_2P|VERB|FUTURE,'3v');
0774   AddDeclension("et",SINGULAR|_3P|VERB|FUTURE,'3v');
0775   AddDeclension("ent",PLURAL|_3P|VERB|FUTURE,'3v');
0776 
0777   AddDeclension("i",SINGULAR|_1P|VERB|PERFECT,'3v');
0778   AddDeclension("imus",PLURAL|_1P|VERB|PERFECT,'3v');
0779   AddDeclension("isti",SINGULAR|_2P|VERB|PERFECT,'3v');
0780   AddDeclension("istis",PLURAL|_2P|VERB|PERFECT,'3v');
0781   AddDeclension("it",SINGULAR|_3P|VERB|PERFECT,'3v');
0782   AddDeclension("erunt",PLURAL|_3P|VERB|PERFECT,'3v');
0783   AddDeclension("ere",PLURAL|_3P|VERB|PERFECT,'3v');
0784 
0785   AddDeclension("eram",SINGULAR|_1P|VERB|PLUPERFECT,'3v');
0786   AddDeclension("eremus",PLURAL|_1P|VERB|PLUPERFECT,'3v');
0787   AddDeclension("eres",SINGULAR|_2P|VERB|PLUPERFECT,'3v');
0788   AddDeclension("eretis",PLURAL|_2P|VERB|PLUPERFECT,'3v');
0789   AddDeclension("eret",SINGULAR|_3P|VERB|PLUPERFECT,'3v');
0790   AddDeclension("erent",PLURAL|_3P|VERB|PLUPERFECT,'3v');
0791 
0792   AddDeclension("am",SINGULAR|_1P|VERB|FUTURE|PERFECT,'3v');
0793   AddDeclension("emus",PLURAL|_1P|VERB|FUTURE|PERFECT,'3v');
0794   AddDeclension("es",SINGULAR|_2P|VERB|FUTURE|PERFECT,'3v');
0795   AddDeclension("etis",PLURAL|_2P|VERB|FUTURE|PERFECT,'3v');
0796   AddDeclension("et",SINGULAR|_3P|VERB|FUTURE|PERFECT,'3v');
0797   AddDeclension("ent",PLURAL|_3P|VERB|FUTURE|PERFECT,'3v');
0798 
0799   AddDeclension("or",SINGULAR|_1P|VERB|PASSIVE,'3v');
0800   AddDeclension("imur",PLURAL|_1P|VERB|PASSIVE,'3v');
0801   AddDeclension("ire",SINGULAR|_2P|VERB|PASSIVE,'3v');
0802   AddDeclension("iris",SINGULAR|_2P|VERB|PASSIVE,'3v');
0803   AddDeclension("imini",PLURAL|_2P|VERB|PASSIVE,'3v');
0804   AddDeclension("itur",SINGULAR|_3P|VERB|PASSIVE,'3v');
0805   AddDeclension("untur",PLURAL|_3P|VERB,'3v');
0806 
0807   AddDeclension("ebar",SINGULAR|_1P|VERB|IMPERFECT|PASSIVE,'3v');
0808   AddDeclension("ebamur",PLURAL|_1P|VERB|IMPERFECT|PASSIVE,'3v');
0809   AddDeclension("ebaris",SINGULAR|_2P|VERB|IMPERFECT|PASSIVE,'3v');
0810   AddDeclension("ebare",SINGULAR|_2P|VERB|IMPERFECT|PASSIVE,'3v');
0811   AddDeclension("ebamini",PLURAL|_2P|VERB|IMPERFECT|PASSIVE,'3v');
0812   AddDeclension("ebatur",SINGULAR|_3P|VERB|IMPERFECT|PASSIVE,'3v');
0813   AddDeclension("ebantur",PLURAL|_3P|VERB|IMPERFECT|PASSIVE,'3v');
0814 
0815   AddDeclension("ar",SINGULAR|_1P|VERB|FUTURE|PASSIVE,'3v');
0816   AddDeclension("emur",PLURAL|_1P|VERB|FUTURE|PASSIVE,'3v');
0817   AddDeclension("eris",SINGULAR|_2P|VERB|FUTURE|PASSIVE,'3v');
0818   AddDeclension("emini",PLURAL|_2P|VERB|FUTURE|PASSIVE,'3v');
0819   AddDeclension("etur",SINGULAR|_3P|VERB|FUTURE|PASSIVE,'3v');
0820   AddDeclension("entur",PLURAL|_3P|VERB|FUTURE|PASSIVE,'3v');
0821 //3rd  subjunctive
0822   AddDeclension("am",SINGULAR|_1P|VERB|SUBJUNCTIVE,'3v');
0823   AddDeclension("amus",PLURAL|_1P|VERB|SUBJUNCTIVE,'3v');
0824   AddDeclension("as",SINGULAR|_2P|VERB|SUBJUNCTIVE,'3v');
0825   AddDeclension("atis",PLURAL|_2P|VERB|SUBJUNCTIVE,'3v');
0826   AddDeclension("at",SINGULAR|_3P|VERB|SUBJUNCTIVE,'3v');
0827   AddDeclension("ant",PLURAL|_3P|VERB|SUBJUNCTIVE,'3v');
0828 
0829   AddDeclension("erem",SINGULAR|_1P|VERB||SUBJUNCTIVE|IMPERFECT,'3v');
0830   AddDeclension("ereimus",PLURAL|_1P|VERB||SUBJUNCTIVE|IMPERFECT,'3v');
0831   AddDeclension("eres",SINGULAR|_2P|VERB||SUBJUNCTIVE|IMPERFECT,'3v');
0832   AddDeclension("eretis",PLURAL|_2P|VERB||SUBJUNCTIVE|IMPERFECT,'3v');
0833   AddDeclension("eret",SINGULAR|_3P|VERB||SUBJUNCTIVE|IMPERFECT,'3v');
0834   AddDeclension("erent",PLURAL|_3P|VERB||SUBJUNCTIVE|IMPERFECT,'3v');
0835 
0836   AddDeclension("erim",SINGULAR|_1P|VERB||SUBJUNCTIVE|PERFECT,'3v');
0837   AddDeclension("erimus",PLURAL|_1P|VERB||SUBJUNCTIVE|PERFECT,'3v');
0838   AddDeclension("eris",SINGULAR|_2P|VERB||SUBJUNCTIVE|PERFECT,'3v');
0839   AddDeclension("eritis",PLURAL|_2P|VERB||SUBJUNCTIVE|PERFECT,'3v');
0840   AddDeclension("erit",SINGULAR|_3P|VERB||SUBJUNCTIVE|PERFECT,'3v');
0841   AddDeclension("erint",PLURAL|_3P|VERB||SUBJUNCTIVE|PERFECT,'3v');
0842 
0843   AddDeclension("issem",SINGULAR|_1P|VERB||SUBJUNCTIVE|PLUPERFECT,'3v');
0844   AddDeclension("issemus",PLURAL|_1P|VERB||SUBJUNCTIVE|PLUPERFECT,'3v');
0845   AddDeclension("isses",SINGULAR|_2P|VERB||SUBJUNCTIVE|PLUPERFECT,'3v');
0846   AddDeclension("issetis",PLURAL|_2P|VERB||SUBJUNCTIVE|PLUPERFECT,'3v');
0847   AddDeclension("erit",SINGULAR|_3P|VERB||SUBJUNCTIVE|PLUPERFECT,'3v');
0848   AddDeclension("erint",PLURAL|_3P|VERB||SUBJUNCTIVE|PLUPERFECT,'3v');
0849 //3rd Passives
0850   AddDeclension("ar",SINGULAR|_1P|VERB|SUBJUNCTIVE|PASSIVE,'3v');
0851   AddDeclension("amur",PLURAL|_1P|VERB|SUBJUNCTIVE|PASSIVE,'3v');
0852   AddDeclension("aris",SINGULAR|_2P|VERB|SUBJUNCTIVE|PASSIVE,'3v');
0853   AddDeclension("are",SINGULAR|_2P|VERB|SUBJUNCTIVE|PASSIVE,'3v');
0854   AddDeclension("amini",PLURAL|_2P|VERB|SUBJUNCTIVE|PASSIVE,'3v');
0855   AddDeclension("atur",SINGULAR|_3P|VERB|SUBJUNCTIVE|PASSIVE,'3v');
0856   AddDeclension("antur",PLURAL|_3P|VERB|SUBJUNCTIVE|PASSIVE,'3v');
0857 
0858   AddDeclension("erer",SINGULAR|_1P|VERB||SUBJUNCTIVE|IMPERFECT|PASSIVE,'3v');
0859   AddDeclension("eremus",PLURAL|_1P|VERB||SUBJUNCTIVE|IMPERFECT|PASSIVE,'3v');
0860   AddDeclension("ereris",SINGULAR|_2P|VERB||SUBJUNCTIVE|IMPERFECT|PASSIVE,'3v');
0861   AddDeclension("erere",SINGULAR|_2P|VERB||SUBJUNCTIVE|IMPERFECT|PASSIVE,'3v');
0862   AddDeclension("eretis",PLURAL|_2P|VERB||SUBJUNCTIVE|IMPERFECT|PASSIVE,'3v');
0863   AddDeclension("eret",SINGULAR|_3P|VERB||SUBJUNCTIVE|IMPERFECT|PASSIVE,'3v');
0864   AddDeclension("erent",PLURAL|_3P|VERB||SUBJUNCTIVE|IMPERFECT|PASSIVE,'3v');
0865 //3rd Imperatives
0866   AddDeclension("e",SINGULAR|_2P|VERB|IMPERATIVE,'3v');
0867   AddDeclension("ite",PLURAL|_2P|VERB|IMPERATIVE,'3v');
0868   AddDeclension("ito",SINGULAR|_2P|VERB|IMPERATIVE|FUTURE,'3v');
0869   AddDeclension("itote",PLURAL|_2P|VERB|IMPERATIVE|FUTURE,'3v');
0870   AddDeclension("ito",SINGULAR|_3P|VERB|IMPERATIVE|FUTURE,'3v');
0871   AddDeclension("unto",PLURAL|_3P|VERB|IMPERATIVE|FUTURE,'3v');
0872 
0873   AddDeclension("ere",SINGULAR|_2P|VERB|IMPERATIVE|PASSIVE,'3v');
0874   AddDeclension("imini",PLURAL|_2P|VERB|IMPERATIVE|PASSIVE,'3v');
0875   AddDeclension("itor",SINGULAR|_2P|VERB|IMPERATIVE|FUTURE|PASSIVE,'3v');
0876   AddDeclension("itor",SINGULAR|_3P|VERB|IMPERATIVE|FUTURE|PASSIVE,'3v');
0877   AddDeclension("untor",PLURAL|_3P|VERB|IMPERATIVE|FUTURE|PASSIVE,'3v');
0878 //Infintives
0879   AddDeclension("ere",INFINITIVE,'3v');
0880   AddDeclension("isse",INFINITIVE|PERFECT,'3v');
0881   AddDeclension("regi",INFINITIVE|PASSIVE,'3v');
0882 //This is handled by AddWordByPrincibleParts
0883 /*
0884 //Participles
0885   AddDeclension("ens",PARTICIPLE,'3v');
0886   AddDeclension("entis",PARTICIPLE,'3v');
0887   AddDeclension("urus",PARTICIPLE|FUTURE,'3v');
0888 */
0889 //3rd gerunds
0890   AddDeclension("endi",GERUND|GENITIVE,'3v');
0891   AddDeclension("endo",GERUND|DATIVE,'3v');
0892   AddDeclension("endum",GERUND|ACCUSATIVE,'3v');
0893   AddDeclension("endo",GERUND|ABLATIVE,'3v');
0894 
0895 
0896 //3rd io
0897   AddDeclension("io",SINGULAR|_1P|VERB,'3iov');
0898   AddDeclension("imus",PLURAL|_1P|VERB,'3iov');
0899   AddDeclension("is",SINGULAR|_2P|VERB,'3iov');
0900   AddDeclension("itis",PLURAL|_2P|VERB,'3iov');
0901   AddDeclension("it",SINGULAR|_3P|VERB,'3iov');
0902   AddDeclension("iunt",PLURAL|_3P|VERB,'3iov');
0903   AddDeclension("ior",SINGULAR|_1P|VERB|PASSIVE,'3iov');
0904   AddDeclension("imur",PLURAL|_1P|VERB|PASSIVE,'3iov');
0905   AddDeclension("iris",SINGULAR|_2P|VERB|PASSIVE,'3iov');
0906   AddDeclension("ire",SINGULAR|_2P|VERB|PASSIVE,'3iov');
0907   AddDeclension("imini",PLURAL|_2P|VERB|PASSIVE,'3iov');
0908   AddDeclension("itur",SINGULAR|_3P|VERB|PASSIVE,'3iov');
0909   AddDeclension("iuntur",PLURAL|_3P|VERB|PASSIVE,'3iov');
0910 
0911   AddDeclension("iebam",SINGULAR|_1P|VERB|IMPERFECT,'3iov');
0912   AddDeclension("iebamus",PLURAL|_1P|VERB|IMPERFECT,'3iov');
0913   AddDeclension("iebas",SINGULAR|_2P|VERB|IMPERFECT,'3iov');
0914   AddDeclension("iebatis",PLURAL|_2P|VERB|IMPERFECT,'3iov');
0915   AddDeclension("iebat",SINGULAR|_3P|VERB|IMPERFECT,'3iov');
0916   AddDeclension("iebant",PLURAL|_3P|VERB|IMPERFECT,'3iov');
0917   AddDeclension("iebar",SINGULAR|_1P|VERB|PASSIVE|IMPERFECT,'3iov');
0918   AddDeclension("iebammur",PLURAL|_1P|VERB|PASSIVE|IMPERFECT,'3iov');
0919   AddDeclension("iebaris",SINGULAR|_2P|VERB|PASSIVE|IMPERFECT,'3iov');
0920   AddDeclension("iebare",SINGULAR|_2P|VERB|PASSIVE|IMPERFECT,'3iov');
0921   AddDeclension("iebamini",PLURAL|_2P|VERB|PASSIVE|IMPERFECT,'3iov');
0922   AddDeclension("iebatur",SINGULAR|_3P|VERB|PASSIVE|IMPERFECT,'3iov');
0923   AddDeclension("iebantur",PLURAL|_3P|VERB|PASSIVE|IMPERFECT,'3iov');
0924 
0925   AddDeclension("iam",SINGULAR|_1P|VERB|FUTURE,'3iov');
0926   AddDeclension("iemus",PLURAL|_1P|VERB|FUTURE,'3iov');
0927   AddDeclension("ies",SINGULAR|_2P|VERB|FUTURE,'3iov');
0928   AddDeclension("ietis",PLURAL|_2P|VERB|FUTURE,'3iov');
0929   AddDeclension("iet",SINGULAR|_3P|VERB|FUTURE,'3iov');
0930   AddDeclension("ient",PLURAL|_3P|VERB|FUTURE,'3iov');
0931   AddDeclension("ier",SINGULAR|_1P|VERB|PASSIVE|FUTURE,'3iov');
0932   AddDeclension("iemur",PLURAL|_1P|VERB|PASSIVE|FUTURE,'3iov');
0933   AddDeclension("ieris",SINGULAR|_2P|VERB|PASSIVE|FUTURE,'3iov');
0934   AddDeclension("iere",SINGULAR|_2P|VERB|PASSIVE|FUTURE,'3iov');
0935   AddDeclension("iemini",PLURAL|_2P|VERB|PASSIVE|FUTURE,'3iov');
0936   AddDeclension("ietur",SINGULAR|_3P|VERB|PASSIVE|FUTURE,'3iov');
0937   AddDeclension("ientur",PLURAL|_3P|VERB|PASSIVE|FUTURE,'3iov');
0938 
0939   AddDeclension("i",SINGULAR|_1P|VERB|PERFECT,'3iov');
0940   AddDeclension("imus",PLURAL|_1P|VERB|PERFECT,'3iov');
0941   AddDeclension("isti",SINGULAR|_2P|VERB|PERFECT,'3iov');
0942   AddDeclension("istis",PLURAL|_2P|VERB|PERFECT,'3iov');
0943   AddDeclension("it",SINGULAR|_3P|VERB|PERFECT,'3iov');
0944   AddDeclension("erunt",PLURAL|_3P|VERB|PERFECT,'3iov');
0945   AddDeclension("ere",PLURAL|_3P|VERB|PERFECT,'3iov');
0946 
0947   AddDeclension("eram",SINGULAR|_1P|VERB|PLUPERFECT,'3iov');
0948   AddDeclension("eramus",PLURAL|_1P|VERB|PLUPERFECT,'3iov');
0949   AddDeclension("eras",SINGULAR|_2P|VERB|PLUPERFECT,'3iov');
0950   AddDeclension("eratis",PLURAL|_2P|VERB|PLUPERFECT,'3iov');
0951   AddDeclension("erat",SINGULAR|_3P|VERB|PLUPERFECT,'3iov');
0952   AddDeclension("erant",PLURAL|_3P|VERB|PLUPERFECT,'3iov');
0953 
0954   AddDeclension("ero",SINGULAR|_1P|VERB|FUTURE|PERFECT,'3iov');
0955   AddDeclension("erimus",PLURAL|_1P|VERB|FUTURE|PERFECT,'3iov');
0956   AddDeclension("eris",SINGULAR|_2P|VERB|FUTURE|PERFECT,'3iov');
0957   AddDeclension("eritis",PLURAL|_2P|VERB|FUTURE|PERFECT,'3iov');
0958   AddDeclension("erit",SINGULAR|_3P|VERB|FUTURE|PERFECT,'3iov');
0959   AddDeclension("erint",PLURAL|_3P|VERB|FUTURE|PERFECT,'3iov');
0960 //3io Sunjucntives
0961   AddDeclension("iam",SINGULAR|_1P|VERB|SUBJUNCTIVE,'3iov');
0962   AddDeclension("iamus",PLURAL|_1P|VERB|SUBJUNCTIVE,'3iov');
0963   AddDeclension("ias",SINGULAR|_2P|VERB|SUBJUNCTIVE,'3iov');
0964   AddDeclension("iatis",PLURAL|_2P|VERB|SUBJUNCTIVE,'3iov');
0965   AddDeclension("iat",SINGULAR|_3P|VERB|SUBJUNCTIVE,'3iov');
0966   AddDeclension("iant",PLURAL|_3P|VERB|SUBJUNCTIVE|SUBJUNCTIVE,'3iov');
0967   AddDeclension("iar",SINGULAR|_1P|VERB|PASSIVE|SUBJUNCTIVE,'3iov');
0968   AddDeclension("iamur",PLURAL|_1P|VERB|PASSIVE|SUBJUNCTIVE,'3iov');
0969   AddDeclension("iaris",SINGULAR|_2P|VERB|PASSIVE|SUBJUNCTIVE,'3iov');
0970   AddDeclension("iare",SINGULAR|_2P|VERB|PASSIVE|SUBJUNCTIVE,'3iov');
0971   AddDeclension("iamini",PLURAL|_2P|VERB|PASSIVE|SUBJUNCTIVE,'3iov');
0972   AddDeclension("iatur",SINGULAR|_3P|VERB|PASSIVE|SUBJUNCTIVE,'3iov');
0973   AddDeclension("iantur",PLURAL|_3P|VERB|PASSIVE|SUBJUNCTIVE,'3iov');
0974 
0975   AddDeclension("erem",SINGULAR|_1P|VERB|IMPERFECT|SUBJUNCTIVE,'3iov');
0976   AddDeclension("eremus",PLURAL|_1P|VERB|IMPERFECT|SUBJUNCTIVE,'3iov');
0977   AddDeclension("eres",SINGULAR|_2P|VERB|IMPERFECT|SUBJUNCTIVE,'3iov');
0978   AddDeclension("eretis",PLURAL|_2P|VERB|IMPERFECT|SUBJUNCTIVE,'3iov');
0979   AddDeclension("eret",SINGULAR|_3P|VERB|IMPERFECT|SUBJUNCTIVE,'3iov');
0980   AddDeclension("erent",PLURAL|_3P|VERB|IMPERFECT|SUBJUNCTIVE,'3iov');
0981   AddDeclension("erer",SINGULAR|_1P|VERB|PASSIVE|IMPERFECT|SUBJUNCTIVE,'3iov');
0982   AddDeclension("eremur",PLURAL|_1P|VERB|PASSIVE|IMPERFECT|SUBJUNCTIVE,'3iov');
0983   AddDeclension("ereris",SINGULAR|_2P|VERB|PASSIVE|IMPERFECT|SUBJUNCTIVE,'3iov');
0984   AddDeclension("erere",SINGULAR|_2P|VERB|PASSIVE|IMPERFECT|SUBJUNCTIVE,'3iov');
0985   AddDeclension("eremini",PLURAL|_2P|VERB|PASSIVE|IMPERFECT|SUBJUNCTIVE,'3iov');
0986   AddDeclension("eretur",SINGULAR|_3P|VERB|PASSIVE|IMPERFECT|SUBJUNCTIVE,'3iov');
0987   AddDeclension("erentur",PLURAL|_3P|VERB|PASSIVE|IMPERFECT|SUBJUNCTIVE,'3iov');
0988 
0989   AddDeclension("erim",SINGULAR|_1P|VERB|PERFECT|SUBJUNCTIVE,'3iov');
0990   AddDeclension("erimus",PLURAL|_1P|VERB|PERFECT|SUBJUNCTIVE,'3iov');
0991   AddDeclension("eristi",SINGULAR|_2P|VERB|PERFECT|SUBJUNCTIVE,'3iov');
0992   AddDeclension("eristis",PLURAL|_2P|VERB|PERFECT|SUBJUNCTIVE,'3iov');
0993   AddDeclension("erit",SINGULAR|_3P|VERB|PERFECT|SUBJUNCTIVE,'3iov');
0994   AddDeclension("erint",PLURAL|_3P|VERB|PERFECT|SUBJUNCTIVE,'3iov');
0995 
0996   AddDeclension("issem",SINGULAR|_1P|VERB|PLUPERFECT|SUBJUNCTIVE,'3iov');
0997   AddDeclension("issemus",PLURAL|_1P|VERB|PLUPERFECT|SUBJUNCTIVE,'3iov');
0998   AddDeclension("eris",SINGULAR|_2P|VERB|PLUPERFECT|SUBJUNCTIVE,'3iov');
0999   AddDeclension("eritis",PLURAL|_2P|VERB|PLUPERFECT|SUBJUNCTIVE,'3iov');
1000   AddDeclension("isset",SINGULAR|_3P|VERB|PLUPERFECT|SUBJUNCTIVE,'3iov');
1001   AddDeclension("issent",PLURAL|_3P|VERB|PLUPERFECT|SUBJUNCTIVE,'3iov');
1002 //3io imperative
1003   AddDeclension("e",SINGULAR|_2P|VERB|IMPERATIVE,'3iov');
1004   AddDeclension("ite",PLURAL|_2P|VERB|IMPERATIVE,'3iov');
1005   AddDeclension("ere",SINGULAR|_2P|VERB|IMPERATIVE|PASSIVE,'3iov');
1006   AddDeclension("imini",PLURAL|_2P|VERB|IMPERATIVE|PASSIVE,'3iov');
1007 
1008   AddDeclension("ito",SINGULAR|_2P|VERB|IMPERATIVE|FUTURE,'3iov');
1009   AddDeclension("itote",PLURAL|_2P|VERB|IMPERATIVE|FUTURE,'3iov');
1010   AddDeclension("itor",SINGULAR|_2P|VERB|IMPERATIVE|PASSIVE|FUTURE,'3iov');
1011   AddDeclension("ito",SINGULAR|_3P|VERB|IMPERATIVE|FUTURE,'3iov');
1012   AddDeclension("itunto",PLURAL|_3P|VERB|IMPERATIVE|FUTURE,'3iov');
1013   AddDeclension("itor",SINGULAR|_3P|VERB|IMPERATIVE|PASSIVE|FUTURE,'3iov');
1014   AddDeclension("iuntor",PLURAL|_3P|VERB|IMPERATIVE|FUTURE|PASSIVE,'3iov');
1015 //3io infintiives
1016   AddDeclension("ere",INFINITIVE,'3iov');
1017   AddDeclension("i",INFINITIVE|PASSIVE,'3iov');
1018   AddDeclension("isse",INFINITIVE|PERFECT,'3iov');
1019 //This is handled by AddWordByPrincibleParts
1020 /*
1021 //3io Participles
1022   AddDeclension("iens",PARTICIPLE,'3iov');
1023   AddDeclension("entis",PARTICIPLE,'3iov');
1024   AddDeclension("urus",PARTICIPLE|FUTURE,'3iov');
1025   AddDeclension("us",PARTICIPLE|PERFECT|PASSIVE,'3iov');
1026   AddDeclension("iendus",PARTICIPLE|FUTURE|PASSIVE,'3iov');
1027 */
1028 //3io gerunds
1029   AddDeclension("endi",GERUND|GENITIVE,'3iov');
1030   AddDeclension("endo",GERUND|DATIVE,'3iov');
1031   AddDeclension("endum",GERUND|ACCUSATIVE,'3iov');
1032   AddDeclension("endo",GERUND|ABLATIVE,'3iov');
1033 //Adfjectives
1034   AddDeclension("",ADJECTIVE|SINGULAR|MASCULINE|NOMITIVE,'adj12');
1035   AddDeclension("us",ADJECTIVE|SINGULAR|MASCULINE|NOMITIVE,'adj12');
1036   AddDeclension("i",ADJECTIVE|PLURAL|MASCULINE|NOMITIVE,'adj12');
1037   AddDeclension("i",ADJECTIVE|SINGULAR|GENITIVE|MASCULINE,'adj12');
1038   AddDeclension("orum",ADJECTIVE|PLURAL|GENITIVE|MASCULINE,'adj12');
1039   AddDeclension("o",ADJECTIVE|SINGULAR|DATIVE|MASCULINE,'adj12');
1040   AddDeclension("is",ADJECTIVE|PLURAL|DATIVE|MASCULINE,'adj12');
1041   AddDeclension("um",ADJECTIVE|SINGULAR|ACCUSATIVE|MASCULINE,'adj12');
1042   AddDeclension("os",ADJECTIVE|PLURAL|ACCUSATIVE|MASCULINE,'adj12');
1043   AddDeclension("o",ADJECTIVE|SINGULAR|ABLATIVE|MASCULINE,'adj12');
1044   AddDeclension("is",ADJECTIVE|PLURAL|ABLATIVE|MASCULINE,'adj12'); 
1045 
1046   AddDeclension("a",ADJECTIVE|SINGULAR|FEMININE|NOMITIVE,'adj12');
1047   AddDeclension("ae",ADJECTIVE|PLURAL|FEMININE|NOMITIVE,'adj12');
1048   AddDeclension("ae",ADJECTIVE|SINGULAR|GENITIVE|FEMININE,'adj12');
1049   AddDeclension("arum",ADJECTIVE|PLURAL|GENITIVE|FEMININE,'adj12');
1050   AddDeclension("ae",ADJECTIVE|SINGULAR|DATIVE|FEMININE,'adj12');
1051   AddDeclension("is",ADJECTIVE|PLURAL|DATIVE|FEMININE,'adj12');
1052   AddDeclension("am",ADJECTIVE|SINGULAR|ACCUSATIVE|FEMININE,'adj12');
1053   AddDeclension("as",ADJECTIVE|PLURAL|ACCUSATIVE|FEMININE,'adj12');
1054   AddDeclension("a",ADJECTIVE|SINGULAR|ABLATIVE|FEMININE,'adj12');
1055   AddDeclension("is",ADJECTIVE|PLURAL|ABLATIVE|FEMININE,'adj12'); 
1056 
1057   AddDeclension("um",ADJECTIVE|SINGULAR|NEUTER|NOMITIVE,'adj12');
1058   AddDeclension("a",ADJECTIVE|PLURAL|NEUTER|NOMITIVE,'adj12');
1059   AddDeclension("i",ADJECTIVE|SINGULAR|GENITIVE|NEUTER,'adj12');
1060   AddDeclension("orum",ADJECTIVE|PLURAL|GENITIVE|NEUTER,'adj12');
1061   AddDeclension("o",ADJECTIVE|SINGULAR|DATIVE|NEUTER,'adj12');
1062   AddDeclension("is",ADJECTIVE|PLURAL|DATIVE|NEUTER,'adj12');
1063   AddDeclension("um",ADJECTIVE|SINGULAR|ACCUSATIVE|NEUTER,'adj12');
1064   AddDeclension("a",ADJECTIVE|PLURAL|ACCUSATIVE|NEUTER,'adj12');
1065   AddDeclension("o",ADJECTIVE|SINGULAR|ABLATIVE|NEUTER,'adj12');
1066   AddDeclension("is",ADJECTIVE|PLURAL|ABLATIVE|NEUTER,'adj12'); 
1067 //Adjectives third delcension
1068   //Adverbs can be made with 3rd declension adjectives
1069   //TODO make it find the difference between "iter" and "er"(when stem ending with "nt")
1070   AddDeclension("iter",ADVERB|NEUTER,'adj3');
1071   AddDeclension("er",ADVERB|NEUTER,'adj3');
1072   AddDeclension("iter",ADJECTIVE|NEUTER,'adj3');
1073   AddDeclension("er",ADJECTIVE|NEUTER,'adj3');
1074 //4th conujation
1075   AddDeclension("io",SINGULAR|_1P|VERB,'4v');
1076   AddDeclension("imus",PLURAL|_1P|VERB,'4v');
1077   AddDeclension("is",SINGULAR|_2P|VERB,'4v');
1078   AddDeclension("itis",PLURAL|_2P|VERB,'4v');
1079   AddDeclension("it",SINGULAR|_3P|VERB,'4v');
1080   AddDeclension("iunt",PLURAL|_3P|VERB,'4v');
1081 
1082   AddDeclension("ior",PASSIVE|SINGULAR|_1P|VERB,'4v');
1083   AddDeclension("imur",PASSIVE|PLURAL|_1P|VERB,'4v');
1084   AddDeclension("iris",PASSIVE|SINGULAR|_2P|VERB,'4v');
1085   AddDeclension("ire",PASSIVE|SINGULAR|_2P|VERB,'4v');
1086   AddDeclension("imini",PASSIVE|PLURAL|_2P|VERB,'4v');
1087   AddDeclension("itur",PASSIVE|SINGULAR|_3P|VERB,'4v');
1088   AddDeclension("iuntur",PASSIVE|PLURAL|_3P|VERB,'4v');
1089 
1090   AddDeclension("iebam",IMPERFECT|SINGULAR|_1P|VERB,'4v');
1091   AddDeclension("ibamus",IMPERFECT|PLURAL|_1P|VERB,'4v');
1092   AddDeclension("iebas",IMPERFECT|SINGULAR|_2P|VERB,'4v');
1093   AddDeclension("iebatis",IMPERFECT|PLURAL|_2P|VERB,'4v');
1094   AddDeclension("iet",IMPERFECT|SINGULAR|_3P|VERB,'4v');
1095   AddDeclension("ient",IMPERFECT|PLURAL|_3P|VERB,'4v');
1096 
1097   AddDeclension("iebar",IMPERFECT|PASSIVE|SINGULAR|_1P|VERB,'4v');
1098   AddDeclension("iebarmur",IMPERFECT|PASSIVE|PLURAL|_1P|VERB,'4v');
1099   AddDeclension("iebaris",IMPERFECT|PASSIVE|SINGULAR|_2P|VERB,'4v');
1100   AddDeclension("iebare",IMPERFECT|PASSIVE|SINGULAR|_2P|VERB,'4v');
1101   AddDeclension("iebamini",IMPERFECT|PASSIVE|PLURAL|_2P|VERB,'4v');
1102   AddDeclension("iebatur",IMPERFECT|PASSIVE|SINGULAR|_3P|VERB,'4v');
1103   AddDeclension("iebantur",IMPERFECT|PASSIVE|PLURAL|_3P|VERB,'4v');
1104 
1105   AddDeclension("iam",FUTURE|SINGULAR|_1P|VERB,'4v');
1106   AddDeclension("iemus",FUTURE|PLURAL|_1P|VERB,'4v');
1107   AddDeclension("ies",FUTURE|SINGULAR|_2P|VERB,'4v');
1108   AddDeclension("ietis",FUTURE|PLURAL|_2P|VERB,'4v');
1109   AddDeclension("iet",FUTURE|SINGULAR|_3P|VERB,'4v');
1110   AddDeclension("ient",FUTURE|PLURAL|_3P|VERB,'4v');
1111 
1112   AddDeclension("iar",FUTURE|PASSIVE|SINGULAR|_1P|VERB,'4v');
1113   AddDeclension("iemur",FUTURE|PASSIVE|PLURAL|_1P|VERB,'4v');
1114   AddDeclension("ieris",FUTURE|PASSIVE|SINGULAR|_2P|VERB,'4v');
1115   AddDeclension("iere",FUTURE|PASSIVE|SINGULAR|_2P|VERB,'4v');
1116   AddDeclension("iemini",FUTURE|PASSIVE|PLURAL|_2P|VERB,'4v');
1117   AddDeclension("ietur",FUTURE|PASSIVE|SINGULAR|_3P|VERB,'4v');
1118   AddDeclension("ientur",FUTURE|PASSIVE|PLURAL|_3P|VERB,'4v');
1119 
1120   AddDeclension("i",PERFECT|SINGULAR|_1P|VERB,'4v');
1121   AddDeclension("imus",PERFECT|PLURAL|_1P|VERB,'4v');
1122   AddDeclension("isti",PERFECT|SINGULAR|_2P|VERB,'4v');
1123   AddDeclension("istis",PERFECT|PLURAL|_2P|VERB,'4v');
1124   AddDeclension("it",PERFECT|SINGULAR|_3P|VERB,'4v');
1125   AddDeclension("irunt",PERFECT|PLURAL|_3P|VERB,'4v');
1126   AddDeclension("ire",PERFECT|PLURAL|_3P|VERB,'4v');
1127 
1128   AddDeclension("eram",PLUPERFECT|SINGULAR|_1P|VERB,'4v');
1129   AddDeclension("eramus",PLUPERFECT|PLURAL|_1P|VERB,'4v');
1130   AddDeclension("eras",PLUPERFECT|SINGULAR|_2P|VERB,'4v');
1131   AddDeclension("eratis",PLUPERFECT|PLURAL|_2P|VERB,'4v');
1132   AddDeclension("erat",PLUPERFECT|SINGULAR|_3P|VERB,'4v');
1133   AddDeclension("erant",PLUPERFECT|PLURAL|_3P|VERB,'4v');
1134 
1135   AddDeclension("ero",FUTURE|PERFECT|SINGULAR|_1P|VERB,'4v');
1136   AddDeclension("erimus",FUTURE|PERFECT|PLURAL|_1P|VERB,'4v');
1137   AddDeclension("eris",FUTURE|PERFECT|SINGULAR|_2P|VERB,'4v');
1138   AddDeclension("eritis",FUTURE|PERFECT|PLURAL|_2P|VERB,'4v');
1139   AddDeclension("erit",FUTURE|PERFECT|SINGULAR|_3P|VERB,'4v');
1140   AddDeclension("erint",FUTURE|PERFECT|PLURAL|_3P|VERB,'4v');
1141 
1142   AddDeclension("ire",INFINITIVE,'4v');
1143   AddDeclension("iri",INFINITIVE|PASSIVE,'4v');
1144   AddDeclension("isse",INFINITIVE|PERFECT,'4v');
1145 
1146   AddDeclension("iendi",GERUND|GENITIVE,'4v');
1147   AddDeclension("iendo",GERUND|DATIVE,'4v');
1148   AddDeclension("iendum",GERUND|ACCUSATIVE,'4v');
1149   AddDeclension("iendo",GERUND|ABLATIVE,'4v');
1150 
1151 }
1152 InitLatin;
1153 U0 InitDict() {
1154   AddWordByPrincibleParts("Christ",NOUN,"Christum","Christi");
1155   AddWordByPrincibleParts("Mathew",NOUN,"Matheum","Mathei");
1156   AddWordByPrincibleParts("Shapes",NOUN,"foramentum","formamenti");
1157   AddWordByPrincibleParts("one",ADJECTIVE,"unus","una"); //One
1158   AddWordByPrincibleParts("two",ADJECTIVE,"duo","duorem"); //Two
1159   AddWordByPrincibleParts("three",ADJECTIVE,"tres","trium"); //Three
1160   TrieAdd("ad",PREPOSITION,"towards"); //Towards
1161   TrieAdd("et",CONJUNCTION,"and");
1162   TrieAdd("atque",CONJUNCTION,"also");
1163   TrieAdd("ac",CONJUNCTION,"also");
1164   TrieAdd("etiam",CONJUNCTION,"also");
1165 //Also
1166   TrieAdd("atque",CONJUNCTION,"also");
1167   TrieAdd("quoque",CONJUNCTION,"also");
1168 //or thing or other
1169   TrieAdd("aut",CONJUNCTION,"or");
1170 //but
1171   TrieAdd("sed",CONJUNCTION,"but");
1172   TrieAdd("autem",CONJUNCTION,"but");
1173   TrieAdd("verum",CONJUNCTION,"but");
1174 //However
1175   TrieAdd("tamen",CONJUNCTION,"however");
1176 //For
1177   TrieAdd("name",CONJUNCTION,"for");
1178   TrieAdd("enim",CONJUNCTION,"enim");
1179 //Therefore
1180   TrieAdd("ergo",CONJUNCTION,"therefore");
1181   TrieAdd("igitur",CONJUNCTION,"therefore");
1182   TrieAdd("itaque",ADVERB|INDECLINABLE,"therefore");
1183 //Pronouns 1st person
1184   TrieAdd("ego",NOMITIVE|PRONOUN|_1P|SINGULAR,"I");
1185   TrieAdd("nos",NOMITIVE|PRONOUN|_1P|PLURAL,"we/us");
1186   TrieAdd("mei",GENITIVE|PRONOUN|_1P|SINGULAR,"my");
1187   TrieAdd("nostrum",GENITIVE|PRONOUN|_1P|PLURAL,"ours");
1188   TrieAdd("mihi",DATIVE|PRONOUN|_1P|SINGULAR,"my");
1189   TrieAdd("nobis",DATIVE|PRONOUN|_1P|PLURAL,"ours");
1190   TrieAdd("me",ACCUSATIVE|PRONOUN|_1P|SINGULAR,"me");
1191   TrieAdd("nos",ACCUSATIVE|PRONOUN|_1P|PLURAL,"we/us");
1192   TrieAdd("me",ABLATIVE|PRONOUN|_1P|SINGULAR,"my");
1193   TrieAdd("nobis",ABLATIVE|PRONOUN|_1P|PLURAL,"we/us");
1194 //Pronoubns 2nd persionb
1195   TrieAdd("tu",NOMITIVE|PRONOUN|_2P|SINGULAR,"you");
1196   TrieAdd("vos",NOMITIVE|PRONOUN|_2P|PLURAL,"yours");
1197   TrieAdd("tui",GENITIVE|PRONOUN|_2P|SINGULAR,"your");
1198   TrieAdd("vestrum",GENITIVE|PRONOUN|_2P|PLURAL,"yours");
1199   TrieAdd("tibi",DATIVE|PRONOUN|_2P|SINGULAR,"to you");
1200   TrieAdd("vobis",DATIVE|PRONOUN|_2P|PLURAL,"yours");
1201   TrieAdd("te",ACCUSATIVE|PRONOUN|_2P|SINGULAR,"you");
1202   TrieAdd("vos",ACCUSATIVE|PRONOUN|_2P|PLURAL,"you");
1203   TrieAdd("te",ABLATIVE|PRONOUN|_2P|SINGULAR,"you");
1204   TrieAdd("vobis",ABLATIVE|PRONOUN|_2P|PLURAL,"you");
1205 //Pronouns demonstatrtive
1206   TrieAdd("hic",NOMITIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"this");
1207   TrieAdd("haec",NOMITIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|ADJECTIVE,"this");
1208   TrieAdd("hoc",NOMITIVE|PRONOUN|SINGULAR|DEMONSTRATIVE|ADJECTIVE,"this");
1209 
1210   TrieAdd("hi",NOMITIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"these");
1211   TrieAdd("hae",NOMITIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|ADJECTIVE,"these");
1212   TrieAdd("haec",NOMITIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|ADJECTIVE,"these");
1213 
1214   TrieAdd("huius",GENITIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"his");
1215   TrieAdd("huius",GENITIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|ADJECTIVE,"hers");
1216   TrieAdd("huius",GENITIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|ADJECTIVE,"it's");
1217 
1218   TrieAdd("horum",GENITIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"these");
1219   TrieAdd("harum",GENITIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|ADJECTIVE,"these");
1220   TrieAdd("horum",GENITIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|ADJECTIVE,"these");
1221 
1222   TrieAdd("huic",DATIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"this");
1223   TrieAdd("huic",DATIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|ADJECTIVE,"this");
1224   TrieAdd("huic",DATIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|ADJECTIVE,"this");
1225 
1226   TrieAdd("his",DATIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"these");
1227   TrieAdd("his",DATIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|ADJECTIVE,"these");
1228   TrieAdd("his",DATIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|ADJECTIVE,"these");
1229 
1230   TrieAdd("hunc",ACCUSATIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"this");
1231   TrieAdd("hanc",ACCUSATIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|ADJECTIVE,"this");
1232   TrieAdd("hoc",ACCUSATIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|ADJECTIVE,"this");
1233 
1234   TrieAdd("hos",ACCUSATIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"these");
1235   TrieAdd("has",ACCUSATIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|ADJECTIVE,"these");
1236   TrieAdd("haec",ACCUSATIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|ADJECTIVE,"these");
1237 
1238   TrieAdd("hoc",ACCUSATIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"this");
1239   TrieAdd("hac",ABLATIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|ADJECTIVE,"this");
1240   TrieAdd("hoc",ABLATIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|ADJECTIVE,"this");
1241 
1242   TrieAdd("his",ABLATIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|ADJECTIVE,"these");
1243   TrieAdd("his",ABLATIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|ADJECTIVE,"these");
1244   TrieAdd("his",ABLATIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|ADJECTIVE,"these");
1245 //Pronouns demonstrative(2)
1246   TrieAdd("ille",NOMITIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"that");
1247   TrieAdd("illa",NOMITIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"that");
1248   TrieAdd("illud",NOMITIVE|PRONOUN|SINGULAR|DEMONSTRATIVE|DETIRMINER,"that");
1249 
1250   TrieAdd("illi",NOMITIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"these");
1251   TrieAdd("illae",NOMITIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"these");
1252   TrieAdd("illa",NOMITIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"these");
1253 
1254   TrieAdd("illus",GENITIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"his");
1255   TrieAdd("illus",GENITIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"hers");
1256   TrieAdd("illus",GENITIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|DETIRMINER,"it's");
1257 
1258   TrieAdd("illorum",GENITIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"these");
1259   TrieAdd("illarum",GENITIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"these");
1260   TrieAdd("illorum",GENITIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"these");
1261 
1262   TrieAdd("illi",DATIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"that");
1263   TrieAdd("illi",DATIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"that");
1264   TrieAdd("illi",DATIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|DETIRMINER,"that");
1265 
1266   TrieAdd("illis",DATIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"these");
1267   TrieAdd("illis",DATIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"these");
1268   TrieAdd("illis",DATIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"these");
1269 
1270   TrieAdd("illum",ACCUSATIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"that");
1271   TrieAdd("illam",ACCUSATIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"that");
1272   TrieAdd("illud",ACCUSATIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|DETIRMINER,"that");
1273 
1274   TrieAdd("illos",ACCUSATIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"these");
1275   TrieAdd("illas",ACCUSATIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"these");
1276   TrieAdd("illa",ACCUSATIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"these");
1277 
1278   TrieAdd("illo",ABLATIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"that");
1279   TrieAdd("illa",ABLATIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"that");
1280   TrieAdd("illo",ABLATIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|DETIRMINER,"that");
1281 
1282   TrieAdd("illis",ABLATIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"these");
1283   TrieAdd("illis",ABLATIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"these");
1284   TrieAdd("illis",ABLATIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"these");
1285 //This,these,that those
1286   TrieAdd("is",NOMITIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"he");
1287   TrieAdd("ea",NOMITIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"she");
1288   TrieAdd("id",NOMITIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|DETIRMINER,"that");
1289 
1290   TrieAdd("ei",NOMITIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"them");
1291   TrieAdd("eae",NOMITIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"them");
1292   TrieAdd("ea",NOMITIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"those");
1293 
1294   TrieAdd("eius",GENITIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"his");
1295   TrieAdd("eius",GENITIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"hers");
1296   TrieAdd("eius",GENITIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|DETIRMINER,"it's");
1297 
1298   TrieAdd("eorum",GENITIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"them");
1299   TrieAdd("eorum",GENITIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"them");
1300   TrieAdd("eorum",GENITIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"those");
1301 
1302   TrieAdd("ei",DATIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"he");
1303   TrieAdd("ei",DATIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"she");
1304   TrieAdd("ei",DATIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|DETIRMINER,"it");
1305 
1306   TrieAdd("eis",DATIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"them");
1307   TrieAdd("eis",DATIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"them");
1308   TrieAdd("eis",DATIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"those");
1309 
1310   TrieAdd("eum",ACCUSATIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"he");
1311   TrieAdd("eam",ACCUSATIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"she");
1312   TrieAdd("id",ACCUSATIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|DETIRMINER,"it");
1313 
1314   TrieAdd("eos",ACCUSATIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"them");
1315   TrieAdd("eas",ACCUSATIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"them");
1316   TrieAdd("ea",ACCUSATIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"those");
1317 
1318   TrieAdd("eo",ABLATIVE|PRONOUN|SINGULAR|MASCULINE|DEMONSTRATIVE|DETIRMINER,"he");
1319   TrieAdd("ea",ABLATIVE|PRONOUN|SINGULAR|FEMININE|DEMONSTRATIVE|DETIRMINER,"she");
1320   TrieAdd("eo",ABLATIVE|PRONOUN|SINGULAR|NEUTER|DEMONSTRATIVE|DETIRMINER,"it");
1321 
1322   TrieAdd("eis",ABLATIVE|PRONOUN|PLURAL|MASCULINE|DEMONSTRATIVE|DETIRMINER,"them");
1323   TrieAdd("eis",ABLATIVE|PRONOUN|PLURAL|FEMININE|DEMONSTRATIVE|DETIRMINER,"them");
1324   TrieAdd("eis",ABLATIVE|PRONOUN|PLURAL|NEUTER|DEMONSTRATIVE|DETIRMINER,"those");
1325 //Relative pronouns TODO
1326   TrieAdd("qui",NOMITIVE|PRONOUN|SINGULAR|MASCULINE|RELATIVE,"who");
1327   TrieAdd("quae",NOMITIVE|PRONOUN|SINGULAR|FEMININE|RELATIVE,"who");
1328   TrieAdd("quod",NOMITIVE|PRONOUN|SINGULAR|NEUTER|RELATIVE,"who");
1329 
1330   TrieAdd("qui",NOMITIVE|PRONOUN|PLURAL|MASCULINE|RELATIVE,"which");
1331   TrieAdd("quae",NOMITIVE|PRONOUN|PLURAL|FEMININE|RELATIVE,"which");
1332   TrieAdd("quae",NOMITIVE|PRONOUN|PLURAL|NEUTER|RELATIVE,"which");
1333 
1334   TrieAdd("cuius",GENITIVE|PRONOUN|SINGULAR|MASCULINE|RELATIVE,"who");
1335   TrieAdd("cuius",GENITIVE|PRONOUN|SINGULAR|FEMININE|RELATIVE,"who");
1336   TrieAdd("cuius",GENITIVE|PRONOUN|SINGULAR|NEUTER|RELATIVE,"who");
1337 
1338   TrieAdd("quorum",GENITIVE|PRONOUN|PLURAL|MASCULINE|RELATIVE,"which");
1339   TrieAdd("quorum",GENITIVE|PRONOUN|PLURAL|FEMININE|RELATIVE,"which");
1340   TrieAdd("quorum",GENITIVE|PRONOUN|PLURAL|NEUTER|RELATIVE,"which");
1341 
1342   TrieAdd("cui",DATIVE|PRONOUN|SINGULAR|MASCULINE|RELATIVE,"who");
1343   TrieAdd("cui",DATIVE|PRONOUN|SINGULAR|FEMININE|RELATIVE,"who");
1344   TrieAdd("cui",DATIVE|PRONOUN|SINGULAR|NEUTER|RELATIVE,"who");
1345 
1346   TrieAdd("quibus",DATIVE|PRONOUN|PLURAL|MASCULINE|RELATIVE,"which");
1347   TrieAdd("quibus",DATIVE|PRONOUN|PLURAL|FEMININE|RELATIVE,"which");
1348   TrieAdd("quibus",DATIVE|PRONOUN|PLURAL|NEUTER|RELATIVE,"which");
1349 
1350   TrieAdd("quem",ACCUSATIVE|PRONOUN|SINGULAR|MASCULINE|RELATIVE,"who");
1351   TrieAdd("quem",ACCUSATIVE|PRONOUN|SINGULAR|FEMININE|RELATIVE,"who");
1352   TrieAdd("quem",ACCUSATIVE|PRONOUN|SINGULAR|NEUTER|RELATIVE,"who");
1353 
1354   TrieAdd("quos",ACCUSATIVE|PRONOUN|PLURAL|MASCULINE|RELATIVE,"which");
1355   TrieAdd("quas",ACCUSATIVE|PRONOUN|PLURAL|FEMININE|RELATIVE,"which");
1356   TrieAdd("quae",ACCUSATIVE|PRONOUN|PLURAL|NEUTER|RELATIVE,"which");
1357 
1358   TrieAdd("quo",ACCUSATIVE|PRONOUN|SINGULAR|MASCULINE|RELATIVE,"who");
1359   TrieAdd("qua",ABLATIVE|PRONOUN|SINGULAR|FEMININE|RELATIVE,"who");
1360   TrieAdd("quo",ABLATIVE|PRONOUN|SINGULAR|NEUTER|RELATIVE,"who");
1361 
1362   TrieAdd("quibus",ABLATIVE|PRONOUN|PLURAL|MASCULINE|RELATIVE,"which");
1363   TrieAdd("quibus",ABLATIVE|PRONOUN|PLURAL|FEMININE|RELATIVE,"which");
1364   TrieAdd("quibus",ABLATIVE|PRONOUN|PLURAL|NEUTER|RELATIVE,"which");
1365 
1366 
1367   //Prepositions
1368   TrieAdd("ab",PREPOSITION,"away from"); //away from(ablative)
1369   TrieAdd("a",PREPOSITION,"away from"); //away from(ablative)
1370   TrieAdd("ex",PREPOSITION,"out of"); //out of(ablative)
1371   TrieAdd("e",PREPOSITION,"out of"); //out of(ablative)
1372   TrieAdd("de",PREPOSITION,"from,about"); //down from(ablative)
1373   TrieAdd("in",PREPOSITION,"in"); //in (ablative)
1374   TrieAdd("cum",PREPOSITION,"with"); //with(ablative)
1375 
1376   TrieAdd("in",PREPOSITION,"into"); //itno(accusative)
1377   TrieAdd("ab",PREPOSITION,"towards"); //toward (accusative)
1378   TrieAdd("circum",PREPOSITION,"around"); //around (accusative)
1379   TrieAdd("supra",PREPOSITION,"above"); //above(accusative)
1380 
1381   //Interogitives
1382   TrieAdd("ubi",PRONOUN|INTEROGITIVE|ACCUSATIVE,"where"); //Where
1383   TrieAdd("quo",PRONOUN|INTEROGITIVE|ACCUSATIVE,"where"); //Where (are you going)
1384   TrieAdd("cur",PRONOUN|INTEROGITIVE|ACCUSATIVE,"what"); //What reason
1385   TrieAdd("quomondo",PRONOUN|INTEROGITIVE|ACCUSATIVE,"how"); //How
1386   TrieAdd("quid",PRONOUN|INTEROGITIVE|ACCUSATIVE,"what"); //What is it
1387   TrieAdd("quis",PRONOUN|INTEROGITIVE|ACCUSATIVE,"why"); //Who is it 
1388 
1389 //Conjunctions
1390   TrieAdd("vel",CONJUNCTION|INDECLINABLE,"or");
1391 
1392 //Adverb
1393   TrieAdd("num",ADVERB|INDECLINABLE,"hopefully not"); //Hopefully not
1394   TrieAdd("nonne",ADVERB|INDECLINABLE,"hopefully"); //Hopefully
1395   TrieAdd("quando",ADVERB|INDECLINABLE,"when"); //when X happens
1396   TrieAdd("quando",CONJUNCTION|INDECLINABLE,"when"); //when X happens
1397  
1398 //Irregulars
1399   //To Wish
1400 
1401   TrieAdd("volo",_1P|VERB|SINGULAR,"wish");
1402   TrieAdd("vis",_2P|VERB|SINGULAR,"wish");
1403   TrieAdd("vult",_3P|VERB|SINGULAR,"wish");
1404   TrieAdd("volumus",_1P|VERB|PLURAL,"wish");
1405   TrieAdd("vultis",_2P|VERB|PLURAL,"wish");
1406   TrieAdd("vulunt",_3P|VERB|PLURAL,"wish");
1407  //Prefer
1408   TrieAdd("malo",_1P|VERB|SINGULAR,"prefer");
1409   TrieAdd("mavis",_2P|VERB|SINGULAR,"prefer");
1410   TrieAdd("mavult",_3P|VERB|SINGULAR,"prefer");
1411   TrieAdd("malumus",_1P|VERB|PLURAL,"prefer");
1412   TrieAdd("mavultis",_2P|VERB|PLURAL,"prefer");
1413   TrieAdd("malunt",_3P|VERB|PLURAL,"prefer");
1414 //Bring
1415   TrieAdd("fero",_1P|VERB|SINGULAR,"bring");
1416   TrieAdd("fers",_2P|VERB|SINGULAR,"bring");
1417   TrieAdd("fert",_3P|VERB|SINGULAR,"bring");
1418   TrieAdd("ferimus",_1P|VERB|PLURAL,"bring");
1419   TrieAdd("fertis",_2P|VERB|PLURAL,"bring");
1420   TrieAdd("ferunt",_3P|VERB|PLURAL,"bring");
1421   TrieAdd("ferebatur",VERB|_3P|IMPERFECT|SINGULAR,"bring");
1422 //To go
1423   TrieAdd("eo",_1P|VERB|SINGULAR,"go");
1424   TrieAdd("is",_2P|VERB|SINGULAR,"go");
1425   TrieAdd("it",_3P|VERB|SINGULAR,"go");
1426   TrieAdd("imus",_1P|VERB|PLURAL,"go");
1427   TrieAdd("itis",_2P|VERB|PLURAL,"go");
1428   TrieAdd("eunt",_3P|VERB|PLURAL,"go");
1429 //Numbers
1430   AddWordByPrincibleParts("one",ADJECTIVE,"unus","una"); //One
1431   AddWordByPrincibleParts("two",ADJECTIVE,"duo","duorem"); //Two
1432   AddWordByPrincibleParts("three",ADJECTIVE,"tres","trium"); //Three
1433   TrieAdd("quattuor",ADJECTIVE|INDECLINABLE,"four"); //4
1434   TrieAdd("quinque",ADJECTIVE|INDECLINABLE,"five"); //5
1435   TrieAdd("sex",ADJECTIVE|INDECLINABLE,"six"); //6
1436   TrieAdd("septum",ADJECTIVE|INDECLINABLE,"seven"); //7
1437   TrieAdd("octo",ADJECTIVE|INDECLINABLE,"eight"); //8
1438   TrieAdd("novem",ADJECTIVE|INDECLINABLE,"nine"); //9
1439   TrieAdd("decem",ADJECTIVE|INDECLINABLE,"ten"); //10
1440 }
1441 InitDict;
1442 
1443 //Use this instead of TrieGet,This will account for -ne -que suffixes
1444 #include "Dict.HC";
1445 
1446 CTrie *GetWord(U8 *word) {
1447   if(!word) return NULL;
1448   if(*word=='['||*word==']')
1449     return NULL;
1450   U8 *copy=NULL;
1451   LookUpWord(word);
1452   CTrie *base=TrieGet(word);
1453   if(base) return base;
1454   if(EndsWith(word,"ne")) {
1455     copy=StrNew(word);
1456     copy[StrLen(word)-2]=0;
1457     if(base=TrieGet(copy)) {
1458       Free(copy);
1459       return TrieAdd(word,base->flags|INTEROGITIVE);
1460     }
1461     Free(copy);
1462   }
1463   if(EndsWith(word,"que")) {
1464     copy=StrNew(word);
1465     copy[StrLen(word)-3]=0;
1466     if(base=TrieGet(copy)) {
1467       Free(copy);
1468       return TrieAdd(word,base->flags|CONJUNCTION2|CONJUNCTION,base->translation);
1469     }
1470     Free(copy);
1471   }
1472 //  DbgPrint("Unknonw word %s\n",word);
1473   return NULL;
1474 }