mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-17 23:30:14 -06:00
93 lines
2.1 KiB
Plaintext
93 lines
2.1 KiB
Plaintext
|
|
--1 Idiom: Idiomatic Expressions
|
|
|
|
concrete IdiomHun of Idiom = CatHun ** open Prelude, ResHun, VerbHun, NounHun, StructuralHun in {
|
|
|
|
-- This module defines constructions that are formed in fixed ways,
|
|
-- often different even in closely related languages.
|
|
|
|
{- lin
|
|
|
|
|
|
-- ImpersCl : VP -> Cl ; -- it is hot
|
|
-- GenericCl : VP -> Cl ; -- one sleeps
|
|
ImpersCl,
|
|
GenericCl = \vp -> predVP impersNP (passVP vp) ;
|
|
|
|
CleftNP : NP -> RS -> Cl ; -- it is I who did it
|
|
CleftAdv : Adv -> S -> Cl ; -- it is here she slept
|
|
|
|
-- : NP -> Cl ; -- there is a house
|
|
ExistNP np =
|
|
|
|
ExistIP : IP -> QCl ; -- which houses are there
|
|
|
|
-- 7/12/2012 generalizations of these
|
|
|
|
ExistNPAdv : NP -> Adv -> Cl ; -- there is a house in Paris
|
|
ExistIPAdv : IP -> Adv -> QCl ; -- which houses are there in Paris
|
|
|
|
-- : VP -> VP ;
|
|
ProgrVP vp = vp ** {
|
|
} ;
|
|
|
|
|
|
-- : VP -> Utt ; -- let's go
|
|
ImpPl1 vp = { } ;
|
|
|
|
ImpP3 : NP -> VP -> Utt ; -- let John walk
|
|
|
|
-- 3/12/2013 non-reflexive uses of "self"
|
|
|
|
SelfAdvVP : VP -> VP ; -- is at home himself
|
|
SelfAdVVP : VP -> VP ; -- is himself at home
|
|
SelfNP : NP -> NP ; -- the president himself (is at home)
|
|
-}
|
|
|
|
lin
|
|
ExistNP np = existNP np [] ;
|
|
|
|
ExistNPAdv np adv = existNP np adv.s ;
|
|
|
|
ExistIP ip = {
|
|
s = \\t,a,p =>
|
|
ip.s ! NoPoss ! Nom
|
|
++ if_then_Pol p [] "nem"
|
|
++ copula.s ! case t of {
|
|
Past => VPast P3 ip.agr.p2 ;
|
|
_ => VPres P3 ip.agr.p2
|
|
}
|
|
} ;
|
|
|
|
ExistIPAdv ip adv = {
|
|
s = \\t,a,p =>
|
|
ip.s ! NoPoss ! Nom
|
|
++ adv.s
|
|
++ if_then_Pol p [] "nem"
|
|
++ copula.s ! case t of {
|
|
Past => VPast P3 ip.agr.p2 ;
|
|
_ => VPres P3 ip.agr.p2
|
|
}
|
|
} ;
|
|
|
|
ProgrVP vp = vp ;
|
|
|
|
ImpPl1 vp = {
|
|
s = "próbáljunk" ++ infVP vp
|
|
} ;
|
|
|
|
oper
|
|
existNP : NounPhrase -> Str -> ResHun.ClSlash = \np,adv -> {
|
|
s = \\t,_,p =>
|
|
if_then_Pol p [] "nem"
|
|
++ copula.s ! case t of {
|
|
Past => VPast P3 np.agr.p2 ;
|
|
_ => VPres P3 np.agr.p2
|
|
}
|
|
++ linNP np
|
|
++ adv ;
|
|
c2 = Acc
|
|
} ;
|
|
|
|
}
|