From 15cbf9970c65532b21e6b64854cfe81f52d38934 Mon Sep 17 00:00:00 2001 From: Aarne Ranta Date: Mon, 21 Aug 2017 14:51:10 +0300 Subject: [PATCH] added ConstructionUrd and DocumentationUrd copied from Hin --- src/api/TryUrd.gf | 2 +- src/translator/TranslateUrd.gf | 4 +- src/urdu/AllUrd.gf | 2 +- src/urdu/ConstructionUrd.gf | 160 +++++++++++++++++++++++++++++++++ src/urdu/DocumentationUrd.gf | 132 +++++++++++++++++++++++++++ src/urdu/LangUrd.gf | 3 + 6 files changed, 299 insertions(+), 4 deletions(-) create mode 100644 src/urdu/ConstructionUrd.gf create mode 100644 src/urdu/DocumentationUrd.gf diff --git a/src/api/TryUrd.gf b/src/api/TryUrd.gf index ed393c508..16bfb8b68 100644 --- a/src/api/TryUrd.gf +++ b/src/api/TryUrd.gf @@ -1,6 +1,6 @@ --# -path=.:../urdu:../hindustani:../common:../abstract:../prelude -resource TryUrd = SyntaxUrd - [mkAdN] , LexiconUrd, ParadigmsUrd - [mkAdv,mkDet,mkIP,mkAdN] ** +resource TryUrd = SyntaxUrd - [mkAdN] , LexiconUrd, ParadigmsUrd - [mkAdv,mkDet,mkIP,mkAdN,mkQuant] ** open (P = ParadigmsUrd) in { oper diff --git a/src/translator/TranslateUrd.gf b/src/translator/TranslateUrd.gf index eb4654dc1..69377fb16 100644 --- a/src/translator/TranslateUrd.gf +++ b/src/translator/TranslateUrd.gf @@ -20,8 +20,8 @@ concrete TranslateUrd of Translate = QuestionUrd, RelativeUrd, IdiomUrd, ----- ConstructionUrd, ----- DocumentationUrd, + ConstructionUrd, + DocumentationUrd, ChunkUrd, ExtensionsUrd [ ListVPS,BaseVPS,ConsVPS,ConjVPS,ListVPI,BaseVPI,ConsVPI,ConjVPI, diff --git a/src/urdu/AllUrd.gf b/src/urdu/AllUrd.gf index ce9dd0012..4e5aa9d55 100644 --- a/src/urdu/AllUrd.gf +++ b/src/urdu/AllUrd.gf @@ -1,4 +1,4 @@ ---# -path=.:../abstract:../common:../prelude:../hindustani +--# -path=.:../abstract:../common:../prelude:../hindustani:../api concrete AllUrd of AllUrdAbs = LangUrd, diff --git a/src/urdu/ConstructionUrd.gf b/src/urdu/ConstructionUrd.gf new file mode 100644 index 000000000..66d09eecd --- /dev/null +++ b/src/urdu/ConstructionUrd.gf @@ -0,0 +1,160 @@ +--# -path=.:../abstract + +concrete ConstructionUrd of Construction = CatUrd ** + open SyntaxUrd, SymbolicUrd, ParadigmsUrd, (L = LexiconUrd), (E = ExtraUrd), (G = GrammarUrd), (R = ResUrd), (S = StructuralUrd), Prelude in { +flags coding=utf8 ; + + +lin +{- + hungry_VP = mkVP (mkA "भूखा") ; + thirsty_VP = mkVP (mkA "प्यासा") ; +-- tired_VP = mkVP (mkCompoundA "थका" "हुआ") ; +-- scared_VP = mkVP (mkCompoundA "डरा" "हुआ") ; + ill_VP = mkVP (mkA "बीमार") ; + ready_VP = mkVP (mkA "तैयार") ; +-} +---- has_age_VP card = mkVP (mkNP (mkCN (mmodN L.year_N))) ; + + have_name_Cl x y = mkCl (mkNP (E.GenNP x) L.name_N) (lin NP y) ; + married_Cl x y = mkCl (lin NP x) L.married_A2 (lin NP y) ; + + what_name_QCl x = mkQCl (mkIComp whatSg_IP) (mkNP (E.GenNP x) L.name_N) ; +---- how_old_QCl x = mkQCl (lin IAdv {s = "कितनी"}) (mkNP (E.GenNP x) (mkN "उम्र" "उम्र" "उम्र" "उम्र" "उम्र" "उम्र" feminine)) ; + how_far_QCl x = mkQCl (E.IAdvAdv (ParadigmsUrd.mkAdv "दूर")) (lin NP x) ; + +---- oper +---- mmodN : N -> N = \noun -> lin N {s = \\n,c =>noun.s!n!c++"का" ; g =noun.g} ; + +-- some more things +---- weather_adjCl ap = mkCl (mkVP (lin AP ap)) ; + +---- is_right_VP = mkVP (ParadigmsUrd.mkA "right") ; +---- is_wrong_VP = mkVP (ParadigmsUrd.mkA "wrong") ; + +---- n_units_AP card cn a = mkAP (lin AdA (mkUtt (mkNP (lin CN cn)))) (lin A a) ; + + +---- bottle_of_CN np = mkCN (lin N2 (mkN2 "bottle")) (lin NP np) ; +---- cup_of_CN np = mkCN (lin N2 (mkN2 "cup")) (lin NP np) ; +---- glass_of_CN np = mkCN (lin N2 (mkN2 "glass")) (lin NP np) ; + +{- +-- spatial deixis and motion verbs + + where_go_QCl np = mkQCl where_IAdv (mkCl np (mkVP L.go_V)) ; + where_come_from_QCl np = mkQCl from_where_IAdv (mkCl np (mkVP L.go_V)) ; + + go_here_VP = mkVP (mkVP L.go_V) S.here_Adv ; + come_here_VP = mkVP (mkVP L.come_V) S.here_Adv ; + come_from_here_VP = mkVP (mkVP L.come_V) (mkAdv "from here") ; + + go_there_VP = mkVP (mkVP L.go_V) S.there_Adv ; + come_there_VP = mkVP (mkVP L.come_V) S.there_Adv ; + come_from_there_VP = mkVP (mkVP L.come_V) (mkAdv "from there") ; + +--TODO "where did X come from" instead of "from where did X come" +oper from_where_IAdv : IAdv = lin IAdv (ss "from where") ; + +-} + + +lincat + Weekday = N ; + Monthday = NP ; + Month = N ; + Year = NP ; + +lin +{- ---- + weekdayPunctualAdv w = SyntaxUrd.mkAdv on_Prep (mkNP w) ; -- on Sunday + weekdayHabitualAdv w = SyntaxUrd.mkAdv on_Prep (mkNP aPl_Det w) ; -- on Sundays + weekdayNextAdv w = SyntaxUrd.mkAdv (mkPrep "next") (mkNP w) ; -- next Sunday + weekdayLastAdv w = SyntaxUrd.mkAdv (mkPrep "last") (mkNP w) ; -- last Sunday + + monthAdv m = SyntaxUrd.mkAdv in_Prep (mkNP m) ; + yearAdv y = SyntaxUrd.mkAdv in_Prep y ; + dayMonthAdv d m = ParadigmsUrd.mkAdv ("on" ++ d.s ! R.NPAcc ++ m.s ! R.Sg ! R.Nom) ; -- on 17 May + monthYearAdv m y = SyntaxUrd.mkAdv in_Prep (mkNP (mkCN m y)) ; -- in May 2012 + dayMonthYearAdv d m y = ParadigmsUrd.mkAdv ("on" ++ d.s ! R.NPAcc ++ m.s ! R.Sg ! R.Nom ++ y.s ! R.NPAcc) ; -- on 17 May 2013 +-} + intYear = symb ; + intMonthday = symb ; + +lincat Language = PN ; + +lin InLanguage l = SyntaxUrd.mkAdv in_Prep (mkNP l) ; ---- + +lin + weekdayN w = w ; + monthN m = m ; + +---- weekdayPN w = mkPN w ; +---- monthPN m = mkPN m ; + + languagePN l = l ; + +oper mkLanguage : Str -> PN = \s -> mkPN s ; + +---------------------------------------------- +---- lexicon of special names + +lin monday_Weekday = mkN "सोमवार" ; +lin tuesday_Weekday = mkN "मंगलवार" ; +lin wednesday_Weekday = mkN "बुधवार" ; +lin thursday_Weekday = mkN "गुरुवार" ; +lin friday_Weekday = mkN "शुक्रवार" ; +lin saturday_Weekday = mkN "शनिवार" ; +lin sunday_Weekday = mkN "रविवार" ; + +lin january_Month = mkN "जनवरी" ; +lin february_Month = mkN "फ़रवरी" ; +lin march_Month = mkN "मार्च" ; +lin april_Month = mkN "अप्रैल" ; +lin may_Month = mkN "मई" ; +lin june_Month = mkN "जून" ; +lin july_Month = mkN "जुलाई" ; +lin august_Month = mkN "अगस्त" ; +lin september_Month = mkN "सितम्बर" ; +lin october_Month = mkN "अक्टूबर" ; +lin november_Month = mkN "नवम्बर" ; +lin december_Month = mkN "दिसम्बर" ; + +lin afrikaans_Language = mkLanguage "Afrikaans" ; +lin amharic_Language = mkLanguage "Amharic" ; +lin arabic_Language = mkLanguage "Arabic" ; +lin bulgarian_Language = mkLanguage "बल्गेरियाई" ; +lin catalan_Language = mkLanguage "Catalan" ; +lin chinese_Language = mkLanguage "चीनी" ; +lin danish_Language = mkLanguage "Danish" ; +lin dutch_Language = mkLanguage "Dutch" ; +lin english_Language = mkLanguage "अंग्रेज़ी" ; +lin estonian_Language = mkLanguage "Estonian" ; +lin finnish_Language = mkLanguage "Finnish" ; +lin french_Language = mkLanguage "फ्रेंच" ; +lin german_Language = mkLanguage "जर्मन" ; +lin greek_Language = mkLanguage "Greek" ; +lin hebrew_Language = mkLanguage "Hebrew" ; +lin hindi_Language = mkLanguage "हिंदी" ; +lin japanese_Language = mkLanguage "Japanese" ; +lin italian_Language = mkLanguage "Italian" ; +lin latin_Language = mkLanguage "Latin" ; +lin latvian_Language = mkLanguage "Latvian" ; +lin maltese_Language = mkLanguage "Maltese" ; +lin nepali_Language = mkLanguage "Nepali" ; +lin norwegian_Language = mkLanguage "Norwegian" ; +lin persian_Language = mkLanguage "Persian" ; +lin polish_Language = mkLanguage "Polish" ; +lin punjabi_Language = mkLanguage "Punjabi" ; +lin romanian_Language = mkLanguage "Romanian" ; +lin russian_Language = mkLanguage "Russian" ; +lin sindhi_Language = mkLanguage "Sindhi" ; +lin spanish_Language = mkLanguage "Spanish" ; +lin swahili_Language = mkLanguage "Swahili" ; +lin swedish_Language = mkLanguage "Swedish" ; +lin thai_Language = mkLanguage "Thai" ; +lin turkish_Language = mkLanguage "Turkish" ; +lin urdu_Language = mkLanguage "Urdu" ; + + +} diff --git a/src/urdu/DocumentationUrd.gf b/src/urdu/DocumentationUrd.gf new file mode 100644 index 000000000..cbc8b89f0 --- /dev/null +++ b/src/urdu/DocumentationUrd.gf @@ -0,0 +1,132 @@ +concrete DocumentationUrd of Documentation = CatUrd ** open + ResUrd, + CommonHindustani, + HTML +in { + +lincat + Inflection = {t : Str; s1,s2 : Str} ; + Definition = {s : Str} ; + Document = {s : Str} ; + Tag = {s : Str} ; + +lin + InflectionN, InflectionN2, InflectionN3 = \noun -> { + t = "n" ; + s1 = heading1 ("Noun" ++ + case noun.g of { + Masc => "(Masc)" ; + Fem => "(Fem)" + }); + s2 = frameTable ( + tr (th "" ++ th "sg" ++ th "pl") ++ + tr (th "dir" ++ td (noun.s ! Sg ! Dir) ++ td (noun.s ! Pl ! Dir)) ++ + tr (th "obl" ++ intagAttr "td" "rowspan=2" (noun.s ! Sg ! Obl) ++ td (noun.s ! Pl ! Obl)) ++ + tr (th "voc" ++ td (noun.s ! Pl ! CommonHindustani.Voc)) + ) + } ; + + InflectionA, InflectionA2 = \adj -> { + t = "a" ; + s1 = heading1 "Adjective" ; + s2 = heading2 "Positive" ++ + forms Posit ++ + heading2 "Comparative" ++ + forms Compar ++ + heading2 "Superlative" ++ + forms Superl + } where { + forms : Degree -> Str = \degree -> + frameTable ( + tr (intagAttr "th" "colspan=2" "" ++ th "sg" ++ th "pl") ++ + tr (intagAttr "th" "rowspan=3" "masc" ++ + th "dir" ++ td (adj.s ! Sg ! Masc ! Dir ! degree) ++ td (adj.s ! Pl ! Masc ! Dir ! degree)) ++ + tr (th "obl" ++ intagAttr "td" "rowspan=2" (adj.s ! Sg ! Masc ! Obl ! degree) ++ td (adj.s ! Pl ! Masc ! Obl ! degree)) ++ + tr (th "voc" ++ td (adj.s ! Pl ! Masc ! CommonHindustani.Voc ! degree)) ++ + tr (intagAttr "th" "rowspan=3" "fem" ++ + th "dir" ++ td (adj.s ! Sg ! Fem ! Dir ! degree) ++ td (adj.s ! Pl ! Fem ! Dir ! degree)) ++ + tr (th "obl" ++ intagAttr "td" "rowspan=2" (adj.s ! Sg ! Fem ! Obl ! degree) ++ td (adj.s ! Pl ! Fem ! Obl ! degree)) ++ + tr (th "voc" ++ td (adj.s ! Pl ! Fem ! CommonHindustani.Voc ! degree)) + ) ; + }; + + InflectionAdv = \adv -> { + t = "adv" ; + s1 = heading1 "Adverb" ; + s2 = frameTable ( + tr (th "masc" ++ td (adv.s ! Masc)) ++ + tr (th "fem" ++ td (adv.s ! Fem)) + ) + } ; + + InflectionPrep = \prep -> { + t = "prep" ; + s1 = heading1 "Preposition" ; + s2 = frameTable ( + tr (th "masc" ++ td (prep.s ! Masc)) ++ + tr (th "fem" ++ td (prep.s ! Fem)) + ) + } ; + + InflectionV, InflectionV2, InflectionV3, + InflectionV2A, InflectionV2Q, InflectionV2S, InflectionV2V, + InflectionVA, InflectionVQ, InflectionVS, InflectionVV = \verb -> { + t = "v" ; + s1 = heading1 "Verb" ; + s2 = heading2 "Root" ++ + paragraph (verb.s ! Root) ++ + heading2 "Present" ++ + forms Imperf ++ + heading2 "Past" ++ + forms CommonHindustani.Subj ++ + heading2 "Past Perfect" ++ + forms Perf ++ + heading2 "Infinitive" ++ + frameTable ( + tr (th "" ++ td (verb.s ! Inf)) ++ + tr (th "obl" ++ td (verb.s ! Inf_Obl)) ++ + tr (th "fem" ++ td (verb.s ! Inf_Fem)) + ) + } where { + forms : VTense -> Str = \tense -> + frameTable ( + tr (intagAttr "th" "colspan=2" "" ++ th "masc" ++ th "fem") ++ + tr (intagAttr "th" "rowspan=6" "sg" ++ + th "1.p" ++ td (verb.s ! VF tense Pers1 Sg Masc) ++ + td (verb.s ! VF tense Pers1 Sg Fem)) ++ + tr (th "2.p casual" ++ td (verb.s ! VF tense Pers2_Casual Sg Masc) ++ + td (verb.s ! VF tense Pers2_Casual Sg Fem)) ++ + tr (th "2.p familiar" ++ td (verb.s ! VF tense Pers2_Familiar Sg Masc) ++ + td (verb.s ! VF tense Pers2_Familiar Sg Fem)) ++ + tr (th "2.p respect" ++ td (verb.s ! VF tense Pers2_Respect Sg Masc) ++ + td (verb.s ! VF tense Pers2_Familiar Sg Fem)) ++ + tr (th "3.p near" ++ td (verb.s ! VF tense Pers3_Near Sg Masc) ++ + td (verb.s ! VF tense Pers3_Near Sg Fem)) ++ + tr (th "3.p distant" ++ td (verb.s ! VF tense Pers3_Distant Sg Masc) ++ + td (verb.s ! VF tense Pers3_Distant Sg Fem)) ++ + tr (intagAttr "th" "rowspan=6" "pl" ++ + th "1.p" ++ td (verb.s ! VF tense Pers1 Pl Masc) ++ + td (verb.s ! VF tense Pers1 Pl Fem)) ++ + tr (th "2.p casual" ++ td (verb.s ! VF tense Pers2_Casual Pl Masc) ++ + td (verb.s ! VF tense Pers2_Casual Pl Fem)) ++ + tr (th "2.p familiar" ++ td (verb.s ! VF tense Pers2_Familiar Pl Masc) ++ + td (verb.s ! VF tense Pers2_Familiar Pl Fem)) ++ + tr (th "2.p respect" ++ td (verb.s ! VF tense Pers2_Respect Pl Masc) ++ + td (verb.s ! VF tense Pers2_Familiar Pl Fem)) ++ + tr (th "3.p near" ++ td (verb.s ! VF tense Pers3_Near Pl Masc) ++ + td (verb.s ! VF tense Pers3_Near Pl Fem)) ++ + tr (th "3.p distant" ++ td (verb.s ! VF tense Pers3_Distant Pl Masc) ++ + td (verb.s ! VF tense Pers3_Distant Pl Fem)) + ) + } ; + +lin + NoDefinition t = {s=t.s}; + MkDefinition t d = {s="

परिभाषा:"++t.s++d.s++"

"}; + MkDefinitionEx t d e = {s="

परिभाषा:"++t.s++d.s++"

नमूना:"++e.s++"

"}; + +lin + MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ paragraph e.s} ; + MkTag i = {s = i.t} ; + +} diff --git a/src/urdu/LangUrd.gf b/src/urdu/LangUrd.gf index 12f198f16..ccc70aeb4 100644 --- a/src/urdu/LangUrd.gf +++ b/src/urdu/LangUrd.gf @@ -3,6 +3,9 @@ concrete LangUrd of Lang = GrammarUrd, LexiconUrd + ,DocumentationUrd --# notpresent + ,ConstructionUrd + ** { flags startcat = Phr ; unlexer=unwords ; lexer=words ;