From 177bd14fefac0112124a6a67621aa225a3d95266 Mon Sep 17 00:00:00 2001 From: krasimir Date: Thu, 21 Feb 2008 17:22:39 +0000 Subject: [PATCH] add Adverbs --- lib/resource/bulgarian/AdverbBul.gf | 19 +++++++++++++++++++ lib/resource/bulgarian/GrammarBul.gf | 1 + lib/resource/bulgarian/StructuralBul.gf | 4 ++-- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 lib/resource/bulgarian/AdverbBul.gf diff --git a/lib/resource/bulgarian/AdverbBul.gf b/lib/resource/bulgarian/AdverbBul.gf new file mode 100644 index 000000000..c03836223 --- /dev/null +++ b/lib/resource/bulgarian/AdverbBul.gf @@ -0,0 +1,19 @@ +concrete AdverbBul of Adverb = CatBul ** open ResBul, Prelude in { + lin + PositAdvAdj a = {s = a.s ! ASg Neut Indef} ; + ComparAdvAdj cadv a np = { + s = cadv.s ++ "по" ++ "-" ++ a.s ! ASg Neut Indef ++ "от" ++ np.s ! Acc + } ; + ComparAdvAdjS cadv a s = { + s = cadv.s ++ "по" ++ "-" ++ a.s ! ASg Neut Indef ++ "от" ++ s.s + } ; + + PrepNP prep np = {s = prep.s ++ np.s ! Acc} ; + + AdAdv = cc2 ; + + SubjS = cc2 ; + AdvSC s = s ; --- this rule give stack overflow in ordinary parsing + + AdnCAdv cadv = {s = cadv.s ++ "от"} ; +} diff --git a/lib/resource/bulgarian/GrammarBul.gf b/lib/resource/bulgarian/GrammarBul.gf index 4ad04c0f1..784645378 100644 --- a/lib/resource/bulgarian/GrammarBul.gf +++ b/lib/resource/bulgarian/GrammarBul.gf @@ -4,6 +4,7 @@ concrete GrammarBul of Grammar = NounBul, VerbBul, AdjectiveBul, + AdverbBul, NumeralBul, SentenceBul, QuestionBul, diff --git a/lib/resource/bulgarian/StructuralBul.gf b/lib/resource/bulgarian/StructuralBul.gf index fcfd3d19f..512ecfbb7 100644 --- a/lib/resource/bulgarian/StructuralBul.gf +++ b/lib/resource/bulgarian/StructuralBul.gf @@ -63,9 +63,9 @@ concrete StructuralBul of Structural = CatBul ** "във" / strs {"в" ; "ф" ; "В" ; "Ф"} }) ; it_Pron = mkNP "то" "него" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Neut) P3 ; - less_CAdv = ss ["по-малко"] ; + less_CAdv = ss "не" ; many_Det = mkDeterminerPl "много" ; - more_CAdv = ss "още" ; + more_CAdv = ss [] ; most_Predet = {s = \\_ => "повечето"} ; much_Det = mkDeterminerSg "много" "много" "много"; {-