forked from GitHub/gf-rgl
(Por)
- add AdjAsCN AdjAsNP - copied VPS functions from ExtraRomance - fixes to Lexicon
This commit is contained in:
@@ -70,7 +70,7 @@ abstract Sentence = Cat ** {
|
|||||||
|
|
||||||
-- This covers subjunctive clauses, but they can also be added to the end.
|
-- This covers subjunctive clauses, but they can also be added to the end.
|
||||||
|
|
||||||
SSubjS : S -> Subj -> S -> S ; -- I go home if she comes
|
SSubjS : S -> Subj -> S -> S ; -- I go home, if she comes
|
||||||
|
|
||||||
-- A sentence can be modified by a relative clause referring to its contents.
|
-- A sentence can be modified by a relative clause referring to its contents.
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ concrete ExtendPor of Extend =
|
|||||||
CatPor ** ExtendFunctor -
|
CatPor ** ExtendFunctor -
|
||||||
[
|
[
|
||||||
AdAdV,
|
AdAdV,
|
||||||
|
AdjAsCN,
|
||||||
|
AdjAsNP,
|
||||||
ApposNP,
|
ApposNP,
|
||||||
BaseVPS,
|
BaseVPS,
|
||||||
ByVP,
|
ByVP,
|
||||||
@@ -13,6 +15,7 @@ concrete ExtendPor of Extend =
|
|||||||
CompoundAP,
|
CompoundAP,
|
||||||
CompoundN,
|
CompoundN,
|
||||||
CompVP,
|
CompVP,
|
||||||
|
ConjVPS,
|
||||||
ConsVPS,
|
ConsVPS,
|
||||||
--EmptyRelSlash,
|
--EmptyRelSlash,
|
||||||
ExistsNP,
|
ExistsNP,
|
||||||
@@ -27,11 +30,13 @@ concrete ExtendPor of Extend =
|
|||||||
ICompAP,
|
ICompAP,
|
||||||
InOrderToVP,
|
InOrderToVP,
|
||||||
ListVPS,
|
ListVPS,
|
||||||
|
MkVPS,
|
||||||
PassAgentVPSlash,
|
PassAgentVPSlash,
|
||||||
PassVPSlash,
|
PassVPSlash,
|
||||||
PastPartAP,
|
PastPartAP,
|
||||||
PastPartAgentAP,
|
PastPartAgentAP,
|
||||||
PositAdVAdj,
|
PositAdVAdj,
|
||||||
|
PredVPS,
|
||||||
PresPartAP,
|
PresPartAP,
|
||||||
ProDrop,
|
ProDrop,
|
||||||
PurposeVP,
|
PurposeVP,
|
||||||
@@ -52,13 +57,13 @@ concrete ExtendPor of Extend =
|
|||||||
with
|
with
|
||||||
(Grammar = GrammarPor), (Syntax = SyntaxPor) **
|
(Grammar = GrammarPor), (Syntax = SyntaxPor) **
|
||||||
open
|
open
|
||||||
GrammarPor,
|
GrammarPor,
|
||||||
ResPor,
|
ResPor,
|
||||||
MorphoPor,
|
MorphoPor,
|
||||||
Coordination,
|
Coordination,
|
||||||
Prelude,
|
Prelude,
|
||||||
ParadigmsPor,
|
ParadigmsPor,
|
||||||
(S = StructuralPor) in {
|
(S = StructuralPor) in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
GenNP np =
|
GenNP np =
|
||||||
@@ -85,17 +90,28 @@ concrete ExtendPor of Extend =
|
|||||||
c = Nom
|
c = Nom
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
---- these come from ExtraRomance: how to avoid the repetition?
|
||||||
|
---- can't seem to be able to use two functors
|
||||||
lincat
|
lincat
|
||||||
VPS = {s : Agr => Mood => Str} ;
|
VPS = {s : Mood => Agr => Bool => Str} ;
|
||||||
[VPS] = {s1,s2 : Agr => Mood => Str} ;
|
[VPS] = {s1,s2 : Mood => Agr => Bool => Str} ;
|
||||||
-- VPI = {s : VType => Agr => Str } ;
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
BaseVPS = twoTable2 Agr Mood ;
|
BaseVPS x y = twoTable3 Mood Agr Bool x y ;
|
||||||
ConsVPS = consrTable2 Agr Mood comma ;
|
ConsVPS = consrTable3 Mood Agr Bool comma ;
|
||||||
|
|
||||||
-- MkVPS t p vp = mkVPS (lin Temp t) (lin Pol p) (lin VP vp) ;
|
PredVPS np vpi = {
|
||||||
--TODO: write mkVPS oper
|
s = \\m => (np.s ! Nom).comp ++ vpi.s ! m ! np.a ! np.isNeg
|
||||||
|
} ;
|
||||||
|
|
||||||
|
MkVPS tm p vp = {
|
||||||
|
s = \\m,agr,isNeg =>
|
||||||
|
tm.s ++ p.s ++
|
||||||
|
(mkClausePol (orB isNeg vp.isNeg) [] False False agr vp).s
|
||||||
|
! DDir ! tm.t ! tm.a ! p.p ! m
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ConjVPS = conjunctDistrTable3 Mood Agr Bool ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
ProDrop p = {
|
ProDrop p = {
|
||||||
@@ -148,13 +164,23 @@ concrete ExtendPor of Extend =
|
|||||||
|
|
||||||
ComplBareVS = ComplVS ;
|
ComplBareVS = ComplVS ;
|
||||||
|
|
||||||
|
AdjAsCN ap = {
|
||||||
|
s =\\n => ap.s ! AF Masc n ;
|
||||||
|
g = Masc
|
||||||
|
} ;
|
||||||
|
|
||||||
|
AdjAsNP ap = heavyNP {
|
||||||
|
s = \\_c => ap.s ! AF Masc Sg ;
|
||||||
|
a = Ag Masc Sg P3
|
||||||
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
pastPartAP : VPSlash -> Str -> AP ;
|
pastPartAP : VPSlash -> Str -> AP ;
|
||||||
pastPartAP vps agent = lin AP {
|
pastPartAP vps agent = lin AP {
|
||||||
s = \\af => vps.comp ! (aform2aagr af ** {p = P3}) ++ vps.s.s ! VPart (aform2gender af) (aform2number af) ++ agent ;
|
s = \\af => vps.comp ! (aform2aagr af ** {p = P3}) ++ vps.s.s ! VPart (aform2gender af) (aform2number af) ++ agent ;
|
||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
passVPSlash : VPSlash -> Str -> VP ;
|
passVPSlash : VPSlash -> Str -> VP ;
|
||||||
passVPSlash vps agent = let
|
passVPSlash vps agent = let
|
||||||
auxvp = predV auxPassive
|
auxvp = predV auxPassive
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ flags
|
|||||||
lin
|
lin
|
||||||
easy_A2V = mkA2V (mkA "fácil") dative genitive ;
|
easy_A2V = mkA2V (mkA "fácil") dative genitive ;
|
||||||
married_A2 = mkA2 (mkA "casado") dative ;
|
married_A2 = mkA2 (mkA "casado") dative ;
|
||||||
probable_AS = mkAS (mkA "provável" "provavelmente") ;
|
probable_AS = mkAS (prefA (mkA "provável" "provavelmente")) ;
|
||||||
fun_AV = mkAV (mkA "divertido") genitive ;
|
fun_AV = mkAV (mkA "divertido") genitive ;
|
||||||
-- A
|
-- A
|
||||||
bad_A = prefA (mkA (mkA "mau") (mkA "pior")) ;
|
bad_A = prefA (mkA (mkA "mau") (mkA "pior")) ;
|
||||||
@@ -38,7 +38,7 @@ lin
|
|||||||
narrow_A = mkA "estreito" ;
|
narrow_A = mkA "estreito" ;
|
||||||
near_A = mkA "perto" ;
|
near_A = mkA "perto" ;
|
||||||
new_A = prefA (mkA "novo") ;
|
new_A = prefA (mkA "novo") ;
|
||||||
old_A = prefA (mkA "velho") ;
|
old_A = prefA (mkA "velho") ;
|
||||||
ready_A = mkA "pronto" ;
|
ready_A = mkA "pronto" ;
|
||||||
red_A = mkA "vermelho" ;
|
red_A = mkA "vermelho" ;
|
||||||
rotten_A = mkA "podre" ;
|
rotten_A = mkA "podre" ;
|
||||||
|
|||||||
Reference in New Issue
Block a user