forked from GitHub/gf-core
urdu
This commit is contained in:
127
examples/urduhindi/CatUrduHindiAbs.gf
Normal file
127
examples/urduhindi/CatUrduHindiAbs.gf
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
abstract CatUrduHindiAbs = {
|
||||||
|
|
||||||
|
--cat and fun rules for morphology (FM generated)
|
||||||
|
|
||||||
|
cat
|
||||||
|
N;
|
||||||
|
PN;
|
||||||
|
Adj;
|
||||||
|
Adj1;
|
||||||
|
AdjD;
|
||||||
|
Adv;
|
||||||
|
Num;
|
||||||
|
Verb_Aux;
|
||||||
|
Verb;
|
||||||
|
Verb1;
|
||||||
|
Verb2;
|
||||||
|
Verb3;
|
||||||
|
RelPron3;
|
||||||
|
RelPron2;
|
||||||
|
RelPron1;
|
||||||
|
RelPron;
|
||||||
|
IndefPron2;
|
||||||
|
IndefPron1;
|
||||||
|
IndefPron;
|
||||||
|
InterPron3;
|
||||||
|
InterPron2;
|
||||||
|
InterPron1;
|
||||||
|
InterPron;
|
||||||
|
RefPron;
|
||||||
|
PersPron;
|
||||||
|
PossPron;
|
||||||
|
DemPron;
|
||||||
|
Neg;
|
||||||
|
Quest;
|
||||||
|
Conj;
|
||||||
|
Intjunc;
|
||||||
|
PossPostPos;
|
||||||
|
PostP;
|
||||||
|
Part;
|
||||||
|
|
||||||
|
-- Categories for Syntax
|
||||||
|
CN;
|
||||||
|
NP;
|
||||||
|
VP;
|
||||||
|
S;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--functions for Syntax
|
||||||
|
|
||||||
|
fun
|
||||||
|
UseN : N -> CN ; --ktab
|
||||||
|
|
||||||
|
UseNPSg : NP -> CN -> NP;
|
||||||
|
UseNPPl : NP -> CN -> NP;
|
||||||
|
|
||||||
|
-- myry ktab(my Book), tyry ktab(your book)
|
||||||
|
DetN_Pers1 : PossPron -> CN -> CN ;
|
||||||
|
DetN_Pers2Casual : PossPron -> CN -> CN ;
|
||||||
|
DetN_Pers2Familiar : PossPron -> CN -> CN ;
|
||||||
|
DetN_Pers2Respect : PossPron -> CN -> CN ;
|
||||||
|
DetN_Pers3Near : PossPron -> CN -> CN ;
|
||||||
|
DetN_Pers3Distant : PossPron -> CN -> CN ;
|
||||||
|
|
||||||
|
DetCN : Num -> CN -> NP ; --ayk ktab(one book), dw ktabyN(two books)
|
||||||
|
|
||||||
|
-- wh ktab(that book), yh ktab(this book), a(i)s ktab, a(o)s ktab
|
||||||
|
DetCN1Sg : DemPron -> CN -> NP ;
|
||||||
|
|
||||||
|
-- wh ktabyN(those books), yh ktabyN(these books), a(i)n ktabwN, a(o)n ktabwN
|
||||||
|
DetCN1Pl : DemPron -> CN -> NP ;
|
||||||
|
-- wh ayk ktab(that one book), yh ayk ktab(this one book)
|
||||||
|
DetCN2 : DemPron -> Num -> CN -> NP ;
|
||||||
|
DetCN3Sg : CN -> NP;
|
||||||
|
DetCN3Pl : CN -> NP;
|
||||||
|
UsePN : PN -> NP ; -- Pakstan
|
||||||
|
-- wh pakstan(that Pakistan), yh pakstan(this Pakistan)
|
||||||
|
UsePN1 : DemPron -> PN -> NP ;
|
||||||
|
|
||||||
|
--Personal Pronouns
|
||||||
|
UsePronSgP1M : PersPron -> NP ; -- myN, mjh
|
||||||
|
UsePronSgP1F : PersPron -> NP ; -- myN, mjh
|
||||||
|
UsePronPlP1M : PersPron -> NP ; -- hm,
|
||||||
|
UsePronPlP1F : PersPron -> NP ;
|
||||||
|
UsePronSgP2CM: PersPron -> NP ;
|
||||||
|
UsePronSgP2CF: PersPron -> NP ;
|
||||||
|
UsePronPlP2CM: PersPron -> NP ;
|
||||||
|
UsePronPlP2CF: PersPron -> NP ;
|
||||||
|
UsePronSgP2FM: PersPron -> NP ;
|
||||||
|
UsePronSgP2FF: PersPron -> NP ;
|
||||||
|
UsePronPlP2FM: PersPron -> NP ;
|
||||||
|
UsePronPlP2FF: PersPron -> NP ;
|
||||||
|
UsePronSgP2RM: PersPron -> NP ;
|
||||||
|
UsePronSgP2RF: PersPron -> NP ;
|
||||||
|
UsePronPlP2RM: PersPron -> NP ;
|
||||||
|
UsePronPlP2RF: PersPron -> NP ;
|
||||||
|
UsePronSgP3NM: PersPron -> NP ;
|
||||||
|
UsePronSgP3NF: PersPron -> NP ;
|
||||||
|
UsePronPlP3NM: PersPron -> NP ;
|
||||||
|
UsePronPlP3NF: PersPron -> NP ;
|
||||||
|
UsePronSgP3DM: PersPron -> NP ;
|
||||||
|
UsePronSgP3DF: PersPron -> NP ;
|
||||||
|
UsePronPlP3DM: PersPron -> NP ;
|
||||||
|
UsePronPlP3DF: PersPron -> NP ;
|
||||||
|
|
||||||
|
|
||||||
|
UseV : Verb_Aux -> VP;
|
||||||
|
UseVVAux : Verb -> Verb_Aux -> VP;
|
||||||
|
|
||||||
|
|
||||||
|
UsePastS: NP -> VP -> S ;
|
||||||
|
UsePresS: NP -> VP -> S ;
|
||||||
|
UseFutS: NP -> VP -> S ;
|
||||||
|
|
||||||
|
UsePronVVAuxPast: NP -> VP -> S; -- a(i)s kw lyna tha
|
||||||
|
UsePronVVAuxPres: NP -> VP -> S; --a(i)s kw kyna hE
|
||||||
|
|
||||||
|
--fixme for hwN gE forms
|
||||||
|
UsePronVVAuxFut: NP -> VP -> S; --a(i)s kw kyna hwga
|
||||||
|
|
||||||
|
UseSPast: NP -> VP -> S;
|
||||||
|
UseSPres: NP -> VP -> S;
|
||||||
|
UseSFut: NP -> VP -> S;
|
||||||
|
|
||||||
|
|
||||||
|
UseS : S -> Conj -> S -> S;
|
||||||
|
} ;
|
||||||
116987
examples/urduhindi/LexUrd.gf
Normal file
116987
examples/urduhindi/LexUrd.gf
Normal file
File diff suppressed because it is too large
Load Diff
4168
examples/urduhindi/Lexicon.gf
Normal file
4168
examples/urduhindi/Lexicon.gf
Normal file
File diff suppressed because it is too large
Load Diff
3
examples/urduhindi/README
Normal file
3
examples/urduhindi/README
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Main File : Urdu.gf
|
||||||
|
|
||||||
|
Please copy this directory to GF/lib/resource1.x/
|
||||||
59
examples/urduhindi/ResUrdHin.gf
Normal file
59
examples/urduhindi/ResUrdHin.gf
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
--# -path=.:../abstract:../common:../../prelude
|
||||||
|
resource ResUrdHin = open Prelude, UrduHindiAbs in {
|
||||||
|
flags coding=utf8 ; optimize=all;
|
||||||
|
|
||||||
|
-- param and oper definitions in this file for Morphology
|
||||||
|
|
||||||
|
param Number = Sg | Pl ;
|
||||||
|
param Case = Nom | Obl | Voc ;
|
||||||
|
param Gender = Masc | Fem ;
|
||||||
|
param Person = Pers1 | Pers2_Casual | Pers2_Familiar |
|
||||||
|
Pers2_Respect | Pers3_Near | Pers3_Distant ;
|
||||||
|
param Degree = Posit | Comp | Super ;
|
||||||
|
param ProperNounForm = PNF Case ;
|
||||||
|
param NounForm = NF Number Case ;
|
||||||
|
param DemPronForm = DPF Number Case ;
|
||||||
|
param PersPronForm = PPF Number Person Case ;
|
||||||
|
param RefPronForm = RefPF ;
|
||||||
|
param InterrPronForm = IntPF Number Case ;
|
||||||
|
param InterrPronForm1 = IntPF1 ;
|
||||||
|
param InterrPronForm2 = IntPF2 Number Case Gender ;
|
||||||
|
param InterrPronForm3 = IntPF3 Number Gender ;
|
||||||
|
param IndefPronForm = IPF Case Gender ;
|
||||||
|
param IndefPronForm1 = IPF1 Case ;
|
||||||
|
param IndefPronForm2 = IPF2 ;
|
||||||
|
param RelPronForm = RPF Number Case ;
|
||||||
|
param RelPronForm1 = RPF1 Number Gender ;
|
||||||
|
param RelPronForm2 = RPF2 Case ;
|
||||||
|
param RelPronForm3 = RPF3 ;
|
||||||
|
param NumeralForm = NumeralF;
|
||||||
|
param AdjForm = AdjF Number Case Gender ;
|
||||||
|
param AdjForm1 = AdjF1 ;
|
||||||
|
param AdjDegForm = AdjDegF Degree ;
|
||||||
|
param PossivePostPForm = PossPostPF Number Gender ;
|
||||||
|
param Tense = Subj | Perf | Imperf ;
|
||||||
|
param Tense_Aux = Past | Present | Future | Subjunctive | Perfective | Imperfective;
|
||||||
|
param Verb_AuxForm = VA Tense_Aux Person Number Gender |
|
||||||
|
VA_Root | VA_Inf | VA_Inf_Fem | VA_Inf_Obl;
|
||||||
|
param VerbForm = VF Tense Person Number Gender | Inf | Root | Inf_Obl | Inf_Fem ;
|
||||||
|
param VerbForm1 = VF1 Tense Person Number Gender | Caus1 Tense Person Number Gender |
|
||||||
|
Caus2 Tense Person Number Gender | Inf1 | Caus1_Inf | Caus2_Inf |
|
||||||
|
Inf_Fem1 | Inf_Obl1 | Caus1_Inf_Obl | Caus2_Inf_Obl | Root1 |
|
||||||
|
Caus1_Root | Caus2_Root ;
|
||||||
|
param VerbForm2 = VF2 Tense Person Number Gender | VCaus1 Tense Person Number Gender |
|
||||||
|
Inf2 | VCaus1_Inf | Inf_Obl2 | Inf_Fem2 | VCaus1_Inf_Obl |
|
||||||
|
Root2 | VCaus1_Root ;
|
||||||
|
param VerbForm3 = VF3 Tense Person Number Gender | VCaus2 Tense Person Number Gender |
|
||||||
|
Inf3 | Inf_Fem3 | VCaus2_Inf | Inf_Obl3 | VCaus2_Inf_Obl | Root3 |
|
||||||
|
VCaus2_Root ;
|
||||||
|
param PossPronForm = PossF Number Person Gender ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
oper mkPron2NP : PersPron -> NP =
|
||||||
|
\pp ->
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers1 c ; n = Sg ; p = Pers1 ; g = Masc };
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} ;
|
||||||
5
examples/urduhindi/Urdu.gf
Normal file
5
examples/urduhindi/Urdu.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:../abstract:../common:../../prelude
|
||||||
|
concrete Urdu of UrduHindiAbs =
|
||||||
|
UrduHindi,
|
||||||
|
LexUrd
|
||||||
|
** { } ;
|
||||||
259
examples/urduhindi/UrduHindi.gf
Normal file
259
examples/urduhindi/UrduHindi.gf
Normal file
@@ -0,0 +1,259 @@
|
|||||||
|
--# -path=.:../abstract:../common:../../prelude
|
||||||
|
concrete UrduHindi of UrduHindiAbs = open ResUrdHin, Prelude in {
|
||||||
|
flags coding=utf8 ; optimize=all;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
N = {s : NounForm => Str; h1: Gender} ;
|
||||||
|
PN = {s : ProperNounForm => Str; h1: Gender} ;
|
||||||
|
Adj = {s : AdjForm => Str} ;
|
||||||
|
Adj1 = {s : AdjForm1 => Str} ;
|
||||||
|
AdjD = {s : AdjDegForm => Str} ;
|
||||||
|
Verb_Aux = {s : Verb_AuxForm => Str} ;
|
||||||
|
Verb = {s : VerbForm => Str} ;
|
||||||
|
Verb1 = {s : VerbForm1 => Str} ;
|
||||||
|
Verb2 = {s : VerbForm2 => Str} ;
|
||||||
|
Verb3 = {s : VerbForm3 => Str} ;
|
||||||
|
RelPron3 = {s : RelPronForm3 => Str} ;
|
||||||
|
RelPron2 = {s : RelPronForm2 => Str} ;
|
||||||
|
RelPron1 = {s : RelPronForm1 => Str} ;
|
||||||
|
RelPron = {s : RelPronForm => Str} ;
|
||||||
|
IndefPron2 = {s : IndefPronForm2 => Str} ;
|
||||||
|
IndefPron1 = {s : IndefPronForm1 => Str} ;
|
||||||
|
IndefPron = {s : IndefPronForm => Str} ;
|
||||||
|
InterPron3 = {s : InterrPronForm3 => Str} ;
|
||||||
|
InterPron2 = {s : InterrPronForm2 => Str} ;
|
||||||
|
InterPron1 = {s : InterrPronForm1 => Str} ;
|
||||||
|
InterPron = {s : InterrPronForm => Str} ;
|
||||||
|
RefPron = {s : RefPronForm => Str} ;
|
||||||
|
PersPron = {s : PersPronForm => Str} ;
|
||||||
|
PossPron = {s : PossPronForm => Str} ;
|
||||||
|
DemPron = {s : DemPronForm => Str; h1 : Person} ;
|
||||||
|
PossPostPos = {s : PossivePostPForm => Str} ;
|
||||||
|
Num = { s : NumeralForm => Str ; h1 : Number };
|
||||||
|
Adv, Conj, Neg, Quest, Intjunc, PostP, Part = SS ;
|
||||||
|
|
||||||
|
NP = {s : Case => Str ; n : Number ; p : Person ; g : Gender } ;
|
||||||
|
CN = {s : Number => Case => Str ; g : Gender} ;
|
||||||
|
VP = {s : Tense_Aux => Person => Number => Gender=> Str} ;
|
||||||
|
S = {s: Str};
|
||||||
|
|
||||||
|
lin
|
||||||
|
--VP
|
||||||
|
--UseV : Verb_Aux -> VP;
|
||||||
|
UseV va = { s = \\t,p,n,g => va.s ! VA t p n g };
|
||||||
|
|
||||||
|
|
||||||
|
--UseVVAux : Verb -> Verb_Aux -> VP;
|
||||||
|
UseVVAux v va =
|
||||||
|
{ s = \\t,p,n,g => v.s ! Inf ++ va.s ! VA t p n g
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
--UseN x = x;
|
||||||
|
UseN x =
|
||||||
|
{ s = \\n,c => x.s ! NF n c ;
|
||||||
|
g = x.h1
|
||||||
|
} ;
|
||||||
|
|
||||||
|
DetN_Pers1 pron cn =
|
||||||
|
{ s = \\n,c => pron.s ! PossF n Pers1 cn.g ++ cn.s ! n ! c ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
DetN_Pers2Casual pron cn =
|
||||||
|
{ s = \\n,c => pron.s ! PossF n Pers2_Casual cn.g ++ cn.s ! n ! c ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
DetN_Pers2Familiar pron cn =
|
||||||
|
{ s = \\n,c => pron.s ! PossF n Pers2_Familiar cn.g ++ cn.s ! n ! c ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
DetN_Pers2Respect pron cn =
|
||||||
|
{ s = \\n,c => pron.s ! PossF n Pers2_Respect cn.g ++ cn.s ! n ! c ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
DetN_Pers3Near pron cn =
|
||||||
|
{ s = \\n,c => pron.s ! PossF n Pers3_Near cn.g ++ cn.s ! n ! c ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
DetN_Pers3Distant pron cn =
|
||||||
|
{ s = \\n,c => pron.s ! PossF n Pers3_Distant cn.g ++ cn.s ! n ! c ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
--DetCN3 : CN -> NP;
|
||||||
|
DetCN3Sg cn =
|
||||||
|
{ s = \\c => case c of {
|
||||||
|
Nom => cn.s ! Sg ! Nom ;
|
||||||
|
Obl => cn.s ! Sg ! Obl ;
|
||||||
|
Voc => []
|
||||||
|
};
|
||||||
|
n = Sg;
|
||||||
|
p = Pers3_Near ; --does not mean any thing
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
DetCN3Pl cn =
|
||||||
|
{ s = \\c => case c of {
|
||||||
|
Nom => cn.s ! Pl ! Nom ;
|
||||||
|
Obl => cn.s ! Pl ! Obl ;
|
||||||
|
Voc => []
|
||||||
|
};
|
||||||
|
n = Pl ;
|
||||||
|
p = Pers3_Near ; --does not mean any thing
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
DetCN num cn =
|
||||||
|
{ s = \\c => case c of {
|
||||||
|
Nom => num.s ! NumeralF ++ cn.s ! num.h1 ! Nom ;
|
||||||
|
Obl => num.s ! NumeralF ++ cn.s ! num.h1 ! Obl ;
|
||||||
|
Voc => []
|
||||||
|
};
|
||||||
|
n = num.h1;
|
||||||
|
p = Pers3_Near ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
DetCN1Sg wo cn =
|
||||||
|
{ s = \\c => case c of {
|
||||||
|
Nom => wo.s ! DPF Sg Nom ++ cn.s ! Sg ! Nom ;
|
||||||
|
Obl => [] ;
|
||||||
|
Voc => []
|
||||||
|
|
||||||
|
};
|
||||||
|
n = Sg;
|
||||||
|
p = wo.h1 ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
DetCN1Pl wo cn =
|
||||||
|
{ s = \\c => case c of {
|
||||||
|
Nom => wo.s ! DPF Pl Nom ++ cn.s ! Pl ! Nom ;
|
||||||
|
Obl => [] ;
|
||||||
|
Voc => []
|
||||||
|
};
|
||||||
|
n = Pl;
|
||||||
|
p = wo.h1 ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
-- wh ayk ktab
|
||||||
|
DetCN2 wo num cn =
|
||||||
|
{ s = \\c => case c of {
|
||||||
|
Nom => wo.s ! DPF num.h1 Nom ++ num.s ! NumeralF ++ cn.s ! num.h1 ! Nom ;
|
||||||
|
Obl => wo.s ! DPF num.h1 Obl ++ num.s ! NumeralF ++ cn.s ! num.h1 ! Obl ;
|
||||||
|
Voc => []
|
||||||
|
};
|
||||||
|
n = num.h1;
|
||||||
|
p = wo.h1 ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
UsePN pn =
|
||||||
|
{ s = \\c => pn.s ! PNF c ;
|
||||||
|
n = Sg ;
|
||||||
|
p = Pers3_Near ; --could be Pers3_distant, does not really matter
|
||||||
|
g = pn.h1
|
||||||
|
} ;
|
||||||
|
UsePN1 wo pn =
|
||||||
|
{ s = \\c => wo.s ! DPF Sg Nom ++ pn.s ! PNF c ;
|
||||||
|
n = Sg ;
|
||||||
|
p = wo.h1 ;
|
||||||
|
g = pn.h1
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
--UsePron : PersPron -> NP
|
||||||
|
UsePronSgP1M pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers1 c ; n = Sg ; p = Pers1 ; g = Masc };
|
||||||
|
UsePronSgP1F pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers1 c ; n = Sg ; p = Pers1 ; g = Fem };
|
||||||
|
UsePronPlP1M pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers1 c ; n = Pl ; p = Pers1 ; g = Masc };
|
||||||
|
UsePronPlP1F pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers1 c ; n = Pl ; p = Pers1 ; g = Fem };
|
||||||
|
UsePronSgP2CM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers2_Casual c ; n = Sg ; p = Pers2_Casual ; g = Masc };
|
||||||
|
UsePronSgP2CF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers2_Casual c ; n = Sg ; p = Pers2_Casual ; g = Fem };
|
||||||
|
UsePronPlP2CM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers2_Casual c ; n = Pl ; p = Pers2_Casual ; g = Masc };
|
||||||
|
UsePronPlP2CF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers2_Casual c ; n = Pl ; p = Pers2_Casual ; g = Fem };
|
||||||
|
UsePronSgP2FM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers2_Familiar c ; n = Sg ; p = Pers2_Familiar ; g = Masc };
|
||||||
|
UsePronSgP2FF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers2_Familiar c ; n = Sg ; p = Pers2_Familiar ; g = Fem };
|
||||||
|
UsePronPlP2FM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers2_Familiar c ; n = Pl ; p = Pers2_Familiar ; g = Masc };
|
||||||
|
UsePronPlP2FF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers2_Familiar c ; n = Pl ; p = Pers2_Familiar ; g = Fem };
|
||||||
|
UsePronSgP2RM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers2_Respect c ; n = Sg ; p = Pers2_Respect ; g = Masc };
|
||||||
|
UsePronSgP2RF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers2_Respect c ; n = Sg ; p = Pers2_Respect ; g = Fem };
|
||||||
|
UsePronPlP2RM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers2_Respect c ; n = Pl ; p = Pers2_Respect ; g = Masc };
|
||||||
|
UsePronPlP2RF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers2_Respect c ; n = Pl ; p = Pers2_Respect ; g = Fem };
|
||||||
|
UsePronSgP3NM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers3_Near c ; n = Sg ; p = Pers3_Near ; g = Masc };
|
||||||
|
UsePronSgP3NF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers3_Near c ; n = Sg ; p = Pers3_Near ; g = Fem };
|
||||||
|
UsePronPlP3NM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers3_Near c ; n = Pl ; p = Pers3_Near ; g = Masc };
|
||||||
|
UsePronPlP3NF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers3_Near c ; n = Pl ; p = Pers3_Near ; g = Fem };
|
||||||
|
UsePronSgP3DM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers3_Distant c ; n = Sg ; p = Pers3_Distant ; g = Masc };
|
||||||
|
UsePronSgP3DF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Sg Pers3_Distant c ; n = Sg ; p = Pers3_Distant ; g = Fem };
|
||||||
|
UsePronPlP3DM pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers3_Distant c ; n = Pl ; p = Pers3_Distant ; g = Masc };
|
||||||
|
UsePronPlP3DF pp =
|
||||||
|
{ s = \\c => pp.s ! PPF Pl Pers3_Distant c ; n = Pl ; p = Pers3_Distant ; g = Fem };
|
||||||
|
|
||||||
|
|
||||||
|
UsePastS np va = { s = np.s ! Nom ++ va.s ! Past ! np.p ! np.n ! np.g } ;
|
||||||
|
UsePresS np va = { s = np.s ! Nom ++ va.s ! Present ! np.p ! np.n ! np.g } ;
|
||||||
|
UseFutS np va = { s = np.s ! Nom ++ va.s ! Future ! np.p ! np.n ! np.g } ;
|
||||||
|
|
||||||
|
UseNPSg np cn = {
|
||||||
|
s = \\c => np.s ! Obl ++ "کو" ++ cn.s ! Sg ! c ;
|
||||||
|
n = Sg;
|
||||||
|
p = Pers3_Near ;
|
||||||
|
g = cn.g
|
||||||
|
};
|
||||||
|
|
||||||
|
UseNPPl np cn = {
|
||||||
|
s = \\c => np.s ! Obl ++ "کو" ++ cn.s ! Pl ! c ;
|
||||||
|
n = Pl;
|
||||||
|
p = Pers3_Near ;
|
||||||
|
g = cn.g
|
||||||
|
};
|
||||||
|
|
||||||
|
UsePronVVAuxPast np vp = {
|
||||||
|
s = np.s ! Obl ++ "کو" ++ vp.s ! Past ! np.p ! np.n ! np.g
|
||||||
|
};
|
||||||
|
UsePronVVAuxPres np vp = {
|
||||||
|
s = np.s ! Obl ++ "کو" ++ vp.s ! Present ! np.p ! np.n ! np.g
|
||||||
|
};
|
||||||
|
UsePronVVAuxFut np vp = {
|
||||||
|
s = np.s ! Obl ++ "کو" ++ vp.s ! Future ! np.p ! np.n ! np.g
|
||||||
|
};
|
||||||
|
|
||||||
|
UseSPast np vp = {
|
||||||
|
s = np.s ! Nom ++ vp.s ! Past ! np.p ! np.n ! np.g
|
||||||
|
};
|
||||||
|
|
||||||
|
--Present
|
||||||
|
UseSPres np vp = {
|
||||||
|
s = np.s ! Nom ++ vp.s ! Present ! np.p ! np.n ! np.g
|
||||||
|
};
|
||||||
|
|
||||||
|
--Future
|
||||||
|
UseSFut np vp = {
|
||||||
|
s = np.s ! Nom ++ vp.s ! Future ! np.p ! np.n ! np.g
|
||||||
|
};
|
||||||
|
|
||||||
|
UseS s1 conj s2 = {s = s1.s ++ conj.s ++ s2.s};
|
||||||
|
}
|
||||||
4
examples/urduhindi/UrduHindiAbs.gf
Normal file
4
examples/urduhindi/UrduHindiAbs.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
abstract UrduHindiAbs =
|
||||||
|
CatUrduHindiAbs,
|
||||||
|
Lexicon
|
||||||
|
**{} ;
|
||||||
Reference in New Issue
Block a user