mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
comparative adverbs generalized to cover more of Attempto
This commit is contained in:
@@ -16,6 +16,7 @@ cat Prep ;
|
||||
cat S ;
|
||||
cat VP ;
|
||||
cat V ;
|
||||
cat VS ;
|
||||
cat V2 ;
|
||||
cat V3 ;
|
||||
cat Adv ;
|
||||
@@ -86,6 +87,7 @@ fun they_NP : NP ;
|
||||
fun somebody_NP : NP ;
|
||||
fun something_NP : NP ;
|
||||
--fun noone_NP : NP ;
|
||||
fun nobody_NP : NP ;
|
||||
fun nothing_NP : NP ;
|
||||
--fun not_everyoneNP : NP ;
|
||||
fun not_everybodyNP : NP ;
|
||||
@@ -150,17 +152,17 @@ fun neg_vpS : NP -> VP -> S ;
|
||||
fun not_provably_vpS : NP -> VP -> S ;
|
||||
|
||||
fun vVP : V -> VP ;
|
||||
fun vsVP : VS -> S -> VP ;
|
||||
fun v2VP : V2 -> NP -> VP ;
|
||||
fun v3VP : V3 -> NP -> NP -> VP ;
|
||||
|
||||
-- 2.3.2
|
||||
|
||||
fun apVP : AP -> VP ;
|
||||
fun compVP : A -> NP -> VP ; -- John is richer than Mary
|
||||
fun as_asVP : A -> NP -> VP ; -- John is as rich as Mary
|
||||
fun apVP : AP -> VP ;
|
||||
fun compVP : A -> NP -> VP ; -- John is richer than Mary
|
||||
fun as_asVP : AP -> NP -> VP ; -- John is as rich as Mary
|
||||
fun more_thanVP : AP -> NP -> VP ; -- John is as rich as Mary
|
||||
|
||||
-- John is as fond-of Mary as Bill
|
||||
-- John is more fond-of Mary than Bill
|
||||
-- John is as fond-of Mary as of Sue
|
||||
-- John is more fond-of Mary than of Sue
|
||||
|
||||
@@ -213,8 +215,6 @@ fun not_possibleS : S -> S ;
|
||||
fun necessaryS : S -> S ;
|
||||
fun not_necessaryS : S -> S ;
|
||||
|
||||
fun thatS : S -> S -> S ;
|
||||
|
||||
-- 3.5
|
||||
|
||||
fun npQS : NP -> VP -> QS ;
|
||||
|
||||
@@ -18,6 +18,7 @@ lincat Prep = Syntax.Prep ;
|
||||
lincat S = Syntax.S ;
|
||||
lincat VP = Syntax.VP ;
|
||||
lincat V = Syntax.V ;
|
||||
lincat VS = Syntax.VS ;
|
||||
lincat V2 = Syntax.V2 ;
|
||||
lincat V3 = Syntax.V3 ;
|
||||
lincat Adv = Syntax.Adv ;
|
||||
@@ -118,8 +119,7 @@ lin superlAP a = mkAP (mkOrd a) ;
|
||||
-- 2.2.2
|
||||
|
||||
lin relCN = mkCN ;
|
||||
--lin relNP = mkNP ;
|
||||
|
||||
lin relNP = mkNP ;
|
||||
|
||||
lin andRS = mkRS and_Conj ;
|
||||
lin orRS = mkRS or_Conj ;
|
||||
@@ -145,6 +145,7 @@ lin neg_vpS np vp = mkS negativePol (mkCl np vp) ;
|
||||
lin not_provably_vpS np vp = mkS negativePol (mkCl np (mkVP vp provably_Adv)) ;
|
||||
|
||||
lin vVP = mkVP ;
|
||||
lin vsVP = mkVP ;
|
||||
lin v2VP = mkVP ;
|
||||
lin v3VP = mkVP ;
|
||||
|
||||
@@ -152,13 +153,11 @@ lin v3VP = mkVP ;
|
||||
|
||||
lin apVP = mkVP ;
|
||||
lin compVP a np = mkVP (mkAP a np) ;
|
||||
--lin as_asVP : A -> NP -> S ; -- John is as rich as Mary
|
||||
|
||||
-- John is as fond-of Mary as Bill
|
||||
-- John is more fond-of Mary than Bill
|
||||
-- John is as fond-of Mary as of Sue
|
||||
-- John is more fond-of Mary than of Sue
|
||||
lin as_asVP ap np = mkVP (mkAP as_CAdv ap np) ; -- John is as rich as Mary
|
||||
lin more_thanVP ap np = mkVP (mkAP more_CAdv ap np) ;
|
||||
|
||||
---- John is as fond-of Mary as of Sue
|
||||
---- John is more fond-of Mary than of Sue
|
||||
|
||||
lincat PP = Adv ;
|
||||
lincat [PP] = Adv ;
|
||||
@@ -222,8 +221,6 @@ lin necessaryS s = mkS (adj_thatCl necessary_A s) ;
|
||||
lin not_necessaryS s = mkS negativePol (adj_thatCl necessary_A s) ;
|
||||
|
||||
|
||||
--lin thatS s t = mkS s (mkAdv that_Subj t) ;
|
||||
|
||||
-- 3.5
|
||||
|
||||
lin npQS np vp = mkQS (mkCl np vp) ;
|
||||
|
||||
@@ -4,7 +4,7 @@ instance LexAttemptoEng of LexAttempto =
|
||||
SyntaxEng,
|
||||
ParadigmsEng,
|
||||
ConstructX,
|
||||
MakeStructuralEng,
|
||||
(M = MakeStructuralEng),
|
||||
IrregEng in {
|
||||
|
||||
oper
|
||||
@@ -23,11 +23,11 @@ oper
|
||||
|
||||
each_Det = ExtraEng.each_Det ;
|
||||
|
||||
that_Subj = mkSubj "that" ;
|
||||
that_Subj = M.mkSubj "that" ;
|
||||
|
||||
comma_and_Conj = mkConj [] ", and" plural ;
|
||||
comma_or_Conj = mkConj [] ", or" singular ;
|
||||
slash_Conj = mkConj [] "/" singular ;
|
||||
comma_and_Conj = M.mkConj [] ", and" plural ;
|
||||
comma_or_Conj = M.mkConj [] ", or" singular ;
|
||||
slash_Conj = M.mkConj [] "/" singular ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ fun
|
||||
course_N : CN ;
|
||||
carefully_Adv : Adv ;
|
||||
time_N : CN ;
|
||||
believe_V : V ;
|
||||
believe_VS : VS ;
|
||||
seriously_Adv : Adv ;
|
||||
clerk_N : CN ;
|
||||
screen_N : CN ;
|
||||
@@ -62,7 +62,7 @@ fun
|
||||
reject_V2 : V2 ;
|
||||
accept_V2 : V2 ;
|
||||
type_V2 : V2 ;
|
||||
know_V : V ;
|
||||
know_VS : VS ;
|
||||
manager_N : CN ;
|
||||
oversleep_V : V ;
|
||||
valid_A : A ;
|
||||
|
||||
@@ -53,7 +53,7 @@ lin patiently_Adv = mkAdv "patiently" ;
|
||||
lin course_N = mkkN "course" ;
|
||||
lin carefully_Adv = mkAdv "carefully" ;
|
||||
lin time_N = mkkN "time" ;
|
||||
lin believe_V = mkV "believe" ;
|
||||
lin believe_VS = mkVS (mkV "believe") ;
|
||||
lin seriously_Adv = mkAdv "seriously" ;
|
||||
lin clerk_N = mkkN "clerk" ;
|
||||
lin screen_N = mkkN "screen" ;
|
||||
@@ -64,7 +64,7 @@ lin automated_teller_N = mkkN "automated" ;
|
||||
lin reject_V2 = mkV2 "reject" ;
|
||||
lin accept_V2 = mkV2 "accept" ;
|
||||
lin type_V2 = mkV2 "type" ;
|
||||
lin know_V = IrregEng.know_V ;
|
||||
lin know_VS = mkVS IrregEng.know_V ;
|
||||
lin manager_N = mkkN "manager" ;
|
||||
lin oversleep_V = mkV "oversleep" "overslept" "overslept" ;
|
||||
lin valid_A = mkA "valid" ;
|
||||
|
||||
@@ -52,7 +52,7 @@ lin patiently_Adv = mkAdv "patiemment" ;
|
||||
lin course_N = mkkN "cours" ;
|
||||
lin carefully_Adv = mkAdv "soigneusement" ;
|
||||
lin time_N = mkkN "temps" ;
|
||||
lin believe_V = mkV croire_V2 ;
|
||||
lin believe_VS = mkVS (mkV croire_V2) ;
|
||||
lin seriously_Adv = mkAdv "sérieusement" ;
|
||||
lin clerk_N = mkkN "employé" ;
|
||||
lin screen_N = mkkN "écran" ;
|
||||
@@ -63,7 +63,7 @@ lin automated_teller_N = mkgN "automate" masculine ;
|
||||
lin reject_V2 = mkV2 "rejeter" ;
|
||||
lin accept_V2 = mkV2 "accepter" ;
|
||||
lin type_V2 = mkV2 "taper" ;
|
||||
lin know_V = mkV savoir_V2 ;
|
||||
lin know_VS = mkVS (mkV savoir_V2) ;
|
||||
lin manager_N = mkkN "directeur" ;
|
||||
lin oversleep_V = mkV dormir_V2 ; ----
|
||||
lin valid_A = mkA "valide" ;
|
||||
|
||||
@@ -52,7 +52,7 @@ lin patiently_Adv = mkAdv "geduldig" ;
|
||||
lin course_N = mkkN "Kurse" ; ----
|
||||
lin carefully_Adv = mkAdv "vorsichtig" ;
|
||||
lin time_N = mkgN "Zeit" "Zeiten" feminine ;
|
||||
lin believe_V = mkV "glauben" ;
|
||||
lin believe_VS = mkVS (mkV "glauben") ;
|
||||
lin seriously_Adv = mkAdv "seriös" ; ----
|
||||
lin clerk_N = mkgN "Angestellt" "Angestellten" masculine ; ----
|
||||
lin screen_N = mkgN "Schirm" "Schirme" masculine ;
|
||||
@@ -63,7 +63,7 @@ lin automated_teller_N = mkgN "Automat" "Automate" neuter ;
|
||||
lin reject_V2 = mkV2 (mkV "verwerfen" "verwirft" "verwarf" "verwürfe" "verworfen") ;
|
||||
lin accept_V2 = mkV2 (mkV "an" nehmen_V) ;
|
||||
lin type_V2 = mkV2 schreiben_V ;
|
||||
lin know_V = wissen_V ;
|
||||
lin know_VS = mkVS wissen_V ;
|
||||
lin manager_N = mkgN "Manager" "Manager" masculine ; ----
|
||||
lin oversleep_V = schlafen_V ; ----
|
||||
lin valid_A = mkA "gültig" ;
|
||||
|
||||
@@ -52,7 +52,7 @@ lin patiently_Adv = mkAdv "t
|
||||
lin course_N = mkCN (mkN "kurs" "kurser") ;
|
||||
lin carefully_Adv = mkAdv "försiktigt" ;
|
||||
lin time_N = mkCN (mkN "tid" "tider") ;
|
||||
lin believe_V = mkV "tro" ;
|
||||
lin believe_VS = mkVS (mkV "tro") ;
|
||||
lin seriously_Adv = mkAdv "seriöst" ;
|
||||
lin clerk_N = mkCN (mkN "kontorist" "kontorister") ;
|
||||
lin screen_N = mkkN "skärm" neutrum ;
|
||||
@@ -63,7 +63,7 @@ lin automated_teller_N = mkCN (mkN "automat" "automater") ;
|
||||
lin reject_V2 = mkV2 "förkasta" ;
|
||||
lin accept_V2 = mkV2 "acceptera" ;
|
||||
lin type_V2 = mkV2 skriva_V ; ----
|
||||
lin know_V = veta_V ;
|
||||
lin know_VS = mkVS veta_V ;
|
||||
lin manager_N = mkCN (mkN "chef" "chefer") ;
|
||||
lin oversleep_V = mkV "försova" "försov" "försovit" ;
|
||||
lin valid_A = mkA "giltig" ;
|
||||
|
||||
@@ -14,6 +14,7 @@ abstract Adjective = Cat ** {
|
||||
ReflA2 : A2 -> AP ; -- married to itself
|
||||
UseA2 : A2 -> AP ; -- married
|
||||
UseComparA : A -> AP ; -- warmer
|
||||
CAdvAP : CAdv -> AP -> NP -> AP ; -- as cool as John
|
||||
|
||||
-- The superlative use is covered in $Ord$.
|
||||
|
||||
|
||||
@@ -70,6 +70,11 @@ abstract Sentence = Cat ** {
|
||||
|
||||
RelS : S -> RS -> S ; -- she sleeps, which is good
|
||||
|
||||
---- A sentence can also be post-modified by a subjunct sentence.
|
||||
|
||||
---- ModSubjS : S -> Subj -> S -> S ; -- she sleeps, because she is old
|
||||
---- cf. Adverb.SubjS
|
||||
|
||||
}
|
||||
|
||||
--.
|
||||
|
||||
@@ -117,4 +117,6 @@ abstract Structural = Cat ** {
|
||||
nothing_NP : NP ;
|
||||
except_Prep : Prep ;
|
||||
|
||||
as_CAdv : CAdv ;
|
||||
|
||||
}
|
||||
|
||||
@@ -389,12 +389,13 @@ incomplete resource Constructors = open Grammar in {
|
||||
mkNP : Predet -> NP -> NP ; -- 21. only John
|
||||
mkNP : NP -> V2 -> NP ; -- 22. John killed
|
||||
mkNP : NP -> Adv -> NP ; -- 23. John in Paris
|
||||
mkNP : NP -> RS -> NP ; -- 24. John, who lives in Paris
|
||||
|
||||
-- A conjunction can be formed both from two noun phrases and a longer
|
||||
-- list of them.
|
||||
|
||||
mkNP : Conj -> NP -> NP -> NP ; -- 22. John and I
|
||||
mkNP : Conj -> ListNP -> NP ; -- 23. John, I, and that
|
||||
mkNP : Conj -> NP -> NP -> NP ; -- 25. John and I
|
||||
mkNP : Conj -> ListNP -> NP ; -- 26. John, I, and that
|
||||
|
||||
} ;
|
||||
|
||||
@@ -614,6 +615,7 @@ incomplete resource Constructors = open Grammar in {
|
||||
mkAP : Conj -> ListAP -> AP ; -- 11. old, big, and warm
|
||||
|
||||
mkAP : Ord -> AP ; -- 12. oldest
|
||||
mkAP : CAdv -> AP -> NP -> AP ; -- 13. as old as John
|
||||
} ;
|
||||
|
||||
reflAP : A2 -> AP ; -- married to himself
|
||||
@@ -894,7 +896,8 @@ incomplete resource Constructors = open Grammar in {
|
||||
= \c,xy -> ConjAP c xy ;
|
||||
mkAP : Ord -> AP
|
||||
= AdjOrd ;
|
||||
|
||||
mkAP : CAdv -> AP -> NP -> AP
|
||||
= CAdvAP ;
|
||||
} ;
|
||||
|
||||
reflAP = ReflA2 ;
|
||||
@@ -1055,6 +1058,8 @@ incomplete resource Constructors = open Grammar in {
|
||||
= PPartNP ;
|
||||
mkNP : NP -> Adv -> NP -- Paris at midnight
|
||||
= AdvNP ;
|
||||
mkNP : NP -> RS -> NP
|
||||
= RelNP ;
|
||||
mkNP : Conj -> NP -> NP -> NP
|
||||
= \c,x,y -> ConjNP c (BaseNP x y) ;
|
||||
mkNP : Conj -> ListNP -> NP
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
concrete StructuralCat of Structural = CatCat **
|
||||
open PhonoCat, MorphoCat, ParadigmsCat, BeschCat, Prelude in {
|
||||
open PhonoCat, MorphoCat, ParadigmsCat, BeschCat, (X = ConstructX), Prelude in {
|
||||
|
||||
flags optimize=all ; coding=utf8 ;
|
||||
|
||||
@@ -60,10 +60,10 @@ lin
|
||||
"ell" "lo" "el" "ell"
|
||||
["el seu"] ["la seva"] ["els seus"] ["les seves"]
|
||||
Masc Sg P3 ;
|
||||
less_CAdv = ss "menys" ; ----
|
||||
less_CAdv = X.mkCAdv "menys" conjThan ; ----
|
||||
many_Det = {
|
||||
s,sp = \\g,c => prepCase c ++ genForms "molts" "moltes" ! g ; n = Pl ; s2 = []} ;
|
||||
more_CAdv = ss "més" ;
|
||||
more_CAdv = X.mkCAdv "més" conjThan ;
|
||||
most_Predet = {s = \\_,c => prepCase c ++ ["la majoria"] ; c = CPrep P_de} ;
|
||||
much_Det = {
|
||||
s,sp = \\g,c => prepCase c ++ genForms "molt" "molta" ! g ; n = Sg ; s2 = []} ;
|
||||
|
||||
@@ -11,7 +11,7 @@ concrete CommonX of Common = open (R = ParamX) in {
|
||||
AdA = {s : Str} ; --lock_AdA : {}} ;
|
||||
AdN = {s : Str} ; --lock_AdN : {}} ;
|
||||
IAdv = {s : Str} ; --lock_IAdv : {}} ;
|
||||
CAdv = {s : Str} ; --lock_CAdv : {}} ;
|
||||
CAdv = {s,p : Str} ; --lock_CAdv : {}} ;
|
||||
PConj = {s : Str} ; --lock_PConj : {}} ;
|
||||
|
||||
Temp = {s : Str ; t : R.Tense ; a : R.Anteriority} ;
|
||||
|
||||
@@ -13,7 +13,7 @@ resource ConstructX = open CommonX in {
|
||||
mkAdA : Str -> AdA = \s -> {s = s ; lock_AdA = <>} ;
|
||||
mkAdN : Str -> AdN = \s -> {s = s ; lock_AdN = <>} ;
|
||||
mkIAdv : Str -> IAdv = \s -> {s = s ; lock_IAdv = <>} ;
|
||||
mkCAdv : Str -> CAdv = \s -> {s = s ; lock_CAdv = <>} ;
|
||||
mkCAdv : Str -> Str -> CAdv = \s,p -> {s = s ; p = p ; lock_CAdv = <>} ;
|
||||
mkPConj : Str -> PConj = \s -> {s = s ; lock_PConj = <>} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,10 @@ concrete AdjectiveEng of Adjective = CatEng ** open ResEng, Prelude in {
|
||||
isPre = True
|
||||
} ;
|
||||
|
||||
CAdvAP ad ap np = {
|
||||
s = \\a => ad.s ++ ap.s ! a ++ ad.p ++ np.s ! Nom ;
|
||||
isPre = False
|
||||
} ;
|
||||
|
||||
ComplA2 a np = {
|
||||
s = \\_ => a.s ! AAdj Posit ++ a.c2 ++ np.s ! Acc ;
|
||||
|
||||
@@ -3,10 +3,10 @@ concrete AdverbEng of Adverb = CatEng ** open ResEng, Prelude in {
|
||||
lin
|
||||
PositAdvAdj a = {s = a.s ! AAdv} ;
|
||||
ComparAdvAdj cadv a np = {
|
||||
s = cadv.s ++ a.s ! AAdv ++ "than" ++ np.s ! Nom
|
||||
s = cadv.s ++ a.s ! AAdv ++ cadv.p ++ np.s ! Nom
|
||||
} ;
|
||||
ComparAdvAdjS cadv a s = {
|
||||
s = cadv.s ++ a.s ! AAdv ++ "than" ++ s.s
|
||||
s = cadv.s ++ a.s ! AAdv ++ cadv.p ++ s.s
|
||||
} ;
|
||||
|
||||
PrepNP prep np = {s = prep.s ++ np.s ! Acc} ;
|
||||
@@ -14,8 +14,7 @@ concrete AdverbEng of Adverb = CatEng ** open ResEng, Prelude in {
|
||||
AdAdv = cc2 ;
|
||||
|
||||
SubjS = cc2 ;
|
||||
---b AdvSC s = s ; --- this rule give stack overflow in ordinary parsing
|
||||
|
||||
AdnCAdv cadv = {s = cadv.s ++ "than"} ;
|
||||
AdnCAdv cadv = {s = cadv.s ++ cadv.p} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ lin
|
||||
stone_N = regN "stone" ;
|
||||
stove_N = regN "stove" ;
|
||||
student_N = mkN human (regN "student") ;
|
||||
stupid_A = regADeg "stupid" ;
|
||||
stupid_A = mkA "stupid" ;
|
||||
sun_N = regN "sun" ;
|
||||
switch8off_V2 = dirV2 (partV (regV "switch") "off") ;
|
||||
switch8on_V2 = dirV2 (partV (regV "switch") "on") ;
|
||||
@@ -193,7 +193,7 @@ lin
|
||||
travel_V = (regDuplV "travel") ;
|
||||
tree_N = regN "tree" ;
|
||||
---- trousers_N = regN "trousers" ;
|
||||
ugly_A = regADeg "ugly" ;
|
||||
ugly_A = mkA "ugly" ;
|
||||
understand_V2 = dirV2 (irregV "understand" "understood" "understood") ;
|
||||
university_N = regN "university" ;
|
||||
village_N = regN "village" ;
|
||||
@@ -203,7 +203,7 @@ lin
|
||||
war_N = regN "war" ;
|
||||
watch_V2 = dirV2 (regV "watch") ;
|
||||
water_N = regN "water" ;
|
||||
white_A = regADeg "white" ;
|
||||
white_A = mkA "white" ;
|
||||
window_N = regN "window" ;
|
||||
wine_N = regN "wine" ;
|
||||
win_V2 = dirV2 (irregDuplV "win" "won" "won") ;
|
||||
@@ -211,7 +211,7 @@ lin
|
||||
wonder_VQ = mkVQ (regV "wonder") ;
|
||||
wood_N = regN "wood" ;
|
||||
write_V2 = dirV2 (irregV "write" "wrote" "written") ;
|
||||
yellow_A = regADeg "yellow" ;
|
||||
yellow_A = mkA "yellow" ;
|
||||
young_A = regADeg "young" ;
|
||||
|
||||
do_V2 = dirV2 (mk5V "do" "does" "did" "done" "doing") ;
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
--# -path=.:../common:../abstract
|
||||
|
||||
resource MakeStructuralEng = open CatEng, ParadigmsEng, MorphoEng, Prelude in {
|
||||
resource MakeStructuralEng = open CatEng, ParadigmsEng, ResEng, MorphoEng, Prelude in {
|
||||
|
||||
oper
|
||||
mkConj : Str -> Str -> Number -> Conj = \x,y,n ->
|
||||
{s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ;
|
||||
mkSubj : Str -> Subj = \x ->
|
||||
{s = x ; lock_Subj = <>} ;
|
||||
mkNP : Str -> Number -> NP = \s,n ->
|
||||
regNP s n ** {lock_NP = <>} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
concrete StructuralEng of Structural = CatEng **
|
||||
open MorphoEng, ResEng, ParadigmsEng, Prelude in {
|
||||
open MorphoEng, ResEng, ParadigmsEng, (C = ConstructX), Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
@@ -54,9 +54,9 @@ concrete StructuralEng of Structural = CatEng **
|
||||
i_Pron = mkPron "I" "me" "my" "mine" singular P1 human ;
|
||||
in_Prep = mkPrep "in" ;
|
||||
it_Pron = mkPron "it" "it" "its" "its" singular P3 nonhuman ;
|
||||
less_CAdv = ss "less" ;
|
||||
less_CAdv = C.mkCAdv "less" "than" ;
|
||||
many_Det = mkDeterminer plural "many" ;
|
||||
more_CAdv = ss "more" ;
|
||||
more_CAdv = C.mkCAdv "more" "than" ;
|
||||
most_Predet = ss "most" ;
|
||||
much_Det = mkDeterminer singular "much" ;
|
||||
must_VV = {
|
||||
@@ -132,5 +132,8 @@ concrete StructuralEng of Structural = CatEng **
|
||||
at_most_AdN = mkAdN "at most" ;
|
||||
|
||||
except_Prep = mkPrep "except" ;
|
||||
|
||||
as_CAdv = C.mkCAdv "as" "as" ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,9 @@ concrete AdjectiveFin of Adjective = CatFin ** open ResFin, Prelude in {
|
||||
_ => a.s ! Compar ! AN af ++ "kuin" ++ np.s ! NPCase Nom -- isompi kuin minä
|
||||
}
|
||||
} ;
|
||||
CAdvAP ad ap np = {
|
||||
s = \\m,af => ad.s ++ ap.s ! m ! af ++ ad.p ++ np.s ! NPCase Nom
|
||||
} ;
|
||||
UseComparA a = {
|
||||
s = \\_,nf => a.s ! Compar ! AN nf ;
|
||||
} ;
|
||||
|
||||
@@ -3,10 +3,10 @@ concrete AdverbFin of Adverb = CatFin ** open ResFin, Prelude in {
|
||||
lin
|
||||
PositAdvAdj a = {s = a.s ! Posit ! AAdv} ;
|
||||
ComparAdvAdj cadv a np = {
|
||||
s = cadv.s ++ a.s ! Posit ! AAdv ++ "kuin" ++ np.s ! NPCase Nom
|
||||
s = cadv.s ++ a.s ! Posit ! AAdv ++ cadv.p ++ np.s ! NPCase Nom
|
||||
} ;
|
||||
ComparAdvAdjS cadv a s = {
|
||||
s = cadv.s ++ a.s ! Posit ! AAdv ++ "kuin" ++ s.s
|
||||
s = cadv.s ++ a.s ! Posit ! AAdv ++ cadv.p ++ s.s
|
||||
} ;
|
||||
|
||||
PrepNP prep np = {s = preOrPost prep.isPre prep.s (np.s ! prep.c)} ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
concrete StructuralFin of Structural = CatFin **
|
||||
open MorphoFin, ParadigmsFin, Prelude in {
|
||||
open MorphoFin, ParadigmsFin, (X = ConstructX), Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
@@ -57,9 +57,9 @@ concrete StructuralFin of Structural = CatFin **
|
||||
a = agrP3 Sg ;
|
||||
isPron = False
|
||||
} ;
|
||||
less_CAdv = ss "vähemmän" ;
|
||||
less_CAdv = X.mkCAdv "vähemmän" "kuin" ;
|
||||
many_Det = mkDet Sg (mkN "moni" "monia") ;
|
||||
more_CAdv = ss "enemmän" ;
|
||||
more_CAdv = X.mkCAdv "enemmän" "kuin" ;
|
||||
most_Predet = {s = \\n,c => (nForms2N (dSuurin "useinta")).s ! NCase n (npform2case n c)} ;
|
||||
much_Det = mkDet Sg {s = \\_ => "paljon"} ;
|
||||
must_VV = mkVV (caseV genitive (mkV "täytyä")) ;
|
||||
@@ -302,6 +302,7 @@ lin
|
||||
at_least_AdN = ss "vähintään" ;
|
||||
at_most_AdN = ss "enintään" ;
|
||||
|
||||
as_CAdv = X.mkCAdv "yhtä" "kuin" ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--# -path=.:../abstract:../romance:../common:prelude
|
||||
|
||||
concrete StructuralFre of Structural = CatFre **
|
||||
open PhonoFre, MorphoFre, ParadigmsFre, IrregFre, Prelude in {
|
||||
open PhonoFre, MorphoFre, ParadigmsFre, IrregFre, (X = ConstructX), Prelude in {
|
||||
|
||||
flags optimize=all ; coding=utf8 ;
|
||||
|
||||
@@ -57,9 +57,9 @@ lin
|
||||
mkPronoun
|
||||
"il" (elision "l") "lui" "lui" "son" (elisPoss "s") "ses"
|
||||
Masc Sg P3 ;
|
||||
less_CAdv = ss "moins" ;
|
||||
less_CAdv = X.mkCAdv "moins" conjThan ;
|
||||
many_Det = {s,sp = \\_,c => prepCase c ++ "plusieurs" ; n = Pl ; s2 = []} ;
|
||||
more_CAdv = ss "plus" ;
|
||||
more_CAdv = X.mkCAdv "plus" conjThan ;
|
||||
most_Predet = {s = \\_,c => prepCase c ++ ["la plupart"] ; c = CPrep P_de} ;
|
||||
much_Det = {s,sp = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ; n = Pl ; s2 = []} ;
|
||||
must_VV = mkVV (devoir_V2 ** {lock_V = <>}) ;
|
||||
@@ -183,5 +183,7 @@ lin
|
||||
|
||||
except_Prep = mkPreposition "excepté" ;
|
||||
|
||||
as_CAdv = X.mkCAdv "aussi" conjThan ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,10 @@ concrete AdjectiveGer of Adjective = CatGer ** open ResGer, Prelude in {
|
||||
s = \\af => a.s ! Compar ! af ++ conjThan ++ np.s ! Nom ;
|
||||
isPre = True
|
||||
} ;
|
||||
CAdvAP ad ap np = {
|
||||
s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ np.s ! Nom ;
|
||||
isPre = False
|
||||
} ;
|
||||
UseComparA a = {
|
||||
s = \\af => a.s ! Compar ! af ;
|
||||
isPre = True
|
||||
|
||||
@@ -4,10 +4,10 @@ concrete AdverbGer of Adverb = CatGer ** open ResGer, Prelude in {
|
||||
PositAdvAdj a = {s = a.s ! Posit ! APred} ;
|
||||
|
||||
ComparAdvAdj cadv a np = {
|
||||
s = cadv.s ++ a.s ! Posit ! APred ++ conjThan ++ np.s ! Nom
|
||||
s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ np.s ! Nom
|
||||
} ;
|
||||
ComparAdvAdjS cadv a s = {
|
||||
s = cadv.s ++ a.s ! Posit ! APred ++ conjThan ++ s.s ! Sub
|
||||
s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ s.s ! Sub
|
||||
} ;
|
||||
|
||||
PrepNP prep np = {s = appPrep prep np.s} ;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
concrete StructuralGer of Structural = CatGer **
|
||||
|
||||
open MorphoGer, Prelude in {
|
||||
open MorphoGer, (X = ConstructX), Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
@@ -48,9 +48,9 @@ concrete StructuralGer of Structural = CatGer **
|
||||
i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Masc Sg P1 ;
|
||||
in_Prep = mkPrep "in" Dat ;
|
||||
it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Neutr Sg P3 ;
|
||||
less_CAdv = ss "weniger" ;
|
||||
less_CAdv = X.mkCAdv "weniger" "als" ;
|
||||
many_Det = detLikeAdj Pl "viel" ;
|
||||
more_CAdv = ss "mehr" ;
|
||||
more_CAdv = X.mkCAdv "mehr" "als" ;
|
||||
most_Predet = {s = appAdj (regA "meist") ; c = NoCase} ;
|
||||
much_Det = detLikeAdj Sg "viel" ;
|
||||
must_VV = auxVV
|
||||
@@ -143,4 +143,7 @@ concrete StructuralGer of Structural = CatGer **
|
||||
at_least_AdN = ss "wenigstens" ;
|
||||
at_most_AdN = ss "höchstens" ;
|
||||
except_Prep = mkPrep "außer" Dat ;
|
||||
|
||||
as_CAdv = X.mkCAdv "ebenso" "wie" ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
concrete StructuralIta of Structural = CatIta **
|
||||
open
|
||||
PhonoIta, MorphoIta,
|
||||
ParadigmsIta, BeschIta, Prelude in {
|
||||
ParadigmsIta, BeschIta, (X = ConstructX), Prelude in {
|
||||
|
||||
flags optimize=all ; coding=utf8 ;
|
||||
|
||||
@@ -57,9 +57,9 @@ lin
|
||||
mkPronoun
|
||||
"lui" "lo" "gli" "glie" "lui" "suo" "sua" "suoi" "sue"
|
||||
Masc Sg P3 ;
|
||||
less_CAdv = ss "meno" ;
|
||||
less_CAdv = X.mkCAdv "meno" conjThan ;
|
||||
many_Det = {s,sp = \\g,c => prepCase c ++ genForms "molti" "molte" ! g ; n = Pl ; s2 = []} ;
|
||||
more_CAdv = ss "più" ;
|
||||
more_CAdv = X.mkCAdv "più" conjThan ;
|
||||
most_Predet = {s = \\_,c => prepCase c ++ ["la maggior parte"] ; c = CPrep P_di} ;
|
||||
much_Det = {s,sp = \\g,c => prepCase c ++ genForms "molto" "molta" ! g ; n = Sg ; s2 = []} ;
|
||||
must_VV = mkVV (verboV (dovere_47 "dovere")) ;
|
||||
@@ -174,5 +174,6 @@ lin
|
||||
at_least_AdN = ss "almeno" ;
|
||||
at_most_AdN = ss "al massimo" ;
|
||||
|
||||
as_CAdv = X.mkCAdv "così" conjThan ;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,10 @@ incomplete concrete AdjectiveRomance of Adjective =
|
||||
s = \\af => a.s ! Compar ! af ++ conjThan ++ (np.s ! Nom).ton ;
|
||||
isPre = False
|
||||
} ;
|
||||
CAdvAP ad ap np = {
|
||||
s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ (np.s ! Nom).ton ;
|
||||
isPre = False
|
||||
} ;
|
||||
UseComparA a = {
|
||||
s = \\af => a.s ! Compar ! af ;
|
||||
isPre = a.isPre
|
||||
|
||||
@@ -6,10 +6,10 @@ incomplete concrete AdverbRomance of Adverb =
|
||||
s = a.s ! Posit ! AA
|
||||
} ;
|
||||
ComparAdvAdj cadv a np = {
|
||||
s = cadv.s ++ a.s ! Posit ! AA ++ conjThan ++ (np.s ! Nom).ton
|
||||
s = cadv.s ++ a.s ! Posit ! AA ++ cadv.p ++ (np.s ! Nom).ton
|
||||
} ;
|
||||
ComparAdvAdjS cadv a s = {
|
||||
s = cadv.s ++ a.s ! Posit ! AA ++ conjThan ++ s.s ! Conjunct --- ne
|
||||
s = cadv.s ++ a.s ! Posit ! AA ++ cadv.p ++ s.s ! Conjunct --- ne
|
||||
} ;
|
||||
|
||||
PrepNP prep np = {s = prep.s ++ (np.s ! prep.c).ton} ;
|
||||
|
||||
@@ -23,6 +23,11 @@ incomplete concrete AdjectiveScand of Adjective =
|
||||
isPre = False
|
||||
} ;
|
||||
|
||||
CAdvAP ad ap np = {
|
||||
s = \\a => ad.s ++ ap.s ! a ++ ad.p ++ np.s ! nominative ;
|
||||
isPre = False
|
||||
} ;
|
||||
|
||||
AdjOrd ord = {
|
||||
s = \\_ => ord.s ;
|
||||
isPre = True
|
||||
|
||||
@@ -5,10 +5,10 @@ incomplete concrete AdverbScand of Adverb = CatScand ** open CommonScand, ResSca
|
||||
s = a.s ! adverbForm
|
||||
} ;
|
||||
ComparAdvAdj cadv a np = {
|
||||
s = cadv.s ++ a.s ! adverbForm ++ conjThan ++ np.s ! nominative
|
||||
s = cadv.s ++ a.s ! adverbForm ++ cadv.p ++ np.s ! nominative
|
||||
} ;
|
||||
ComparAdvAdjS cadv a s = {
|
||||
s = cadv.s ++ a.s ! adverbForm ++ conjThan ++ s.s ! Sub
|
||||
s = cadv.s ++ a.s ! adverbForm ++ cadv.p ++ s.s ! Sub
|
||||
} ;
|
||||
|
||||
PrepNP prep np = {s = prep.s ++ np.s ! accusative} ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
concrete StructuralSpa of Structural = CatSpa **
|
||||
open PhonoSpa, MorphoSpa, ParadigmsSpa, BeschSpa, Prelude in {
|
||||
open PhonoSpa, MorphoSpa, ParadigmsSpa, BeschSpa, (X = ConstructX), Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
@@ -60,10 +60,10 @@ lin
|
||||
"el" "lo" "le" "él"
|
||||
"su" "su" "sus" "sus"
|
||||
Masc Sg P3 ;
|
||||
less_CAdv = ss "meno" ; ----
|
||||
less_CAdv = X.mkCAdv "menos" conjThan ; ----
|
||||
many_Det = {
|
||||
s,sp = \\g,c => prepCase c ++ genForms "muchos" "muchas" ! g ; n = Pl ; s2 = []} ;
|
||||
more_CAdv = ss "mas" ;
|
||||
more_CAdv = X.mkCAdv "más" conjThan ;
|
||||
most_Predet = {s = \\_,c => prepCase c ++ ["la mayor parte"] ; c = CPrep P_de} ;
|
||||
much_Det = {
|
||||
s,sp = \\g,c => prepCase c ++ genForms "mucho" "mucha" ! g ; n = Sg ; s2 = []} ;
|
||||
@@ -168,6 +168,8 @@ oper
|
||||
"y" / strs {"ya" ; "ye" ; "yo" ; "yu"} ;
|
||||
"e" / strs {"i" ; "hi" ; "y"}
|
||||
}} ** {n = Pl} ;
|
||||
lin
|
||||
as_CAdv = X.mkCAdv "si" conjThan ; ----
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
concrete StructuralSwe of Structural = CatSwe **
|
||||
open MorphoSwe, ParadigmsSwe, Prelude in {
|
||||
open MorphoSwe, ParadigmsSwe, (X = ConstructX), Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
@@ -43,9 +43,9 @@ concrete StructuralSwe of Structural = CatSwe **
|
||||
i_Pron = MorphoSwe.mkNP "jag" "mig" "min" "mitt" "mina" SgUtr P1 ;
|
||||
in_Prep = ss "i" ;
|
||||
it_Pron = MorphoSwe.regNP "det" "dess" SgNeutr ;
|
||||
less_CAdv = ss "mindre" ;
|
||||
less_CAdv = X.mkCAdv "mindre" "än" ;
|
||||
many_Det = {s = \\_,_ => "många" ; n = Pl ; det = DDef Indef} ;
|
||||
more_CAdv = ss "mer" ;
|
||||
more_CAdv = X.mkCAdv "mer" "än" ;
|
||||
most_Predet = {s = gennumForms ["den mesta"] ["det mesta"] ["de flesta"]} ;
|
||||
much_Det = {s = \\_,_ => "mycket" ; n = Pl ; det = DDef Indef} ;
|
||||
must_VV =
|
||||
@@ -141,5 +141,8 @@ lin
|
||||
at_most_AdN = ss "högst" ;
|
||||
|
||||
except_Prep = ss "utom" ;
|
||||
|
||||
as_CAdv = X.mkCAdv "lika" "som" ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user