forked from GitHub/gf-rgl
fixes in Spa: binding infinitive+clitic; mkQuant and mkDet in MakeStructuralSpa
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
--# -path=.:../romance:../abstract:../common:prelude
|
--# -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 ;
|
flags optimize=noexpand ;
|
||||||
coding=utf8 ;
|
coding=utf8 ;
|
||||||
@@ -10,7 +10,7 @@ instance DiffSpa of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
partAgr : VType -> Bool = \vtyp -> False ;
|
partAgr : VType -> Bool = \vtyp -> False ;
|
||||||
vpAgrSubj : Verb -> VPAgrType = \v -> <verbDefaultPart v, False> ;
|
vpAgrSubj : Verb -> VPAgrType = \v -> <verbDefaultPart v, False> ;
|
||||||
vpAgrClits : Verb -> AAgr -> VPAgrType = \v,a -> <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
|
param
|
||||||
|
|||||||
@@ -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
|
||||||
|
} ;
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user