1
0
forked from GitHub/gf-rgl
Files
gf-rgl/src/arabic/CatAra.gf

105 lines
2.6 KiB
Plaintext

concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
flags optimize=all_subs ;
lincat
-- Phrase
Utt = {s : Gender => Str};
-- Tensed/Untensed
SSlash,
S = {s : Order => Str} ; -- subordinate clause has nominal word order and subject in acc
QS = {s : QForm => Str} ;
RS = {s : PerGenNum => Case => Str} ; -- case because the relative pronoun inflects in case
-- Sentence
Cl = ResAra.Cl ; -- {s : Tense => Polarity => Order => Str} ;
ClSlash = ResAra.ClSlash ;
Imp = {s : Polarity => Gender => ResAra.Number => Str} ;
-- Question
QCl = ResAra.QCl ; -- {s : Tense => Polarity => QForm => Str} ;
IDet = ResAra.IDet ; -- {s : Gender => State => Case => Str ; n : Number} ;
IP = ResAra.IP ; -- {s : (isPred : Bool) => State => Case => Str ; n : Number} ;
IComp = ResAra.IComp ; --
IQuant = {s : State => Case => Str} ;
-- Relative
RCl = ResAra.RCl ;
RP = ResAra.RP ;
-- Verb
VP = ResAra.VP ;
VPSlash = ResAra.VPSlash ; -- VP ** {c2:Preposition}
Comp = ResAra.Comp ** {obj : Obj ; isNP : Bool} ;
-- SC = {s : Str} ;
--
-- Adjective
AP = ResAra.AP ;
-- Noun
CN = ResAra.CN;
NP, Pron = ResAra.NP; --{s : Case => Str ; a : Agr } ;
Num,
Ord,
Card = ResAra.NumOrdCard ;
Predet = ResAra.Predet ;
DAP, Det = ResAra.Det ;
-- {s : Species => Gender => Case => Str ;
-- d : State; n : Size; isNum : Bool } ;
Quant = ResAra.Quant ;
Art = {s : ResAra.Number => Species => Gender => Case => Str;
d : State} ;
-- Numeral
Numeral = {s : CardOrd => Gender => State => Case => Str ;
n : Size } ;
Digits = {s : Str;
n : Size};
Decimal = {s : Str;
n : Size; hasDot : Bool};
-- Structural
Conj = {s1,s2 : Str; n : ResAra.Number} ;
Subj = {s : Str ; o : Order} ;
Prep = ResAra.Preposition ;
-- Open lexical classes, e.g. Lexicon
V, VQ, VA = ResAra.Verb ; -- = {s : VForm => Str} ;
VV = ResAra.Verb ** {s2 : Str ; sc : Preposition} ; -- s2 is complementiser
V2, V2A, V2Q = ResAra.Verb2 ;
V2V = ResAra.Verb2 ** {s2 : Str ; sc : Preposition} ; -- s2 is complementiser, c2 is for dir.obj
V2S = ResAra.Verb2 ** {s2 : Str ; o : Order} ;
VS = ResAra.Verb ** {s2 : Str ; o : Order} ;
V3 = ResAra.Verb3 ;
A = ResAra.Adj ;
A2 = ResAra.Adj2 ;
N = ResAra.Noun ;
N2 = ResAra.Noun2 ;
N3 = ResAra.Noun3 ;
GN, SN, PN = {s : Case => Str; g : Gender; h : Species} ;
LN = ResAra.NP ;
linref
CN = \cn -> uttCN cn ! Masc ;
N = \n -> uttCN (useN n) ! Masc ;
VP = \vp -> uttVP VPPerf vp ! Masc ;
}