forked from GitHub/gf-rgl
Merge pull request #225 from inariksit/spanish
Small fixes and additions in Spanish + Persian
This commit is contained in:
@@ -138,13 +138,20 @@ abstract Extend = Cat ** {
|
||||
-- proper structure of "it is AP to VP"
|
||||
|
||||
PredAPVP : AP -> VP -> Cl ; -- it is good to walk
|
||||
PredIAdvVP : IAdv -> VP -> QCl ; -- how to walk?
|
||||
|
||||
-- to use an AP as CN or NP without CN
|
||||
|
||||
AdjAsCN : AP -> CN ; -- a green one ; en grön (Swe)
|
||||
AdjAsNP : AP -> NP ; -- green (is good)
|
||||
|
||||
-- infinitive complement for IAdv
|
||||
|
||||
PredIAdvVP : IAdv -> VP -> QCl ; -- how to walk?
|
||||
|
||||
-- alternative SC, with "what"
|
||||
|
||||
WhatSSC : S -> SC ; -- what we did (was fun)
|
||||
|
||||
-- reflexive noun phrases: a generalization of Verb.ReflVP, which covers just reflexive pronouns
|
||||
-- This is necessary in languages like Swedish, which have special reflexive possessives.
|
||||
-- However, it is also needed in application grammars that want to treat "brush one's teeth" as a one-place predicate.
|
||||
|
||||
@@ -64,6 +64,7 @@ lin
|
||||
FrontComplDirectVQ = variants {} ; -- NP -> VQ -> Utt -> Cl ; -- "where", she asked
|
||||
PredAPVP ap vp = ImpersCl (UseComp (CompAP (SentAP ap (EmbedVP vp)))) ; -- DEFAULT it is (good to walk)
|
||||
PredIAdvVP iadv vp = QuestIAdv iadv (GenericCl vp) ; -- DEFAULT how does one walk
|
||||
WhatSSC = EmbedS ; -- DEFAULT that we did (was fun)
|
||||
AdjAsCN = variants {} ; -- AP -> CN ; -- a green one ; en grön (Swe)
|
||||
AdjAsNP = variants {} ; -- AP -> NP ; -- green (is good)
|
||||
ReflRNP = variants {} ; -- VPSlash -> RNP -> VP ; -- love my family and myself
|
||||
|
||||
@@ -15,7 +15,7 @@ concrete ExtendEng of Extend =
|
||||
FocusAP, FocusAdV, FocusAdv, FocusObj, GenIP, GenModIP, GenModNP, GenNP, GenRP,
|
||||
GerundAdv, GerundCN, GerundNP, IAdvAdv, ICompAP, InOrderToVP, MkVPS, NominalizeVPSlashNP,
|
||||
PassAgentVPSlash, PassVPSlash, PastPartAP, PastPartAgentAP, PositAdVAdj, PredVPS, PredVPSVV, PredetRNP, PrepCN,
|
||||
PredIAdvVP, PresPartAP, PurposeVP, ReflPoss, ReflPron, ReflRNP, SlashBareV2S, SlashV2V, StrandQuestSlash, StrandRelSlash,
|
||||
WhatSSC, PredIAdvVP, PresPartAP, PurposeVP, ReflPoss, ReflPron, ReflRNP, SlashBareV2S, SlashV2V, StrandQuestSlash, StrandRelSlash,
|
||||
UncontractedNeg, UttAccIP, UttAccNP, UttAdV, UttDatIP, UttDatNP, UttVPShort, WithoutVP, BaseVPS2, ConsVPS2, ConjVPS2, ComplVPS2, MkVPS2
|
||||
]
|
||||
with
|
||||
@@ -193,6 +193,8 @@ concrete ExtendEng of Extend =
|
||||
|
||||
PredIAdvVP iadv vp = {s = \\t,a,p,q => iadv.s ++ infVP VVInf vp False Simul CPos (agrP3 Sg)} ;
|
||||
|
||||
WhatSSC s = {s = \\_ => "what" ++ s.s} ;
|
||||
|
||||
NominalizeVPSlashNP vpslash np =
|
||||
let vp : ResEng.VP = insertObjPre (\\_ => vpslash.c2 ++ np.s ! NPAcc) vpslash ;
|
||||
a = AgP3Sg Neutr
|
||||
|
||||
@@ -316,6 +316,7 @@ oper
|
||||
haveVerb : Verb = haveRegV ** {s = table {
|
||||
ImpPrefix _ => [] ;
|
||||
VAor Neg agr => imperfectSuffix agr (addN "دار") ;
|
||||
VSubj pol agr => haveRegV.s ! VPerf pol agr ;
|
||||
vf => haveRegV.s ! vf }
|
||||
} where { haveRegV = mkVerb "داشتن" "دار" } ;
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ oper
|
||||
|
||||
mkPrep = overload {
|
||||
mkPrep : Str -> Prep -- Takes a string, returns a preposition.
|
||||
= \str -> lin Prep {s = str ; ra = [] ; mod = Bare} ;
|
||||
= \str -> lin Prep (prepOrRa str) ;
|
||||
mkPrep : Str -> Mod -> Prep -- Takes a string and Mod (so far only option is ezafe), returns a preposition.
|
||||
= \str,m -> lin Prep {s = str ; ra = [] ; mod=m}
|
||||
} ;
|
||||
|
||||
@@ -223,7 +223,15 @@ incomplete concrete ExtendRomanceFunctor of Extend =
|
||||
|
||||
lin
|
||||
DetNPMasc = DetNP ;
|
||||
DetNPFem = DetNP ;
|
||||
DetNPFem det =
|
||||
let
|
||||
g = Fem ;
|
||||
n = det.n
|
||||
in heavyNPpol det.isNeg {
|
||||
s = det.sp ! g ;
|
||||
a = agrP3 g n ;
|
||||
hasClit = False
|
||||
} ;
|
||||
|
||||
lin
|
||||
iFem_Pron = i_Pron ; -- DEFAULT I (masc)
|
||||
|
||||
@@ -158,8 +158,8 @@ instance DiffSpa of DiffRomance - [iAdvQuestionInv,otherInv,partAgr,stare_V,vpAg
|
||||
relPron : Bool => AAgr => Case => Str = \\b,a,c =>
|
||||
case c of {
|
||||
Nom | Acc => "que" ;
|
||||
CPrep P_a => "cuyo" ;
|
||||
_ => prepCase c ++ "cuyo"
|
||||
CPrep P_de => "cuyo" ;
|
||||
_ => prepCase c ++ "que"
|
||||
} ;
|
||||
|
||||
pronSuch : AAgr => Str = aagrForms "tál" "tál" "tales" "tales" ;
|
||||
|
||||
@@ -61,6 +61,8 @@ concrete ExtendSpa of Extend = CatSpa ** ExtendRomanceFunctor -
|
||||
s = "qué tan" ++ adv.s
|
||||
} ;
|
||||
|
||||
WhatSSC s = {s = \\_ => "lo que" ++ s.s ! Indic} ; --- mood
|
||||
|
||||
ExistsNP np =
|
||||
mkClause [] True False np.a
|
||||
(insertComplement (\\_ => (np.s ! Nom).ton)
|
||||
|
||||
@@ -8,7 +8,7 @@ concrete ExtendSwe of Extend = CatSwe **
|
||||
PassVPSlash, PassAgentVPSlash, UttVPShort, ByVP, InOrderToVP,
|
||||
MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS,
|
||||
ICompAP,ProDrop,
|
||||
ICompAP,ProDrop,WhatSSC,
|
||||
AdAdV, PositAdVAdj, GerundCN, GerundNP, GerundAdv, PresPartAP, PastPartAP, PastPartAgentAP,
|
||||
RNP, RNPList, ReflRNP, ReflPron, ReflPoss, PredetRNP, ConjRNP,
|
||||
Base_rr_RNP, Base_nr_RNP, Base_rn_RNP, Cons_rr_RNP, Cons_nr_RNP,
|
||||
@@ -230,4 +230,6 @@ concrete ExtendSwe of Extend = CatSwe **
|
||||
} ;
|
||||
|
||||
AdvIsNP adv np = PredVP {s = \\_ => adv.s ; a = np.a ; isPron = False} (UseComp (CompNP np)) ;
|
||||
|
||||
WhatSSC s = {s = "det" ++ s.s ! Main} ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user