mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-31 02:38:55 -06:00
Merge remote-tracking branch 'upstream/master' into missing-romance
This commit is contained in:
18
src/basque/ExtendEus.gf
Normal file
18
src/basque/ExtendEus.gf
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
--# -path=.:../common:../abstract
|
||||||
|
|
||||||
|
concrete ExtendEus of Extend =
|
||||||
|
CatEus ** ExtendFunctor - [GenNP,ICompAP]
|
||||||
|
with (Grammar=GrammarEus)
|
||||||
|
** open Prelude, ResEus in {
|
||||||
|
|
||||||
|
lin
|
||||||
|
GenNP np = -- NP -> Quant ; -- this man's
|
||||||
|
{ s = artDef ;
|
||||||
|
indep, isDef = True ;
|
||||||
|
pref = np.s ! Gen } ;
|
||||||
|
|
||||||
|
|
||||||
|
ICompAP ap = -- AP -> IComp ; -- "how old"
|
||||||
|
{ s = "nola" ++ ap.s ! Hau } ; --TODO agreement -- change type of IComp
|
||||||
|
} ;
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
--1 Idiom: Idiomatic Expressions
|
--1 Idiom: Idiomatic Expressions
|
||||||
|
|
||||||
concrete IdiomEus of Idiom = CatEus ** open Prelude, ResEus in {
|
concrete IdiomEus of Idiom = CatEus ** open Prelude, ResEus, VerbEus in {
|
||||||
|
|
||||||
-- This module defines constructions that are formed in fixed ways,
|
-- This module defines constructions that are formed in fixed ways,
|
||||||
-- often different even in closely related languages.
|
-- often different even in closely related languages.
|
||||||
@@ -16,9 +16,12 @@ concrete IdiomEus of Idiom = CatEus ** open Prelude, ResEus in {
|
|||||||
{-
|
{-
|
||||||
CleftNP : NP -> RS -> Cl ; -- it is I who did it
|
CleftNP : NP -> RS -> Cl ; -- it is I who did it
|
||||||
CleftAdv : Adv -> S -> Cl ; -- it is here she slept
|
CleftAdv : Adv -> S -> Cl ; -- it is here she slept
|
||||||
|
-}
|
||||||
|
-- : NP -> Cl ; -- there is a house
|
||||||
|
ExistNP np = let vp = UseComp (CompNP np)
|
||||||
|
in clFromVP empty_NP vp ;
|
||||||
|
|
||||||
ExistNP : NP -> Cl ; -- there is a house
|
{- ExistIP : IP -> QCl ; -- which houses are there
|
||||||
ExistIP : IP -> QCl ; -- which houses are there
|
|
||||||
|
|
||||||
-- 7/12/2012 generalizations of these
|
-- 7/12/2012 generalizations of these
|
||||||
|
|
||||||
|
|||||||
@@ -10,11 +10,8 @@ oper ComparAdvAdjS : CAdv -> A -> S -> Adv = notYet "ComparAdvAdjS" ;
|
|||||||
oper ComplSlashIP : VPSlash -> IP -> QVP = notYet "ComplSlashIP" ;
|
oper ComplSlashIP : VPSlash -> IP -> QVP = notYet "ComplSlashIP" ;
|
||||||
oper ExistIP : IP -> QCl = notYet "ExistIP" ;
|
oper ExistIP : IP -> QCl = notYet "ExistIP" ;
|
||||||
oper ExistIPAdv : IP -> Adv -> QCl = notYet "ExistIPAdv" ;
|
oper ExistIPAdv : IP -> Adv -> QCl = notYet "ExistIPAdv" ;
|
||||||
oper ExistNP : NP -> Cl = notYet "ExistNP" ;
|
|
||||||
oper ExistNPAdv : NP -> Adv -> Cl= notYet "ExistNPAdv" ;
|
oper ExistNPAdv : NP -> Adv -> Cl= notYet "ExistNPAdv" ;
|
||||||
oper GenericCl : VP -> Cl = notYet "GenericCl" ;
|
|
||||||
oper ImpP3 : NP -> VP -> Utt = notYet "ImpP3" ;
|
oper ImpP3 : NP -> VP -> Utt = notYet "ImpP3" ;
|
||||||
oper ImpersCl : VP -> Cl = notYet "ImpersCl" ;
|
|
||||||
oper QuestQVP : IP -> QVP -> QCl = notYet "QuestQVP" ;
|
oper QuestQVP : IP -> QVP -> QCl = notYet "QuestQVP" ;
|
||||||
oper SelfAdVVP : VP -> VP = notYet "SelfAdVVP" ;
|
oper SelfAdVVP : VP -> VP = notYet "SelfAdVVP" ;
|
||||||
oper SelfAdvVP : VP -> VP = notYet "SelfAdvVP" ;
|
oper SelfAdvVP : VP -> VP = notYet "SelfAdvVP" ;
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ oper
|
|||||||
lin V2 (egin ** { prc = \\t => lo ++ egin.prc ! t ;
|
lin V2 (egin ** { prc = \\t => lo ++ egin.prc ! t ;
|
||||||
val = Du Ukan }) ;
|
val = Du Ukan }) ;
|
||||||
|
|
||||||
|
mkV2 : V -> V2 = \x -> lin V2 x ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkVA : Str -> VA = \s -> lin VA (mkVerbDa s) ; -- Nor
|
mkVA : Str -> VA = \s -> lin VA (mkVerbDa s) ; -- Nor
|
||||||
|
|||||||
@@ -100,7 +100,9 @@ oper
|
|||||||
| VPerfFut
|
| VPerfFut
|
||||||
| VCondSimul
|
| VCondSimul
|
||||||
| VCondAnter -- subj na "I می گْ"
|
| VCondAnter -- subj na "I می گْ"
|
||||||
;
|
| VVVForm -- AR 21/3/2018 for mustCl after Nasrin
|
||||||
|
| VRoot1 -- AR 22/3/2018 for mustCl past after Nasrin
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
VType = VIntrans | VTrans | VTransPost ;
|
VType = VIntrans | VTrans | VTransPost ;
|
||||||
@@ -333,8 +335,6 @@ mkSlClause : NP -> VPH -> SlClause = \np,vp -> {
|
|||||||
<Pos,VPerfFut> => case vp.wish of
|
<Pos,VPerfFut> => case vp.wish of
|
||||||
{True => vp.s ! VPTense Pos (VPPres Anter) (AgPes n p) ;
|
{True => vp.s ! VPTense Pos (VPPres Anter) (AgPes n p) ;
|
||||||
False => vp.s ! VPTense Pos (VPFutr Anter) (AgPes n p) }; -- verb form need to be confirmed
|
False => vp.s ! VPTense Pos (VPFutr Anter) (AgPes n p) }; -- verb form need to be confirmed
|
||||||
<Pos,VCondSimul> => vp.s ! VPTense Pos (VPCond Simul) (AgPes n p) ;
|
|
||||||
<Pos,VCondAnter> => vp.s ! VPTense Pos (VPCond Anter) (AgPes n p); -- verb form to be confirmed
|
|
||||||
<Neg,VPerfPast> => vp.s ! VPTense Neg (VPPast Anter) (AgPes n p) ;
|
<Neg,VPerfPast> => vp.s ! VPTense Neg (VPPast Anter) (AgPes n p) ;
|
||||||
<Neg,VFut> => case vp.wish of
|
<Neg,VFut> => case vp.wish of
|
||||||
{True => vp.s ! VPTense Neg (VPPres Simul) (AgPes n p) ;
|
{True => vp.s ! VPTense Neg (VPPres Simul) (AgPes n p) ;
|
||||||
@@ -342,11 +342,17 @@ mkSlClause : NP -> VPH -> SlClause = \np,vp -> {
|
|||||||
<Neg,VPerfFut> => case vp.wish of
|
<Neg,VPerfFut> => case vp.wish of
|
||||||
{True => vp.s ! VPTense Neg (VPPres Anter) (AgPes n p) ;
|
{True => vp.s ! VPTense Neg (VPPres Anter) (AgPes n p) ;
|
||||||
False => vp.s ! VPTense Neg (VPFutr Anter) (AgPes n p) }; -- verb form need to be confirmed
|
False => vp.s ! VPTense Neg (VPFutr Anter) (AgPes n p) }; -- verb form need to be confirmed
|
||||||
|
|
||||||
|
<Pos,VCondSimul> => vp.s ! VPTense Pos (VPCond Simul) (AgPes n p) ;
|
||||||
|
<Pos,VCondAnter> => vp.s ! VPTense Pos (VPCond Anter) (AgPes n p); -- verb form to be confirmed
|
||||||
|
|
||||||
<Neg,VCondSimul> => vp.s ! VPTense Neg (VPCond Simul) (AgPes n p) ;
|
<Neg,VCondSimul> => vp.s ! VPTense Neg (VPCond Simul) (AgPes n p) ;
|
||||||
<Neg,VCondAnter> => vp.s ! VPTense Neg (VPCond Anter) (AgPes n p) -- verb form to be confirmed
|
<Neg,VCondAnter> => vp.s ! VPTense Neg (VPCond Anter) (AgPes n p) ; -- verb form to be confirmed
|
||||||
|
|
||||||
|
<_, VVVForm> => vp.s ! VVForm (AgPes n p) ; -- AR 21/3/2018
|
||||||
|
<_, VRoot1> => vp.s ! VPStem1 {- ++ Predef.Bind ++ "ه" -} -- AR 22/3/2018
|
||||||
};
|
};
|
||||||
|
---- VVForm (AgPes n p) => {inf = verb.s ! Vvform (AgPes n p)} ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -388,7 +394,9 @@ mkSClause : Str -> AgrPes -> VPH -> Clause = \subj,agr,vp -> {
|
|||||||
{True => vp.s ! VPTense Neg (VPPres Anter) (AgPes n p) ;
|
{True => vp.s ! VPTense Neg (VPPres Anter) (AgPes n p) ;
|
||||||
False => vp.s ! VPTense Neg (VPFutr Anter) (AgPes n p) }; -- verb form need to be confirmed
|
False => vp.s ! VPTense Neg (VPFutr Anter) (AgPes n p) }; -- verb form need to be confirmed
|
||||||
<Neg,VCondSimul> => vp.s ! VPTense Neg (VPCond Simul) (AgPes n p) ;
|
<Neg,VCondSimul> => vp.s ! VPTense Neg (VPCond Simul) (AgPes n p) ;
|
||||||
<Neg,VCondAnter> => vp.s ! VPTense Neg (VPCond Anter) (AgPes n p) -- verb form to be confirmed
|
<Neg,VCondAnter> => vp.s ! VPTense Neg (VPCond Anter) (AgPes n p) ; -- verb form to be confirmed
|
||||||
|
<_, VVVForm> => vp.s ! VVForm (AgPes n p) ; -- AR 21/3/2018
|
||||||
|
<_, VRoot1> => vp.s ! VPStem1 {- ++ Predef.Bind ++ "ه" -} -- AR 22/3/2018
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -418,7 +426,7 @@ mkSClause : Str -> AgrPes -> VPH -> Clause = \subj,agr,vp -> {
|
|||||||
VPTense pol (VPFutr Anter) (AgPes n p) => { inf = verb.inf ! AX pol (AuxFut FtAorist) p n } ; -- this is to be confirmed
|
VPTense pol (VPFutr Anter) (AgPes n p) => { inf = verb.inf ! AX pol (AuxFut FtAorist) p n } ; -- this is to be confirmed
|
||||||
VPTense pol (VPCond Simul) (AgPes n p) => { inf = verb.inf ! AX pol (AuxFut FtAorist) p n } ;
|
VPTense pol (VPCond Simul) (AgPes n p) => { inf = verb.inf ! AX pol (AuxFut FtAorist) p n } ;
|
||||||
VPTense pol (VPCond Anter) (AgPes n p) => { inf = verb.inf ! AX pol (AuxPast PstImperf) p n } ;
|
VPTense pol (VPCond Anter) (AgPes n p) => { inf = verb.inf ! AX pol (AuxPast PstImperf) p n } ;
|
||||||
VVForm (AgPes n p) => {inf = ""} ; -- to be checked
|
VVForm (AgPes n p) => {inf = ""} ; -- to be checked => {inf = verb.s ! Vvform (AgPes n p)} ;
|
||||||
VPStem1 => { inf = ""};
|
VPStem1 => { inf = ""};
|
||||||
VPStem2 => { inf = "بود"} ;
|
VPStem2 => { inf = "بود"} ;
|
||||||
VPImp _ _ => { inf = ""} -- need to be confirmed
|
VPImp _ _ => { inf = ""} -- need to be confirmed
|
||||||
|
|||||||
@@ -7,39 +7,41 @@ flags coding=utf8 ;
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
PositA a = { s = mkAtable a.pos; adv = a.advpos};
|
PositA a = { s = mkAtable a.pos; adv = a.advpos ; isPost = False};
|
||||||
|
|
||||||
UseComparA a = { s = mkAtable a.comp; adv=a.advcomp};
|
UseComparA a = { s = mkAtable a.comp; adv=a.advcomp ; isPost = False};
|
||||||
|
|
||||||
ComparA a np = { s = \\af => (mkAtable a.comp) ! af ++ "niż" ++ np.nom ; adv=a.advcomp };
|
ComparA a np = { s = \\af => (mkAtable a.comp) ! af ++ "niż" ++ np.nom ; adv=a.advcomp ; isPost = False};
|
||||||
|
|
||||||
AdjOrd o = {s=o.s; adv="["++o.s!AF MascPersSg Nom ++ [": the adverb form does not exist (fun AdjOrd)]"]};
|
AdjOrd o = {s=o.s; adv="["++o.s!AF MascPersSg Nom ++ [": the adverb form does not exist (fun AdjOrd)]"] ; isPost = False};
|
||||||
|
|
||||||
AdAP ada ap = { s = \\af => ada.s ++ ap.s ! af; adv = ada.s ++ ap.adv};
|
AdAP ada ap = { s = \\af => ada.s ++ ap.s ! af; adv = ada.s ++ ap.adv ; isPost = ap.isPost};
|
||||||
|
|
||||||
-- CAdvAP : CAdv -> AP -> NP -> AP ; -- as cool as John
|
-- CAdvAP : CAdv -> AP -> NP -> AP ; -- as cool as John
|
||||||
CAdvAP c a n = {
|
CAdvAP c a n = {
|
||||||
s = \\af=> c.s ++ a.s!af ++ c.p ++ n.nom;
|
s = \\af=> c.s ++ a.s!af ++ c.p ++ n.nom;
|
||||||
adv = c.s ++ a.adv ++ c.p ++ n.nom;
|
adv = c.s ++ a.adv ++ c.p ++ n.nom;
|
||||||
|
isPost = False
|
||||||
};
|
};
|
||||||
|
|
||||||
-- ComplA2 : A2 -> NP -> AP ; -- married to her
|
-- ComplA2 : A2 -> NP -> AP ; -- married to her
|
||||||
ComplA2 a n = {
|
ComplA2 a n = {
|
||||||
s = \\af=>(mkAtable a.pos)!af ++ a.c.s ++ n.dep!a.c.c;
|
s = \\af=>(mkAtable a.pos)!af ++ a.c.s ++ n.dep!a.c.c;
|
||||||
adv = a.advpos ++ a.c.s ++ n.dep!a.c.c
|
adv = a.advpos ++ a.c.s ++ n.dep!a.c.c ;
|
||||||
|
isPost = True
|
||||||
};
|
};
|
||||||
|
|
||||||
-- ReflA2 : A2 -> AP ; -- married to itself
|
-- ReflA2 : A2 -> AP ; -- married to itself
|
||||||
ReflA2 a = {
|
ReflA2 a = {
|
||||||
s = \\af=>(mkAtable a.pos)!af ++ a.c.s ++ siebie!(extract_case!a.c.c);
|
s = \\af=>(mkAtable a.pos)!af ++ a.c.s ++ siebie!(extract_case!a.c.c);
|
||||||
adv = a.advpos ++ a.c.s ++ siebie!(extract_case!a.c.c)
|
adv = a.advpos ++ a.c.s ++ siebie!(extract_case!a.c.c) ; isPost = True
|
||||||
};
|
};
|
||||||
|
|
||||||
-- UseA2 : A2 -> AP ; -- married
|
-- UseA2 : A2 -> AP ; -- married
|
||||||
UseA2 a = { s = mkAtable a.pos; adv=a.advpos};
|
UseA2 a = { s = mkAtable a.pos; adv=a.advpos ; isPost = False};
|
||||||
|
|
||||||
-- SentAP : AP -> SC -> AP ; -- good that she is here -- I have bad feelling about this function
|
-- SentAP : AP -> SC -> AP ; -- good that she is here -- I have bad feelling about this function
|
||||||
SentAP a s = {s=\\_=>a.adv ++ s.s; adv=a.adv ++ s.s };
|
SentAP a s = {s=\\_=>a.adv ++ s.s; adv=a.adv ++ s.s ; isPost = True};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ concrete ConjunctionPol of Conjunction =
|
|||||||
ConjAP conj list = {
|
ConjAP conj list = {
|
||||||
adv = conj.s1 ++ list.ap1.adv ++ conj.s2 ++ list.ap2.adv;
|
adv = conj.s1 ++ list.ap1.adv ++ conj.s2 ++ list.ap2.adv;
|
||||||
s = \\af=>conj.s1 ++ list.ap1.s!af ++ conj.s2 ++ list.ap2.s!af;
|
s = \\af=>conj.s1 ++ list.ap1.s!af ++ conj.s2 ++ list.ap2.s!af;
|
||||||
|
isPost = list.ap2.isPost ---
|
||||||
};
|
};
|
||||||
ConjRS = conjunctDistrTable GenNum;
|
ConjRS = conjunctDistrTable GenNum;
|
||||||
|
|
||||||
@@ -72,18 +73,18 @@ concrete ConjunctionPol of Conjunction =
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
BaseAP ap1 ap2 = { ap1=ap1; ap2=ap2 };
|
BaseAP ap1 ap2 = { ap1=ap1; ap2=ap2 ; isPost = ap2.isPost};
|
||||||
ConsAP ap apl = { ap2=apl.ap2; ap1={
|
ConsAP ap apl = { ap2=apl.ap2; ap1={
|
||||||
s = \\af=> ap.s!af ++ "," ++ apl.ap1.s!af;
|
s = \\af=> ap.s!af ++ "," ++ apl.ap1.s!af;
|
||||||
adv = ap.adv ++ "," ++ apl.ap1.adv
|
adv = ap.adv ++ "," ++ apl.ap1.adv ; isPost = apl.isPost
|
||||||
} };
|
} ; isPost = apl.isPost};
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
|
|
||||||
[S] = {s1,s2 : Str} ;
|
[S] = {s1,s2 : Str} ;
|
||||||
[Adv] = {s1,s2 : Str} ;
|
[Adv] = {s1,s2 : Str} ;
|
||||||
[NP] = {np1,np2 : NounPhrase} ;
|
[NP] = {np1,np2 : NounPhrase} ;
|
||||||
[AP] = {ap1,ap2 : AdjPhrase} ;
|
[AP] = {ap1,ap2 : AdjPhrase ; isPost : Bool} ;
|
||||||
[RS] = {s1,s2 : GenNum => Str} ;
|
[RS] = {s1,s2 : GenNum => Str} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,10 @@ concrete NounPol of Noun = CatPol ** open ResPol, Prelude, PronounMorphoPol, Mor
|
|||||||
};
|
};
|
||||||
|
|
||||||
AdjCN mily facet = {
|
AdjCN mily facet = {
|
||||||
s = \\n,c => (mily.s ! AF (cast_gennum!<facet.g,n>) c) ++ (facet.s ! n ! c);
|
s = \\n,c => case mily.isPost of {
|
||||||
|
True => (facet.s ! n ! c) ++ (mily.s ! AF (cast_gennum!<facet.g,n>) c) ;
|
||||||
|
_ => (mily.s ! AF (cast_gennum!<facet.g,n>) c) ++ (facet.s ! n ! c)
|
||||||
|
} ;
|
||||||
g = facet.g
|
g = facet.g
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -174,7 +174,7 @@
|
|||||||
|
|
||||||
param AForm = AF GenNum Case;
|
param AForm = AF GenNum Case;
|
||||||
|
|
||||||
oper AdjPhrase = { s : AForm => Str; adv:Str };
|
oper AdjPhrase = { s : AForm => Str; adv:Str ; isPost : Bool };
|
||||||
|
|
||||||
--4 Pronoun
|
--4 Pronoun
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user