1
0
forked from GitHub/gf-rgl

fixes in Spa: binding infinitive+clitic; mkQuant and mkDet in MakeStructuralSpa

This commit is contained in:
Aarne Ranta
2017-12-11 19:58:30 +01:00
parent f0fbd41c91
commit ced4be3a07
2 changed files with 54 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
--# -path=.:../romance:../abstract:../common:prelude
instance DiffSpa of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRomance, PhonoSpa, BeschSpa, Prelude in {
instance DiffSpa of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits,contractInf] = open CommonRomance, PhonoSpa, BeschSpa, Prelude in {
flags optimize=noexpand ;
coding=utf8 ;
@@ -10,7 +10,7 @@ instance DiffSpa of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
partAgr : VType -> Bool = \vtyp -> False ;
vpAgrSubj : Verb -> VPAgrType = \v -> <verbDefaultPart v, False> ;
vpAgrClits : Verb -> AAgr -> VPAgrType = \v,a -> <verbDefaultPart v, False> ;
contractInf : Bool -> Bool -> Bool = orB ; --- the effect of this is that the clitic is bound to the infinitive: matarte
--------------------------------
param

View File

@@ -20,4 +20,56 @@ oper
} ;
mkQuant = overload {
-- Does not inflect for number or gender
mkQuant : Str -> Quant = \s ->
let
questo : Number => Gender => Case => Str = \\n,g,c => prepCase c ++ s ;
in lin Quant {
s = \\b => questo ;
sp = questo ;
s2 = [] ;
isNeg = False
} ;
-- Inflects for number and gender
mkQuant : Str -> Str -> Str -> Str -> Quant = \tutto,tutta,tutti,tutte ->
let
questo : Number => Gender => Case => Str = table {
Sg => table {
Masc => \\c => prepCase c ++ tutto ;
Fem => \\c => prepCase c ++ tutta
} ;
Pl => table {
Masc => \\c => prepCase c ++ tutti ;
Fem => \\c => prepCase c ++ tutte
}
}
in lin Quant {
s = \\b => questo ;
sp = questo ;
s2 = [] ;
isNeg = False
} ;
} ;
mkDet = overload {
-- Does not inflect for number
mkDet : Str -> Number -> Det = \piu,n -> lin Det {
s,sp = \\_,_ => piu ;
n = n ;
s2 = [] ;
isNeg = False
} ;
-- Inflects for number
mkDet : Str -> Str -> Number -> Det = \alcuni,alcune,n -> lin Det {
s,sp = table {
Masc => \\_ => alcuni ;
Fem => \\_ => alcune
} ;
n = n ;
s2 = [] ;
isNeg = False
} ;
} ;
}