forked from GitHub/gf-rgl
cleaned up lib modules for better doc in synopsis
This commit is contained in:
@@ -195,7 +195,7 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
mkUtt = overload {
|
mkUtt = overload {
|
||||||
mkUtt : S -> Utt -- she slept --:
|
mkUtt : S -> Utt -- she slept --:
|
||||||
= UttS ; --%
|
= UttS ; --%
|
||||||
mkUtt : Cl -> Utt -- she sleeps
|
mkUtt : Cl -> Utt -- she sleeps
|
||||||
= \c -> UttS (TUseCl TPres ASimul PPos c) ; --%
|
= \c -> UttS (TUseCl TPres ASimul PPos c) ; --%
|
||||||
mkUtt : QS -> Utt -- who didn't sleep --:
|
mkUtt : QS -> Utt -- who didn't sleep --:
|
||||||
= UttQS ; --%
|
= UttQS ; --%
|
||||||
@@ -330,7 +330,7 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
|
|
||||||
mkS : Conj -> S -> S -> S -- she sleeps and I run
|
mkS : Conj -> S -> S -> S -- she sleeps and I run
|
||||||
= \c,x,y -> ConjS c (BaseS x y) ; --%
|
= \c,x,y -> ConjS c (BaseS x y) ; --%
|
||||||
mkS : Conj -> ListS -> S -- she sleeps, I run and you sleep --:
|
mkS : Conj -> ListS -> S -- she sleeps, I run and you walk --:
|
||||||
= \c,xy -> ConjS c xy ; --%
|
= \c,xy -> ConjS c xy ; --%
|
||||||
|
|
||||||
-- A sentence can be prefixed by an adverb.
|
-- A sentence can be prefixed by an adverb.
|
||||||
@@ -353,22 +353,25 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
= \s,v,o -> PredVP s (ComplV2 v o); --%
|
= \s,v,o -> PredVP s (ComplV2 v o); --%
|
||||||
mkCl : NP -> V3 -> NP -> NP -> Cl -- she sends it to him
|
mkCl : NP -> V3 -> NP -> NP -> Cl -- she sends it to him
|
||||||
= \s,v,o,i -> PredVP s (ComplV3 v o i); --%
|
= \s,v,o,i -> PredVP s (ComplV3 v o i); --%
|
||||||
|
|
||||||
mkCl : NP -> VV -> VP -> Cl -- she wants to sleep
|
mkCl : NP -> VV -> VP -> Cl -- she wants to sleep
|
||||||
= \s,v,vp -> PredVP s (ComplVV v vp) ; --%
|
= \s,v,vp -> PredVP s (ComplVV v vp) ; --%
|
||||||
mkCl : NP -> VS -> S -> Cl -- she says that she sleeps
|
mkCl : NP -> VS -> S -> Cl -- she says that she sleeps
|
||||||
= \s,v,p -> PredVP s (ComplVS v p) ; --%
|
= \s,v,p -> PredVP s (ComplVS v p) ; --%
|
||||||
mkCl : NP -> VQ -> QS -> Cl -- she wonders who sleeps
|
mkCl : NP -> VQ -> QS -> Cl -- she wonders who sleeps
|
||||||
= \s,v,q -> PredVP s (ComplVQ v q) ; --%
|
= \s,v,q -> PredVP s (ComplVQ v q) ; --%
|
||||||
mkCl : NP -> VA -> AP -> Cl -- she becomes old
|
mkCl : NP -> VA -> A -> Cl -- she becomes old
|
||||||
|
= \s,v,q -> PredVP s (ComplVA v (PositA q)) ; --%
|
||||||
|
mkCl : NP -> VA -> AP -> Cl -- she becomes very old
|
||||||
= \s,v,q -> PredVP s (ComplVA v q) ; --%
|
= \s,v,q -> PredVP s (ComplVA v q) ; --%
|
||||||
mkCl : NP -> V2A -> NP -> AP -> Cl -- she paints it red
|
mkCl : NP -> V2A -> NP -> A -> Cl -- she paints it red
|
||||||
|
= \s,v,n,q -> PredVP s (ComplV2A v n (PositA q)) ; --%
|
||||||
|
mkCl : NP -> V2A -> NP -> AP -> Cl -- she paints it very red
|
||||||
= \s,v,n,q -> PredVP s (ComplV2A v n q) ; --%
|
= \s,v,n,q -> PredVP s (ComplV2A v n q) ; --%
|
||||||
mkCl : NP -> V2S -> NP -> S -> Cl -- she tells him that we sleep
|
mkCl : NP -> V2S -> NP -> S -> Cl -- she answers to him that we sleep
|
||||||
= \s,v,n,q -> PredVP s (ComplSlash (SlashV2S v q) n) ; --%
|
= \s,v,n,q -> PredVP s (ComplSlash (SlashV2S v q) n) ; --%
|
||||||
mkCl : NP -> V2Q -> NP -> QS -> Cl -- she asks him who sleeps
|
mkCl : NP -> V2Q -> NP -> QS -> Cl -- she asks him who sleeps
|
||||||
= \s,v,n,q -> PredVP s (ComplSlash (SlashV2Q v q) n) ; --%
|
= \s,v,n,q -> PredVP s (ComplSlash (SlashV2Q v q) n) ; --%
|
||||||
mkCl : NP -> V2V -> NP -> VP -> Cl -- she forces him to sleep
|
mkCl : NP -> V2V -> NP -> VP -> Cl -- she begs him to sleep
|
||||||
= \s,v,n,q -> PredVP s (ComplSlash (SlashV2V v q) n) ; --%
|
= \s,v,n,q -> PredVP s (ComplSlash (SlashV2V v q) n) ; --%
|
||||||
mkCl : NP -> A -> Cl -- she is old
|
mkCl : NP -> A -> Cl -- she is old
|
||||||
= \x,y -> PredVP x (UseComp (CompAP (PositA y))) ; --%
|
= \x,y -> PredVP x (UseComp (CompAP (PositA y))) ; --%
|
||||||
@@ -378,11 +381,11 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
= \x,y,z -> PredVP x (UseComp (CompAP (ComplA2 y z))) ; --%
|
= \x,y,z -> PredVP x (UseComp (CompAP (ComplA2 y z))) ; --%
|
||||||
mkCl : NP -> AP -> Cl -- she is very old
|
mkCl : NP -> AP -> Cl -- she is very old
|
||||||
= \x,y -> PredVP x (UseComp (CompAP y)) ; --%
|
= \x,y -> PredVP x (UseComp (CompAP y)) ; --%
|
||||||
mkCl : NP -> NP -> Cl -- she is the man
|
mkCl : NP -> NP -> Cl -- she is the woman
|
||||||
= \x,y -> PredVP x (UseComp (CompNP y)) ; --%
|
= \x,y -> PredVP x (UseComp (CompNP y)) ; --%
|
||||||
mkCl : NP -> N -> Cl -- she is a man
|
mkCl : NP -> N -> Cl -- she is a woman
|
||||||
= \x,y -> PredVP x (UseComp (CompCN (UseN y))) ; --%
|
= \x,y -> PredVP x (UseComp (CompCN (UseN y))) ; --%
|
||||||
mkCl : NP -> CN -> Cl -- she is an old man
|
mkCl : NP -> CN -> Cl -- she is an old woman
|
||||||
= \x,y -> PredVP x (UseComp (CompCN y)) ; --%
|
= \x,y -> PredVP x (UseComp (CompCN y)) ; --%
|
||||||
mkCl : NP -> Adv -> Cl -- she is here
|
mkCl : NP -> Adv -> Cl -- she is here
|
||||||
= \x,y -> PredVP x (UseComp (CompAdv y)) ; --%
|
= \x,y -> PredVP x (UseComp (CompAdv y)) ; --%
|
||||||
@@ -390,7 +393,7 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
-- As the general rule, a clause can be built from a subject noun phrase and
|
-- As the general rule, a clause can be built from a subject noun phrase and
|
||||||
-- a verb phrase.
|
-- a verb phrase.
|
||||||
|
|
||||||
mkCl : NP -> VP -> Cl -- she always sleeps here --:
|
mkCl : NP -> VP -> Cl -- she always sleeps --:
|
||||||
= PredVP ; --%
|
= PredVP ; --%
|
||||||
|
|
||||||
-- Existentials are a special form of clauses.
|
-- Existentials are a special form of clauses.
|
||||||
@@ -399,7 +402,7 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
= \y -> ExistNP (DetArtSg IndefArt (UseN y)) ; --%
|
= \y -> ExistNP (DetArtSg IndefArt (UseN y)) ; --%
|
||||||
mkCl : CN -> Cl -- there is an old house
|
mkCl : CN -> Cl -- there is an old house
|
||||||
= \y -> ExistNP (DetArtSg IndefArt y) ; --%
|
= \y -> ExistNP (DetArtSg IndefArt y) ; --%
|
||||||
mkCl : NP -> Cl -- there are five houses --:
|
mkCl : NP -> Cl -- there are many houses --:
|
||||||
= ExistNP ; --%
|
= ExistNP ; --%
|
||||||
|
|
||||||
-- There are also special forms in which a noun phrase or an adverb is
|
-- There are also special forms in which a noun phrase or an adverb is
|
||||||
@@ -407,7 +410,7 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
|
|
||||||
mkCl : NP -> RS -> Cl -- it is she who sleeps --:
|
mkCl : NP -> RS -> Cl -- it is she who sleeps --:
|
||||||
= CleftNP ; --%
|
= CleftNP ; --%
|
||||||
mkCl : Adv -> S -> Cl -- it is here he sleeps --:
|
mkCl : Adv -> S -> Cl -- it is here that she sleeps --:
|
||||||
= CleftAdv ; --%
|
= CleftAdv ; --%
|
||||||
|
|
||||||
-- Subjectless verb phrases are used for impersonal actions.
|
-- Subjectless verb phrases are used for impersonal actions.
|
||||||
@@ -416,7 +419,7 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
= \v -> ImpersCl (UseV v) ; --%
|
= \v -> ImpersCl (UseV v) ; --%
|
||||||
mkCl : VP -> Cl -- it is raining --:
|
mkCl : VP -> Cl -- it is raining --:
|
||||||
= ImpersCl ; --%
|
= ImpersCl ; --%
|
||||||
mkCl : SC -> VP -> Cl --:
|
mkCl : SC -> VP -> Cl -- that she sleeps is good --:
|
||||||
= PredSCVP ; --%
|
= PredSCVP ; --%
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
@@ -435,25 +438,25 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
mkVP = overload {
|
mkVP = overload {
|
||||||
mkVP : V -> VP -- sleep --:
|
mkVP : V -> VP -- sleep --:
|
||||||
= UseV ; --%
|
= UseV ; --%
|
||||||
mkVP : V2 -> NP -> VP -- love it
|
mkVP : V2 -> NP -> VP -- love him
|
||||||
= ComplV2 ; --%
|
= ComplV2 ; --%
|
||||||
mkVP : V3 -> NP -> NP -> VP -- send a message to him
|
mkVP : V3 -> NP -> NP -> VP -- send a message to him
|
||||||
= ComplV3 ; --%
|
= ComplV3 ; --%
|
||||||
mkVP : VV -> VP -> VP -- want to run --:
|
mkVP : VV -> VP -> VP -- want to sleep --:
|
||||||
= ComplVV ; --%
|
= ComplVV ; --%
|
||||||
mkVP : VS -> S -> VP -- know that she runs --:
|
mkVP : VS -> S -> VP -- know that she sleeps --:
|
||||||
= ComplVS ; --%
|
= ComplVS ; --%
|
||||||
mkVP : VQ -> QS -> VP -- wonder if she runs --:
|
mkVP : VQ -> QS -> VP -- wonder if she sleeps --:
|
||||||
= ComplVQ ; --%
|
= ComplVQ ; --%
|
||||||
mkVP : VA -> AP -> VP -- become red --:
|
mkVP : VA -> AP -> VP -- become red --:
|
||||||
= ComplVA ; --%
|
= ComplVA ; --%
|
||||||
mkVP : V2A -> NP -> AP -> VP -- paint it red
|
mkVP : V2A -> NP -> AP -> VP -- paint it red
|
||||||
= ComplV2A ; --%
|
= ComplV2A ; --%
|
||||||
mkVP : V2S -> NP -> S -> VP -- tell him that we sleep
|
mkVP : V2S -> NP -> S -> VP -- answer to him that we sleep
|
||||||
= \v,n,q -> (ComplSlash (SlashV2S v q) n) ; --%
|
= \v,n,q -> (ComplSlash (SlashV2S v q) n) ; --%
|
||||||
mkVP : V2Q -> NP -> QS -> VP -- ask him who sleeps
|
mkVP : V2Q -> NP -> QS -> VP -- ask him who sleeps
|
||||||
= \v,n,q -> (ComplSlash (SlashV2Q v q) n) ; --%
|
= \v,n,q -> (ComplSlash (SlashV2Q v q) n) ; --%
|
||||||
mkVP : V2V -> NP -> VP -> VP -- force him to sleep
|
mkVP : V2V -> NP -> VP -> VP -- beg him to sleep
|
||||||
= \v,n,q -> (ComplSlash (SlashV2V v q) n) ; --%
|
= \v,n,q -> (ComplSlash (SlashV2V v q) n) ; --%
|
||||||
|
|
||||||
-- The verb can also be a copula ("be"), and the relevant argument is
|
-- The verb can also be a copula ("be"), and the relevant argument is
|
||||||
@@ -471,7 +474,7 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
= \y -> UseComp (CompCN (UseN y)) ; --%
|
= \y -> UseComp (CompCN (UseN y)) ; --%
|
||||||
mkVP : CN -> VP -- be an old man
|
mkVP : CN -> VP -- be an old man
|
||||||
= \y -> UseComp (CompCN y) ; --%
|
= \y -> UseComp (CompCN y) ; --%
|
||||||
mkVP : NP -> VP -- be this man
|
mkVP : NP -> VP -- be the man
|
||||||
= \a -> UseComp (CompNP a) ; --%
|
= \a -> UseComp (CompNP a) ; --%
|
||||||
mkVP : Adv -> VP -- be here
|
mkVP : Adv -> VP -- be here
|
||||||
= \a -> UseComp (CompAdv a) ; --%
|
= \a -> UseComp (CompAdv a) ; --%
|
||||||
@@ -489,15 +492,19 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
= ComplSlash ; --%
|
= ComplSlash ; --%
|
||||||
mkVP : VPSlash -> VP -- paint itself black --:
|
mkVP : VPSlash -> VP -- paint itself black --:
|
||||||
= ReflVP ; --%
|
= ReflVP ; --%
|
||||||
|
|
||||||
mkVP : Comp -> VP -- be warm --:
|
mkVP : Comp -> VP -- be warm --:
|
||||||
= UseComp ; --%
|
= UseComp ; --%
|
||||||
|
|
||||||
} ; --%
|
} ; --%
|
||||||
|
|
||||||
-- Two-place verbs can be used reflexively.
|
-- Two-place verbs can be used reflexively, and VPSlash more generally.
|
||||||
|
reflexiveVP = overload { --%
|
||||||
reflexiveVP : V2 -> VP -- love itself
|
reflexiveVP : V2 -> VP -- love itself
|
||||||
= \v -> ReflVP (SlashV2a v) ; --%
|
= \v -> ReflVP (SlashV2a v) ; --%
|
||||||
|
reflexiveVP : VPSlash -> VP -- paint itself black
|
||||||
|
= ReflVP ; --%
|
||||||
|
} ; --%
|
||||||
|
|
||||||
|
|
||||||
-- Two-place verbs can also be used in the passive, with or without an agent.
|
-- Two-place verbs can also be used in the passive, with or without an agent.
|
||||||
@@ -648,6 +655,27 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
|
|
||||||
} ; --%
|
} ; --%
|
||||||
|
|
||||||
|
-- Pronouns can be used as noun phrases.
|
||||||
|
|
||||||
|
i_NP : NP -- I
|
||||||
|
= mkNP i_Pron ;
|
||||||
|
you_NP : NP -- you (singular)
|
||||||
|
= mkNP youSg_Pron ;
|
||||||
|
youPol_NP : NP -- you (polite singular)
|
||||||
|
= mkNP youPol_Pron ;
|
||||||
|
he_NP : NP -- he
|
||||||
|
= mkNP he_Pron ;
|
||||||
|
she_NP : NP -- she
|
||||||
|
= mkNP she_Pron ;
|
||||||
|
it_NP : NP -- it
|
||||||
|
= mkNP it_Pron ;
|
||||||
|
we_NP : NP -- we
|
||||||
|
= mkNP we_Pron ;
|
||||||
|
youPl_NP : NP -- you (plural)
|
||||||
|
= mkNP she_Pron ;
|
||||||
|
they_NP : NP -- they
|
||||||
|
= mkNP they_Pron ;
|
||||||
|
|
||||||
|
|
||||||
--3 Det, determiners
|
--3 Det, determiners
|
||||||
|
|
||||||
@@ -793,8 +821,12 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
|
|
||||||
-- Number words up to 999,999 can be built as follows.
|
-- Number words up to 999,999 can be built as follows.
|
||||||
|
|
||||||
mkNumeral : Sub1000 -> Numeral -- coerce 1..999 --:
|
mkNumeral : Unit -> Numeral -- eight (coerce 1..9) --:
|
||||||
= \n -> num (pot3 n) ; --%
|
= \n -> num (pot2as3 (pot1as2 (pot0as1 n.n))) ; --%
|
||||||
|
mkNumeral : Sub100 -> Numeral -- twenty-five (coerce 1..99) --:
|
||||||
|
= \n -> num (pot2as3 (pot1as2 n)) ; --%
|
||||||
|
mkNumeral : Sub1000 -> Numeral -- six hundred (coerce 1..999) --:
|
||||||
|
= \n -> num (pot2as3 n) ; --%
|
||||||
mkNumeral : Sub1000 -> Sub1000 -> Numeral -- 1000m + n --:
|
mkNumeral : Sub1000 -> Sub1000 -> Numeral -- 1000m + n --:
|
||||||
= \m,n -> num (pot3plus m n) ; --%
|
= \m,n -> num (pot3plus m n) ; --%
|
||||||
|
|
||||||
@@ -810,10 +842,10 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
mkSub1000 = overload { --%
|
mkSub1000 = overload { --%
|
||||||
mkSub1000 : Sub100 -> Sub1000 -- coerce 1..99 --:
|
mkSub1000 : Sub100 -> Sub1000 -- coerce 1..99 --:
|
||||||
= pot1as2 ; --%
|
= pot1as2 ; --%
|
||||||
mkSub1000 : Sub10 -> Sub1000 -- 100n --:
|
mkSub1000 : Unit -> Sub1000 -- 100n --:
|
||||||
= pot2 ; --%
|
= \n -> pot2 n.n ; --%
|
||||||
mkSub1000 : Sub10 -> Sub100 -> Sub1000 -- 100m + n --:
|
mkSub1000 : Unit -> Sub100 -> Sub1000 -- 100m + n --:
|
||||||
= pot2plus ; --%
|
= \m,n -> pot2plus m.n n ; --%
|
||||||
} ; --%
|
} ; --%
|
||||||
|
|
||||||
mkSub100 = overload { --%
|
mkSub100 = overload { --%
|
||||||
@@ -1495,7 +1527,7 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
|
|
||||||
ComplV2 : V2 -> NP -> VP = \v,np -> ComplSlash (SlashV2a v) np ;
|
ComplV2 : V2 -> NP -> VP = \v,np -> ComplSlash (SlashV2a v) np ;
|
||||||
ComplV2A : V2A -> NP -> AP -> VP = \v,np,ap -> ComplSlash (SlashV2A v ap) np ;
|
ComplV2A : V2A -> NP -> AP -> VP = \v,np,ap -> ComplSlash (SlashV2A v ap) np ;
|
||||||
ComplV3 : V3 -> NP -> NP -> VP = \v,o,d -> ComplSlash (Slash3V3 v o) d ;
|
ComplV3 : V3 -> NP -> NP -> VP = \v,o,d -> ComplSlash (Slash3V3 v d) o ;
|
||||||
|
|
||||||
that_NP : NP = DetNP (DetQuant that_Quant sgNum) ;
|
that_NP : NP = DetNP (DetQuant that_Quant sgNum) ;
|
||||||
this_NP : NP = DetNP (DetQuant this_Quant sgNum) ;
|
this_NP : NP = DetNP (DetQuant this_Quant sgNum) ;
|
||||||
@@ -1687,8 +1719,5 @@ oper
|
|||||||
n1000_Numeral : Numeral
|
n1000_Numeral : Numeral
|
||||||
= num (pot3 (pot1as2 (pot0as1 pot01))) ; --%
|
= num (pot3 (pot1as2 (pot0as1 pot01))) ; --%
|
||||||
|
|
||||||
-- for testing
|
|
||||||
|
|
||||||
she_NP : NP = mkNP she_Pron ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,10 +39,6 @@ oper
|
|||||||
|
|
||||||
de,het : Gender ;
|
de,het : Gender ;
|
||||||
|
|
||||||
masculine = Utr ;
|
|
||||||
feminine = Utr ;
|
|
||||||
het,neuter = Neutr ;
|
|
||||||
de,utrum = Utr ;
|
|
||||||
|
|
||||||
|
|
||||||
--2 Nouns
|
--2 Nouns
|
||||||
@@ -52,11 +48,6 @@ oper
|
|||||||
mkN : (bit : Str) -> Gender -> N ;
|
mkN : (bit : Str) -> Gender -> N ;
|
||||||
mkN : (gat,gaten : Str) -> Gender -> N ;
|
mkN : (gat,gaten : Str) -> Gender -> N ;
|
||||||
} ;
|
} ;
|
||||||
mkN = overload {
|
|
||||||
mkN : (muis : Str) -> N = \a -> lin N (regNoun a) ;
|
|
||||||
mkN : (bit : Str) -> Gender -> N = \a,b -> lin N (regNounG a b) ;
|
|
||||||
mkN : (gat,gaten : Str) -> Gender -> N = \a,b,c -> lin N (mkNoun a b c) ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
-- Relational nouns need a preposition. The most common is "van".
|
-- Relational nouns need a preposition. The most common is "van".
|
||||||
|
|
||||||
@@ -65,10 +56,6 @@ oper
|
|||||||
mkN2 : N -> Prep -> N2
|
mkN2 : N -> Prep -> N2
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkN2 = overload {
|
|
||||||
mkN2 : N -> N2 = \n -> lin N2 (n ** {c2 = "van"}) ;
|
|
||||||
mkN2 : N -> Prep -> N2 = \n,p -> lin N2 (n ** {c2 = p.s}) ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
---- Use the function $mkPrep$ or see the section on prepositions below to
|
---- Use the function $mkPrep$ or see the section on prepositions below to
|
||||||
---- form other prepositions.
|
---- form other prepositions.
|
||||||
@@ -77,7 +64,6 @@ oper
|
|||||||
---- Three-place relational nouns ("die Verbindung von x nach y") need two prepositions.
|
---- Three-place relational nouns ("die Verbindung von x nach y") need two prepositions.
|
||||||
--
|
--
|
||||||
mkN3 : N -> Prep -> Prep -> N3 ;
|
mkN3 : N -> Prep -> Prep -> N3 ;
|
||||||
mkN3 n p q = lin N3 (n ** {c2 = p.s ; c3 = q.s}) ;
|
|
||||||
|
|
||||||
--3 Proper names and noun phrases
|
--3 Proper names and noun phrases
|
||||||
|
|
||||||
@@ -85,10 +71,6 @@ oper
|
|||||||
mkPN : Str -> PN ;
|
mkPN : Str -> PN ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkPN = overload {
|
|
||||||
mkPN : Str -> PN = \s -> lin PN {s = \\_ => s} ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
--2 Adjectives
|
--2 Adjectives
|
||||||
|
|
||||||
@@ -97,10 +79,6 @@ oper
|
|||||||
mkA : (goed,goede,goeds,beter,best : Str) -> A ;
|
mkA : (goed,goede,goeds,beter,best : Str) -> A ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkA = overload {
|
|
||||||
mkA : (vers : Str) -> A = \a -> lin A (regAdjective a) ;
|
|
||||||
mkA : (goed,goede,goeds,beter,best : Str) -> A = \a,b,c,d,e -> lin A (mkAdjective a b c d e) ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
-- Invariable adjective are a special case.
|
-- Invariable adjective are a special case.
|
||||||
|
|
||||||
@@ -124,14 +102,14 @@ oper
|
|||||||
-- A preposition is formed from a string.
|
-- A preposition is formed from a string.
|
||||||
|
|
||||||
mkPrep : Str -> Prep ;
|
mkPrep : Str -> Prep ;
|
||||||
mkPrep s = lin Prep (ss s) ;
|
|
||||||
|
|
||||||
---- A couple of common prepositions (always with the dative).
|
---- A couple of common prepositions (always with the dative).
|
||||||
--
|
--
|
||||||
van_Prep : Prep ;
|
van_Prep : Prep ;
|
||||||
van_Prep = mkPrep "van" ;
|
|
||||||
te_Prep : Prep ;
|
te_Prep : Prep ;
|
||||||
te_Prep = mkPrep "te" ;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
--2 Verbs
|
--2 Verbs
|
||||||
|
|
||||||
@@ -146,40 +124,9 @@ oper
|
|||||||
mkV : Str -> V -> V
|
mkV : Str -> V -> V
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV = overload {
|
|
||||||
mkV : (aaien : Str) -> V =
|
|
||||||
\s -> lin V (v2vv (regVerb s)) ;
|
|
||||||
mkV : (breken,brak,gebroken : Str) -> V =
|
|
||||||
\a,b,c -> lin V (v2vv (irregVerb a b c)) ;
|
|
||||||
mkV : (breken,brak,braken,gebroken : Str) -> V =
|
|
||||||
\a,b,c,d -> lin V (v2vv (irregVerb2 a b c d)) ;
|
|
||||||
mkV : (aai,aait,aaien,aaide,aaiden,geaaid : Str) -> V =
|
|
||||||
\a,b,c,d,f,g -> lin V (v2vv (mkVerb a b c d d f g)) ;
|
|
||||||
mkV : Str -> V -> V = \v,s ->lin V (prefixV v s) ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
zijnV : V -> V ;
|
zijnV : V -> V ;
|
||||||
zijnV v = lin V (v2vvAux v VZijn) ;
|
|
||||||
|
|
||||||
reflV : V -> V ;
|
reflV : V -> V ;
|
||||||
reflV v = lin V {s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = VRefl} ;
|
|
||||||
|
|
||||||
zijn_V : V = lin V ResDut.zijn_V ;
|
|
||||||
hebben_V : V = lin V ResDut.hebben_V ;
|
|
||||||
|
|
||||||
--3 Two-place verbs
|
|
||||||
|
|
||||||
mkV2 : overload {
|
|
||||||
mkV2 : Str -> V2 ;
|
|
||||||
mkV2 : V -> V2 ;
|
|
||||||
mkV2 : V -> Prep -> V2 ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
mkV2 = overload {
|
|
||||||
mkV2 : Str -> V2 = \s -> lin V2 (v2vv (regVerb s) ** {c2 = []}) ;
|
|
||||||
mkV2 : V -> V2 = \s -> lin V2 (s ** {c2 = []}) ;
|
|
||||||
mkV2 : V -> Prep -> V2 = \s,p -> lin V2 (s ** {c2 = p.s}) ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
@@ -195,12 +142,6 @@ oper
|
|||||||
mkV3 : V -> Prep -> Prep -> V3 ; -- sprechen, mit, über
|
mkV3 : V -> Prep -> Prep -> V3 ; -- sprechen, mit, über
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV3 = overload {
|
|
||||||
mkV3 : V -> Prep -> Prep -> V3 = mkmaxV3 ;
|
|
||||||
mkV3 : V -> Prep -> V3 = \v,p -> mkmaxV3 v (mkPrep []) p ;
|
|
||||||
mkV3 : V -> V3 = \v -> mkmaxV3 v (mkPrep []) (mkPrep []) ;
|
|
||||||
} ;
|
|
||||||
mkmaxV3 : V -> Prep -> Prep -> V3 = \v,c,d -> lin V3 (v ** {c2 = c.s ; c3 = d.s}) ;
|
|
||||||
|
|
||||||
----3 Other complement patterns
|
----3 Other complement patterns
|
||||||
----
|
----
|
||||||
@@ -231,9 +172,88 @@ oper
|
|||||||
--
|
--
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|
||||||
|
--.
|
||||||
|
|
||||||
mkOrd : A -> Ord = \a -> lin Ord {s = a.s ! Posit} ;
|
mkOrd : A -> Ord = \a -> lin Ord {s = a.s ! Posit} ;
|
||||||
|
|
||||||
----.
|
mkN = overload {
|
||||||
|
mkN : (muis : Str) -> N
|
||||||
|
= \a -> lin N (regNoun a) ;
|
||||||
|
mkN : (bit : Str) -> Gender -> N
|
||||||
|
= \a,b -> lin N (regNounG a b) ;
|
||||||
|
mkN : (gat,gaten : Str) -> Gender -> N
|
||||||
|
= \a,b,c -> lin N (mkNoun a b c) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkN2 = overload {
|
||||||
|
mkN2 : N -> N2
|
||||||
|
= \n -> lin N2 (n ** {c2 = "van"}) ;
|
||||||
|
mkN2 : N -> Prep -> N2
|
||||||
|
= \n,p -> lin N2 (n ** {c2 = p.s}) ;
|
||||||
|
} ;
|
||||||
|
mkN3 n p q = lin N3 (n ** {c2 = p.s ; c3 = q.s}) ;
|
||||||
|
|
||||||
|
mkPN = overload {
|
||||||
|
mkPN : Str -> PN = \s -> lin PN {s = \\_ => s} ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
masculine = Utr ;
|
||||||
|
feminine = Utr ;
|
||||||
|
het,neuter = Neutr ;
|
||||||
|
de,utrum = Utr ;
|
||||||
|
|
||||||
|
mkA = overload {
|
||||||
|
mkA : (vers : Str) -> A = \a -> lin A (regAdjective a) ;
|
||||||
|
mkA : (goed,goede,goeds,beter,best : Str) -> A = \a,b,c,d,e -> lin A (mkAdjective a b c d e) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkPrep s = lin Prep (ss s) ;
|
||||||
|
van_Prep = mkPrep "van" ;
|
||||||
|
te_Prep = mkPrep "te" ;
|
||||||
|
|
||||||
|
mkV = overload {
|
||||||
|
mkV : (aaien : Str) -> V =
|
||||||
|
\s -> lin V (v2vv (regVerb s)) ;
|
||||||
|
mkV : (breken,brak,gebroken : Str) -> V =
|
||||||
|
\a,b,c -> lin V (v2vv (irregVerb a b c)) ;
|
||||||
|
mkV : (breken,brak,braken,gebroken : Str) -> V =
|
||||||
|
\a,b,c,d -> lin V (v2vv (irregVerb2 a b c d)) ;
|
||||||
|
mkV : (aai,aait,aaien,aaide,aaiden,geaaid : Str) -> V =
|
||||||
|
\a,b,c,d,f,g -> lin V (v2vv (mkVerb a b c d d f g)) ;
|
||||||
|
mkV : Str -> V -> V = \v,s ->lin V (prefixV v s) ;
|
||||||
|
} ;
|
||||||
|
zijnV v = lin V (v2vvAux v VZijn) ;
|
||||||
|
reflV v = lin V {s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = VRefl} ;
|
||||||
|
|
||||||
|
zijn_V : V = lin V ResDut.zijn_V ;
|
||||||
|
hebben_V : V = lin V ResDut.hebben_V ;
|
||||||
|
|
||||||
|
mkV2 = overload {
|
||||||
|
mkV2 : Str -> V2 = \s -> lin V2 (v2vv (regVerb s) ** {c2 = []}) ;
|
||||||
|
mkV2 : V -> V2 = \s -> lin V2 (s ** {c2 = []}) ;
|
||||||
|
mkV2 : V -> Prep -> V2 = \s,p -> lin V2 (s ** {c2 = p.s}) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
--3 Two-place verbs
|
||||||
|
|
||||||
|
mkV2 : overload {
|
||||||
|
mkV2 : Str -> V2 ;
|
||||||
|
mkV2 : V -> V2 ;
|
||||||
|
mkV2 : V -> Prep -> V2 ;
|
||||||
|
} ;
|
||||||
|
mkV3 = overload {
|
||||||
|
mkV3 : V -> Prep -> Prep -> V3 = mkmaxV3 ;
|
||||||
|
mkV3 : V -> Prep -> V3 = \v,p -> mkmaxV3 v (mkPrep []) p ;
|
||||||
|
mkV3 : V -> V3 = \v -> mkmaxV3 v (mkPrep []) (mkPrep []) ;
|
||||||
|
} ;
|
||||||
|
mkmaxV3 : V -> Prep -> Prep -> V3 = \v,c,d -> lin V3 (v ** {c2 = c.s ; c3 = d.s}) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
----2 Definitions of paradigms
|
----2 Definitions of paradigms
|
||||||
----
|
----
|
||||||
---- The definitions should not bother the user of the API. So they are
|
---- The definitions should not bother the user of the API. So they are
|
||||||
|
|||||||
@@ -235,9 +235,12 @@ oper
|
|||||||
-- (transitive verbs).
|
-- (transitive verbs).
|
||||||
|
|
||||||
mkV2 = overload {
|
mkV2 = overload {
|
||||||
mkV2 : Str -> V2 = \s -> dirV2 (regV s) ;
|
mkV2 : Str -> V2
|
||||||
mkV2 : V -> V2 = dirV2 ;
|
= \s -> dirV2 (regV s) ;
|
||||||
mkV2 : V -> Prep -> V2 = mmkV2
|
mkV2 : V -> V2
|
||||||
|
= dirV2 ;
|
||||||
|
mkV2 : V -> Prep -> V2
|
||||||
|
= mmkV2
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -42,9 +42,9 @@ lin
|
|||||||
mkPronoun
|
mkPronoun
|
||||||
"lui" "lo" "gli" "glie" "lui" "suo" "sua" "suoi" "sue"
|
"lui" "lo" "gli" "glie" "lui" "suo" "sua" "suoi" "sue"
|
||||||
Masc Sg P3 ;
|
Masc Sg P3 ;
|
||||||
here7from_Adv = ss ["da quì"] ;
|
here7from_Adv = ss ["da quà"] ;
|
||||||
here7to_Adv = ss "quì" ;
|
here7to_Adv = ss "quà" ;
|
||||||
here_Adv = ss "quì" ;
|
here_Adv = ss "quà" ;
|
||||||
how_IAdv = ss "come" ;
|
how_IAdv = ss "come" ;
|
||||||
how8much_IAdv = ss "quanto" ;
|
how8much_IAdv = ss "quanto" ;
|
||||||
how8many_IDet = {s = \\g,c => prepCase c ++ genForms "quanti" "quante" ! g ; n = Pl} ;
|
how8many_IDet = {s = \\g,c => prepCase c ++ genForms "quanti" "quante" ! g ; n = Pl} ;
|
||||||
|
|||||||
@@ -86,13 +86,18 @@ mkN3 n p q = n ** {lock_N3 = <> ; c2 = p ; c3 = q };
|
|||||||
-- feminine is used for strings ending with "e", the masculine for other strings.
|
-- feminine is used for strings ending with "e", the masculine for other strings.
|
||||||
|
|
||||||
mkPN = overload {
|
mkPN = overload {
|
||||||
mkPN : Str -> PN = mkPropN ;
|
mkPN : Str -> PN
|
||||||
mkPN : Str -> Str -> Gender -> Number -> PN = mkPropNI ;
|
= mkPropN ;
|
||||||
mkPN : Str -> Gender -> PN = mkPropNoun ;
|
mkPN : Str -> Str -> Gender -> Number -> PN
|
||||||
mkPN : Str -> Gender -> Number -> PN = mkProperNoun;
|
= mkPropNI ;
|
||||||
|
mkPN : Str -> Gender -> PN
|
||||||
|
= mkPropNoun ;
|
||||||
|
mkPN : Str -> Gender -> Number -> PN
|
||||||
|
= mkProperNoun;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkInAn : PN -> PN = \romania ->
|
mkInAn : PN -> PN
|
||||||
|
= \romania ->
|
||||||
{s = table {No | Ac | Vo => romania.s ! No ;
|
{s = table {No | Ac | Vo => romania.s ! No ;
|
||||||
_ => case romania.g of
|
_ => case romania.g of
|
||||||
{ Fem => romania.s ! Ge ;
|
{ Fem => romania.s ! Ge ;
|
||||||
@@ -103,24 +108,27 @@ mkInAn : PN -> PN = \romania ->
|
|||||||
lock_PN = <>
|
lock_PN = <>
|
||||||
};
|
};
|
||||||
|
|
||||||
mkPropNI : Str -> Str -> Gender -> Number -> PN =
|
mkPropNI : Str -> Str -> Gender -> Number -> PN --%
|
||||||
\romania, romaniei,g,n ->
|
= \romania, romaniei,g,n ->
|
||||||
{s = table {Ge | Da => romaniei;
|
{s = table {Ge | Da => romaniei;
|
||||||
_ => romania };
|
_ => romania };
|
||||||
g = g; n = n;
|
g = g; n = n;
|
||||||
a = Inanimate;
|
a = Inanimate;
|
||||||
lock_PN = <>
|
lock_PN = <>
|
||||||
};
|
};
|
||||||
mkPropN : Str -> PN = \Ion ->
|
mkPropN : Str -> PN --%
|
||||||
|
= \Ion ->
|
||||||
case last Ion of
|
case last Ion of
|
||||||
{ "a" => mkPropNoun Ion Feminine ;
|
{ "a" => mkPropNoun Ion Feminine ;
|
||||||
_ => mkPropNoun Ion Masculine
|
_ => mkPropNoun Ion Masculine
|
||||||
};
|
};
|
||||||
|
|
||||||
mkPropNoun : Str -> Gender -> PN = \Ion, gen ->
|
mkPropNoun : Str -> Gender -> PN
|
||||||
|
= \Ion, gen ->
|
||||||
mkProperNoun Ion gen singular ;
|
mkProperNoun Ion gen singular ;
|
||||||
|
|
||||||
mkProperNoun : Str -> Gender -> Number -> PN = \Ion, gen, num ->
|
mkProperNoun : Str -> Gender -> Number -> PN --%
|
||||||
|
= \Ion, gen, num ->
|
||||||
{s = table {No => Ion;
|
{s = table {No => Ion;
|
||||||
Ac => Ion;
|
Ac => Ion;
|
||||||
Ge => case <last Ion,gen> of
|
Ge => case <last Ion,gen> of
|
||||||
@@ -148,6 +156,26 @@ lock_PN = <>
|
|||||||
mkA2 : A -> Prep -> A2 ;
|
mkA2 : A -> Prep -> A2 ;
|
||||||
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
|
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
|
||||||
|
|
||||||
|
mkV : Str -> V
|
||||||
|
= \s -> mkNV (regV s) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mkV2S : V -> Prep -> V2S ;
|
||||||
|
mkV2V : V -> Prep -> Prep -> V2V ;
|
||||||
|
mkVA : V -> VA ;
|
||||||
|
mkV2A : V -> Prep -> Prep -> V2A ;
|
||||||
|
mkVQ : V -> VQ ;
|
||||||
|
mkV2Q : V -> Prep -> V2Q ;
|
||||||
|
|
||||||
|
mkAS : A -> AS ;
|
||||||
|
mkA2S : A -> Prep -> A2S ;
|
||||||
|
mkAV : A -> Prep -> AV ;
|
||||||
|
mkA2V : A -> Prep -> Prep -> A2V ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--.
|
--.
|
||||||
--2 Definitions of the paradigms
|
--2 Definitions of the paradigms
|
||||||
|
|
||||||
@@ -208,7 +236,7 @@ regN : Str -> NGender -> N ;
|
|||||||
regN s g = mkInanimate (mkNomReg s g) ** {lock_N = <>};
|
regN s g = mkInanimate (mkNomReg s g) ** {lock_N = <>};
|
||||||
|
|
||||||
|
|
||||||
mkVI : Str -> Str -> Str -> N;
|
mkVI : Str -> Str -> Str -> N ;
|
||||||
mkVI s ss sss = mkInanimate (mkNomVIrreg s ss sss) ** {lock_N = <>};
|
mkVI s ss sss = mkInanimate (mkNomVIrreg s ss sss) ** {lock_N = <>};
|
||||||
|
|
||||||
mkIn : N -> N ;
|
mkIn : N -> N ;
|
||||||
@@ -343,23 +371,7 @@ case s of
|
|||||||
x + "î" => mkV141 s
|
x + "î" => mkV141 s
|
||||||
};
|
};
|
||||||
|
|
||||||
oper mkV : Str -> V = \s -> mkNV (regV s) ;
|
oper
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mkV2S : V -> Prep -> V2S ;
|
|
||||||
mkV2V : V -> Prep -> Prep -> V2V ;
|
|
||||||
mkVA : V -> VA ;
|
|
||||||
mkV2A : V -> Prep -> Prep -> V2A ;
|
|
||||||
mkVQ : V -> VQ ;
|
|
||||||
mkV2Q : V -> Prep -> V2Q ;
|
|
||||||
|
|
||||||
mkAS : A -> AS ;
|
|
||||||
mkA2S : A -> Prep -> A2S ;
|
|
||||||
mkAV : A -> Prep -> AV ;
|
|
||||||
mkA2V : A -> Prep -> Prep -> A2V ;
|
|
||||||
|
|
||||||
|
|
||||||
mmkV3 : V -> Prep -> Prep -> V3;
|
mmkV3 : V -> Prep -> Prep -> V3;
|
||||||
mmkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ;
|
mmkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ;
|
||||||
|
|
||||||
|
|||||||
@@ -47,14 +47,20 @@ oper
|
|||||||
|
|
||||||
|
|
||||||
-- Proper names
|
-- Proper names
|
||||||
mkPN : Str -> PN = \s -> let n = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ;
|
mkPN : Str -> PN
|
||||||
personalPN : Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron = \s1,s2,s3,sp,nn,g,p -> let n = mkPron s1 s2 s3 in {s = n.s ; a = toAgr nn p g ; ps = sp ; lock_Pron = <>};
|
= \s -> let n = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ;
|
||||||
demoPN : Str -> Str -> Str -> Quant = \s1,s2,s3 -> let n = makeDemonPronForm s1 s2 s3 in {s = n.s ; a = defaultAgr ; lock_Quant = <>};
|
personalPN : Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron --%
|
||||||
mkDet : Str -> Str -> Str -> Str -> Number -> Det = \s1,s2,s3,s4,nb -> let dt = makeDet s1 s2 s3 s4 nb in {s = dt.s ; n = nb ; lock_Det = <>};
|
= \s1,s2,s3,sp,nn,g,p -> let n = mkPron s1 s2 s3 in {s = n.s ; a = toAgr nn p g ; ps = sp ; lock_Pron = <>};
|
||||||
mkIP : (x1,x2,x3:Str) -> Number -> Gender -> IP = \s1,s2,s3,n,g -> let p = mkIntPronForm s1 s2 s3 in { s = p.s ; n = n ; g = g ; lock_IP = <>};
|
demoPN : Str -> Str -> Str -> Quant --%
|
||||||
|
= \s1,s2,s3 -> let n = makeDemonPronForm s1 s2 s3 in {s = n.s ; a = defaultAgr ; lock_Quant = <>};
|
||||||
|
mkDet : Str -> Str -> Str -> Str -> Number -> Det --%
|
||||||
|
= \s1,s2,s3,s4,nb -> let dt = makeDet s1 s2 s3 s4 nb in {s = dt.s ; n = nb ; lock_Det = <>};
|
||||||
|
mkIP : (x1,x2,x3:Str) -> Number -> Gender -> IP --%
|
||||||
|
= \s1,s2,s3,n,g -> let p = mkIntPronForm s1 s2 s3 in { s = p.s ; n = n ; g = g ; lock_IP = <>};
|
||||||
|
|
||||||
-- AdN
|
-- AdN
|
||||||
mkAdN : Str -> AdN = \s -> {s = s ; p = False ; lock_AdN = <>} ;
|
mkAdN : Str -> AdN --%
|
||||||
|
= \s -> {s = s ; p = False ; lock_AdN = <>} ;
|
||||||
--2 Adjectives
|
--2 Adjectives
|
||||||
|
|
||||||
mkA = overload {
|
mkA = overload {
|
||||||
@@ -79,7 +85,7 @@ oper
|
|||||||
mkV2 : V -> Str -> V2
|
mkV2 : V -> Str -> V2
|
||||||
= \v,p -> v ** {c2 = {s = p ; c = VTrans} ; lock_V2 = <>} ;
|
= \v,p -> v ** {c2 = {s = p ; c = VTrans} ; lock_V2 = <>} ;
|
||||||
} ;
|
} ;
|
||||||
dirV2 : V -> V2 = \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
|
dirV2 : V -> V2 = \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ; --%
|
||||||
|
|
||||||
mkV3 : V -> Str -> Str -> V3;
|
mkV3 : V -> Str -> Str -> V3;
|
||||||
mkV3 v p q = v ** { c2 = p ; c3 = q ; lock_V3 = <>} ;
|
mkV3 v p q = v ** { c2 = p ; c3 = q ; lock_V3 = <>} ;
|
||||||
@@ -90,13 +96,16 @@ oper
|
|||||||
|
|
||||||
-- compund verbs
|
-- compund verbs
|
||||||
compoundV = overload {
|
compoundV = overload {
|
||||||
compoundV : Str -> V -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
|
compoundV : Str -> V -> V
|
||||||
compoundV : Str -> V2 -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
|
= \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
|
||||||
|
compoundV : Str -> V2 -> V
|
||||||
|
= \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
----2 Adverbs
|
----2 Adverbs
|
||||||
mkAdv : Str -> Adv = \str -> {s = \\_ => str ; lock_Adv = <>};
|
mkAdv : Str -> Adv
|
||||||
|
= \str -> {s = \\_ => str ; lock_Adv = <>};
|
||||||
|
|
||||||
----2 Prepositions
|
----2 Prepositions
|
||||||
|
|
||||||
@@ -122,21 +131,13 @@ oper
|
|||||||
mkConj : Str -> Str -> Conj ; -- both ... and (plural)
|
mkConj : Str -> Str -> Conj ; -- both ... and (plural)
|
||||||
mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument)
|
mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument)
|
||||||
} ;
|
} ;
|
||||||
mkConj = overload {
|
|
||||||
mkConj : Str -> Conj = \y -> mk2Conj [] y plural ;
|
|
||||||
mkConj : Str -> Number -> Conj = \y,n -> mk2Conj [] y n ;
|
|
||||||
mkConj : Str -> Str -> Conj = \x,y -> mk2Conj x y plural ;
|
|
||||||
mkConj : Str -> Str -> Number -> Conj = mk2Conj ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
mk2Conj : Str -> Str -> Number -> Conj = \x,y,n ->
|
|
||||||
lin Conj (sd2 x y ** {n = n}) ;
|
|
||||||
|
|
||||||
-- mkV0 : V -> V0 ;
|
-- mkV0 : V -> V0 ;
|
||||||
mkVS : V -> VS;
|
mkVS : V -> VS;
|
||||||
mkVS v = v ;
|
mkVS v = v ;
|
||||||
-- mkV2S : V -> Prep -> V2S ;
|
-- mkV2S : V -> Prep -> V2S ;
|
||||||
mkVV : V -> VV = \v -> lin VV (v ** {isAux = False});
|
mkVV : V -> VV
|
||||||
|
= \v -> lin VV (v ** {isAux = False});
|
||||||
|
|
||||||
mkAdA : Str -> AdA ;
|
mkAdA : Str -> AdA ;
|
||||||
-- mkAdv x = lin Adv (ss x) ;
|
-- mkAdv x = lin Adv (ss x) ;
|
||||||
@@ -180,4 +181,18 @@ oper
|
|||||||
-- nominative = Nom ;
|
-- nominative = Nom ;
|
||||||
-- genitive = Gen ;
|
-- genitive = Gen ;
|
||||||
|
|
||||||
|
mkConj = overload {
|
||||||
|
mkConj : Str -> Conj
|
||||||
|
= \y -> mk2Conj [] y plural ;
|
||||||
|
mkConj : Str -> Number -> Conj
|
||||||
|
= \y,n -> mk2Conj [] y n ;
|
||||||
|
mkConj : Str -> Str -> Conj
|
||||||
|
= \x,y -> mk2Conj x y plural ;
|
||||||
|
mkConj : Str -> Str -> Number -> Conj
|
||||||
|
= mk2Conj ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mk2Conj : Str -> Str -> Number -> Conj = \x,y,n ->
|
||||||
|
lin Conj (sd2 x y ** {n = n}) ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user