Files
gf-core/lib/resource-0.6/german/StructuralGer.gf

134 lines
4.5 KiB
Plaintext

--1 The Top-Level German Resource Grammar
--
-- Aarne Ranta 2002 -- 2003
--
-- This is the German concrete syntax of the multilingual resource
-- grammar. Most of the work is done in the file $syntax.Deu.gf$.
-- However, for the purpose of documentation, we make here explicit the
-- linearization types of each category, so that their structures and
-- dependencies can be seen.
-- Another substantial part are the linearization rules of some
-- structural words.
--
-- The users of the resource grammar should not look at this file for the
-- linearization rules, which are in fact hidden in the document version.
-- They should use $resource.Abs.gf$ to access the syntactic rules.
-- This file can be consulted in those, hopefully rare, occasions in which
-- one has to know how the syntactic categories are
-- implemented. The parameter types are defined in $Types.gf$.
concrete StructuralGer of Structural = CombinationsGer ** open Prelude, SyntaxGer in {
lin
INP = pronNounPhrase pronIch ;
ThouNP = pronNounPhrase pronDu ;
HeNP = pronNounPhrase pronEr ;
SheNP = pronNounPhrase pronSie ;
WeNumNP n = pronNounPhrase (pronWithNum pronWir n) ;
YeNumNP n = pronNounPhrase (pronWithNum pronIhr n) ;
TheyNP = pronNounPhrase pronSiePl ;
YouNP = pronNounPhrase pronSSie ;
ItNP = pronNounPhrase pronEs ;
ThisNP = nameNounPhrase {s = dieserDet.s ! Neut} ; ---
ThatNP = nameNounPhrase {s = jenerDet.s ! Neut} ; ---
TheseNumNP nu = let diese = caselist "diese" "diese" "diesen" "diesen" in
normalNounPhrase (\\c => diese ! c ++ nu.s) plural ;
ThoseNumNP nu = let jene = caselist "jene" "jene" "jenen" "jenen" in
normalNounPhrase (\\c => jene ! c ++ nu.s) plural ;
AnyDet = detLikeAdj "irgendwelch" ;
AnyNumDet nu = mkDeterminerNumReg nu "irgendwelche" Weak ;
EveryDet = jederDet ;
AllMassDet = allesDet ;
AllNumDet = alleDet ;
WhichDet = welcherDet ;
WhichNumDet = welcheDet ;
MostDet = meistDet ;
MostsDet = meisteDet ;
ManyDet = mkDeterminerPl (caselist "viele" "viele" "vielen" "vieler") Strong ;
MuchDet = detLikeAdj "viel" ;
NoDet = keinDet ;
NoNumDet nu = mkDeterminerNumReg nu "keine" Strong ;
SomeDet = einDet ; ---
SomeNumDet nu = mkDeterminerNumReg nu "einige" Strong ;
ThatDet = detLikeAdj "jen" ;
ThisDet = detLikeAdj "dies" ;
TheseNumDet nu = mkDeterminerNumReg nu "diese" Strong ;
ThoseNumDet nu = mkDeterminerNumReg nu "jene" Strong ;
HowIAdv = ss "wie" ;
WhenIAdv = ss "wann" ;
WhereIAdv = ss "war" ;
WhyIAdv = ss "warum" ;
AndConj = ss "und" ** {n = Pl} ;
OrConj = ss "oder" ** {n = Sg} ;
BothAnd = sd2 "sowohl" ["als auch"] ** {n = Pl} ;
EitherOr = sd2 "entweder" "oder" ** {n = Sg} ;
NeitherNor = sd2 "weder" "noch" ** {n = Sg} ;
IfSubj = ss "wenn" ;
WhenSubj = ss "wenn" ;
PhrYes = ss ["Ja ."] ;
PhrNo = ss ["Nein ."] ;
VeryAdv = ss "sehr" ;
TooAdv = ss "zu" ;
OtherwiseAdv = ss "sonst" ;
ThereforeAdv = ss "deshalb" ;
EverybodyNP = nameNounPhrase
{s = caselist "jeder" "jeden" "jedem" "jedes"} ;
SomebodyNP = nameNounPhrase
{s = caselist "jemand" "jemanden" "jemandem" "jemands"} ;
NobodyNP = nameNounPhrase
{s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;
EverythingNP = nameNounPhrase
{s = caselist "alles" "alles" "allem" "alles"} ;
SomethingNP = nameNounPhrase {s = \\_ => "etwas"} ;
NothingNP = nameNounPhrase {s = \\_ => "nichts"} ;
CanVV =
mkVerbSimple (verbumKönnen) ** {isAux = True} ;
CanKnowVV =
mkVerbSimple (verbumKönnen) ** {isAux = True} ;
MustVV =
mkVerbSimple (verbumMüssen) ** {isAux = True} ;
WantVV =
mkVerbSimple (verbumWollen) ** {isAux = True} ;
EverywhereNP = ss "überall" ;
SomewhereNP = ss "irgendwo" ;
NowhereNP = ss "nirgends" ;
AlthoughSubj = ss "obwohl" ;
AlmostAdv = ss "fast" ;
QuiteAdv = ss "ziemlich" ;
InPrep = mkPrep "in" Dat ;
OnPrep = mkPrep "auf" Dat ;
ToPrep = mkPrep "nach" Dat ;
ThroughPrep = mkPrep "durch" Acc ;
AbovePrep = mkPrep "über" Dat ;
UnderPrep = mkPrep "unter" Dat ;
InFrontPrep = mkPrep "vor" Dat ;
BehindPrep = mkPrep "hinter" Dat ;
BetweenPrep = mkPrep "zwischen" Dat ;
FromPrep = mkPrep "aus" Dat ;
BeforePrep = mkPrep "vor" Dat ;
DuringPrep = mkPrep "während" Gen ;
AfterPrep = mkPrep "nach" Dat ;
WithPrep = mkPrep "mit" Dat ;
WithoutPrep = mkPrep "ohne" Acc ;
ByMeansPrep = mkPrep "mit" Dat ;
PartPrep = mkPrep "von" Dat ;
PossessPrep = mkPrep "von" Dat ;
AgentPrep = mkPrep "durch" Acc ;
} ;