mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-12 00:20:11 -06:00
- NP: added field isLight in order to push negation behind light nps;
this had been done in gf-3.9 using field isPron, but isPron is now
used to put accusative pronoun before dative pronoun. Removed field
adv: adverbial extensions cannot be extracted (todo: also for CN).
Reduced isLight*isPron to w:Weight with 3 values: WPron, WLight, WHeavy.
- added param Control and field ctrl:Control to classify V2V-verbs into
subject- and object-contol verbs, use ctrl to make reflexives agree
with subject resp. object in VPSlash, and refine ComplSlash.
- Verb: new versions of ComplVV, SlashV2V and SlashVV to give better
(nested) infinitives (extracting infzu and correcting object order).
a) nested SlashVV doesn't work properly;
b) SlashV2VNP may have to be commented out to prevent a stack overflow
when compiling.
Intended change of SlashV2VNP in tests/german/TestLangGer could not
be tested due to size problems with the compiler.
- VP: changed field a1 : Polarity => Str to a1:Str to collect the adverbs
coming before negation, using (negation : Polarity => Str) in mkClause.
Use objCtrl:Bool instead of missingAdv to let reflexives agree with object.
- ResGer: insertObjNP reorganized, infzuVP added
- DictVerbsGer: some corrections (helft -> hilft, *sprecht -> *spricht)
- Some potential passive rules in tests/german/TestLangGer|Eng
- ExtraGer needs to be cleaned up with repect to the modified mkClause.
56 lines
1.2 KiB
Plaintext
56 lines
1.2 KiB
Plaintext
--# -path=.:../abstract:../common:../prelude
|
|
|
|
concrete SymbolGer of Symbol = CatGer ** open Prelude, ResGer in {
|
|
|
|
lin
|
|
SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
|
IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
|
FloatPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
|
NumPN i = {s = i.s ! Neutr ; g = Neutr} ; --- c
|
|
|
|
CNIntNP cn i = {
|
|
s = \\c => cn.s ! Weak ! Sg ! Nom ++ i.s ;
|
|
a = agrP3 Sg ;
|
|
-- isPron = False ;
|
|
-- isLight = True ;
|
|
w = WLight ;
|
|
ext,rc = [] -- added
|
|
} ;
|
|
CNSymbNP det cn xs = let g = cn.g in {
|
|
s = \\c => det.s ! g ! c ++
|
|
(let k = (prepC c).c in cn.s ! adjfCase det.a k ! det.n ! k) ++ xs.s ;
|
|
a = agrP3 det.n ;
|
|
-- isPron = False ;
|
|
-- isLight = True ;
|
|
w = WLight ;
|
|
ext,rc = [] -- added
|
|
} ;
|
|
CNNumNP cn i = {
|
|
s = \\c => artDefContr (GSg cn.g) c ++ cn.s ! Weak ! Sg ! Nom ++ i.s ! Neutr ! (prepC c).c ;
|
|
a = agrP3 Sg ;
|
|
-- isPron = False ;
|
|
-- isLight = True ;
|
|
w = WLight ;
|
|
ext,rc = [] -- added
|
|
} ;
|
|
|
|
SymbS sy = {s = \\_ => sy.s} ;
|
|
|
|
SymbNum n = {s = \\_,_ => n.s ; n = Pl ; isNum = True} ;
|
|
SymbOrd n = {s = \\_ => glue n.s "."} ;
|
|
|
|
|
|
lincat
|
|
|
|
Symb, [Symb] = SS ;
|
|
|
|
lin
|
|
|
|
MkSymb s = s ;
|
|
|
|
BaseSymb = infixSS "und" ;
|
|
ConsSymb = infixSS "," ;
|
|
|
|
}
|
|
|