1
0
forked from GitHub/gf-core
Files
gf-core/examples/fracas/src/AdditionsSwe.gf
2012-01-27 22:56:14 +00:00

84 lines
2.0 KiB
Plaintext

--# -path=.:alltenses
concrete AdditionsSwe of Additions = CatSwe **
open CommonScand, Coordination, ResSwe, ParamX,
Prelude,
(E=ExtraSwe),
(M=MorphoSwe),
(P=ParadigmsSwe),
(I=IrregSwe),
(G=GrammarSwe),
(X=ParamX),
(C=Coordination)
in {
-- First we start with the contents of the RGL's ExtraSwe.gf, as it looked like in October 2011.
lin
GenNP = E.GenNP ;
ComplBareVS = E.ComplBareVS ;
StrandRelSlash = E.StrandRelSlash ;
EmptyRelSlash = E.EmptyRelSlash ;
lincat
VPI = E.VPI ;
[VPI] = E.ListVPI ;
lin
BaseVPI = E.BaseVPI ;
ConsVPI = E.ConsVPI ;
MkVPI = E.MkVPI ;
ConjVPI = E.ConjVPI ;
ComplVPIVV = E.ComplVPIVV ;
lincat
VPS = E.VPS ;
[VPS] = E.ListVPS ;
lin
BaseVPS = E.BaseVPS ;
ConsVPS = E.ConsVPS ;
PredVPS = E.PredVPS ;
MkVPS = E.MkVPS ;
ConjVPS = E.ConjVPS ;
lin
PassVPSlash vps = variants{} ; -- M.insertObj (\\a => "[??]") (UseV M.verbBecome) ;
PartVP vp = variants{} ; -- {s = \\ap => "[??]"; isPre = False} ;
EmbedPresPart vp = variants{} ;
-- And then we give some FraCaS-specific additions to the original ExtraSwe.gf.
lincat
[QS] = {s1,s2 : X.QForm => Str} ;
[Det] = {s1,s2,sp1,sp2 : Bool => M.NGender => Str ; n : M.Number ; det : M.DetSpecies} ;
lin
RelNPa np rs = {
s = \\c => np.s ! c ++ rs.s ! np.a ! M.RNom ;
a = np.a ;
isMod = np.isMod
} ;
UseComparA_prefix a = {s = (G.UseComparA a).s; isPre = True};
PassV2s v2 = predV (P.depV (lin V v2)) ;
SoDoI subj = M.mkClause "det" (M.agrP3 M.neutrum M.Sg)
(M.insertObj (\\_ => subj.s ! M.nominative ++ "också") (G.UseV I.göra_V)) ;
-- error in Anter: "det har gjort han också"
-- error in PNeg: "det gör inte han också" (better: "inte heller")
-- probably error in Inv/Sub word order too
ExtAdvQS a s = {s = \\q => a.s ++ "," ++ s.s ! q} ;
ConjQS conj ss = C.conjunctDistrTable X.QForm conj ss ;
BaseQS x y = C.twoTable X.QForm x y ;
ConsQS x xs = C.consrTable X.QForm C.comma x xs ;
ConjDet conj ss = variants{} ;
BaseDet x y = variants{} ;
ConsDet x xs = variants{} ;
}