mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
102 lines
2.0 KiB
Plaintext
102 lines
2.0 KiB
Plaintext
resource ParamScand = ParamX ** open Prelude in {
|
|
|
|
param
|
|
Species = Indef | Def ;
|
|
Case = Nom | Gen ;
|
|
Voice = Act | Pass ;
|
|
|
|
Order = Main | Inv | Sub ;
|
|
|
|
DetSpecies = DIndef | DDef Species ;
|
|
|
|
GenNum = SgUtr | SgNeutr | Plg ;
|
|
|
|
AForm = AF AFormGrad Case ;
|
|
|
|
AFormGrad =
|
|
APosit AFormPos
|
|
| ACompar
|
|
| ASuperl AFormSup ;
|
|
|
|
-- The $Number$ in $Weak$ only matters in "lilla"/"små".
|
|
|
|
AFormPos = Strong GenNum | Weak Number ;
|
|
AFormSup = SupStrong | SupWeak ;
|
|
|
|
VForm =
|
|
VF VFin
|
|
| VI VInf ;
|
|
|
|
VFin =
|
|
VPres Voice
|
|
| VPret Voice
|
|
| VImper Voice ;
|
|
|
|
VInf =
|
|
VInfin Voice
|
|
| VSupin Voice
|
|
| VPtPret AFormPos Case ;
|
|
|
|
VPForm =
|
|
VPFinite Tense Anteriority
|
|
| VPImperat
|
|
| VPInfinit Anteriority ;
|
|
|
|
VType = VAct | VPass | VRefl ;
|
|
|
|
NPForm = NPNom | NPAcc | NPPoss GenNum ;
|
|
--- AdjPronForm = APron GenNum Case ;
|
|
--- AuxVerbForm = AuxInf | AuxPres | AuxPret | AuxSup ;
|
|
|
|
RCase = RNom | RGen | RPrep ;
|
|
|
|
RAgr = RNoAg | RAg {gn : GenNum ; p : Person} ;
|
|
|
|
oper
|
|
Agr : PType = {gn : GenNum ; p : Person} ;
|
|
|
|
nominative : NPForm = NPNom ;
|
|
accusative : NPForm = NPAcc ;
|
|
|
|
caseNP : NPForm -> Case = \np -> case np of {
|
|
NPPoss _ => Gen ;
|
|
_ => Nom
|
|
} ;
|
|
|
|
specDet : DetSpecies -> Species = \d -> case d of {
|
|
DDef Def => Def ;
|
|
_ => Indef
|
|
} ;
|
|
|
|
-- Used in $Noun.AdjCN$.
|
|
|
|
agrAdj : GenNum -> DetSpecies -> AFormPos = \gn,d -> case <gn,d> of {
|
|
<_, DIndef> => Strong gn ;
|
|
<Plg,DDef _> => Weak Pl ;
|
|
_ => Weak Sg
|
|
} ;
|
|
|
|
-- Used in $DiffScand.predV$.
|
|
|
|
vFin : Tense -> Voice -> VForm = \t,v -> case t of {
|
|
Pres => VF (VPres v) ;
|
|
Past => VF (VPret v) ;
|
|
_ => VI (VInfin v) --- not to be used?
|
|
} ;
|
|
|
|
-- Used in $ConjunctionScand$.
|
|
|
|
conjGenNum : (_,_ : GenNum) -> GenNum = \g,h -> case <g,h> of {
|
|
<SgUtr,SgUtr> => SgUtr ;
|
|
<Plg, _> => Plg ;
|
|
<_, Plg> => Plg ;
|
|
_ => SgNeutr
|
|
} ;
|
|
|
|
conjAgr : (_,_ : Agr) -> Agr = \a,b -> {
|
|
gn = conjGenNum a.gn b.gn ;
|
|
p = conjPerson a.p b.p
|
|
} ;
|
|
|
|
}
|