mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-12 22:39:31 -06:00
134 lines
4.5 KiB
Plaintext
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 ;
|
|
|
|
} ;
|