diff --git a/lib/src/hebrew/ResHeb.gf b/lib/src/hebrew/ResHeb.gf index 2024d8deb..eda151ebf 100644 --- a/lib/src/hebrew/ResHeb.gf +++ b/lib/src/hebrew/ResHeb.gf @@ -75,7 +75,19 @@ oper Vp3Sg g => {n = Sg ; g = g} ; Vp3Pl g => {n = Pl ; g = g} } ; - + + + -- Noun Phrase + mkNP : Str -> Number -> Person -> Gender -> NP = \s,n,p,g -> { + s = \\npcase => {obj = s } ; + a = Ag g n p ; + sp = Def ; + isDef = False + } ; + + regNP : Str -> NP = \hakul -> + mkNP hakul Sg Per3 Masc ; + pronNP : (s,a,d : Str) -> Gender -> Number -> Person -> NP = \s,a,d,g,n,p -> { s = @@ -89,6 +101,14 @@ oper a = Ag g n p } ; + -- check +-- prepNP : Prep -> NP -> Str ; +-- prepNP prep np = case prep.isPre of { +-- True => prep.s ; +-- False => prep.s ++ {obj = np.s} } ; + + + agrV : Verb -> TenseHeb -> Agr -> Str = \v,t,a -> case a of { Ag g n p => v.s ! t ! (chooseForm g n p) } ; @@ -110,6 +130,13 @@ oper Verb : Type = {s : TenseHeb => VPerNumGen => Str } ; Verb2 : Type = Verb ** {c : Case} ; + -- Interrogative pronoun + mkIP : Str -> Number -> {s : Str ; n : Number} = \who,n -> + { + s = who ; + n = n + } ; + Pattern : Type = {C1, C1C2, C2C3, C3 : Str}; Root : Type = {C1,C2,C3 : Str}; -- most verb roots consist of three consonants Root4 : Type = Root ** {C4 : Str}; -- for verb roots with four consonants diff --git a/lib/src/hebrew/StructuralHeb.gf b/lib/src/hebrew/StructuralHeb.gf index 3232409ea..10ac42c22 100644 --- a/lib/src/hebrew/StructuralHeb.gf +++ b/lib/src/hebrew/StructuralHeb.gf @@ -1,5 +1,5 @@ concrete StructuralHeb of Structural = CatHeb ** - open MorphoHeb, ResHeb, ParadigmsHeb, Prelude in { + open MorphoHeb, ResHeb, ParadigmsHeb, (X = ConstructX), Prelude in { flags optimize=all ; coding=utf8 ; @@ -39,15 +39,57 @@ concrete StructuralHeb of Structural = CatHeb ** youPl_Pron = mkPron "אתן" "שלכן" "שלכן" Fem Pl Per2 ; -- youPol_Pron = mkPron "אתן" "" "" Fem Sg Per2 ; - above_Prep = mkPrep "מעל" False; - after_Prep = mkPrep "אחרי" False; - by8agent_Prep = mkPrep "על ידי" False ; - --by8means_Prep = mkPrep "" False ; - there_Adv = mkAdv "שמ" ; - there7to_Adv = ss "לשמ" ; - there7from_Adv = ss "משמ" ; - somewhere_Adv = ss ""; + above_Prep = mkPrep "מעל" False; + after_Prep = mkPrep "אחרי" False; + by8agent_Prep = mkPrep "על ידי" False ; + --by8means_Prep = mkPrep "" False ; + before_Prep = mkPrep "לפני" False ; + behind_Prep = mkPrep "אחרי" False ; + between_Prep = mkPrep "בין" False ; + by8means_Prep = mkPrep "לפי פירושו" False ; + during_Prep = mkPrep "במשך" False ; + except_Prep = mkPrep "חוץ מן" False; + for_Prep = mkPrep "" False ; + from_Prep = mkPrep "" False ; + through_Prep = mkPrep "דרך" False ; + with_Prep = mkPrep "עם" False ; + without_Prep = mkPrep "בלי" False ; + under_Prep = mkPrep "מתחת" False ; + + everywhere_Adv = mkAdv "במקום אחר" ; + there_Adv = mkAdv "שמ" ; + there7to_Adv = ss "לשמ" ; + there7from_Adv = ss "משמ" ; + here7from_Adv = ss "מכאן" ; + somewhere_Adv = ss ""; -- now_Adv = ss "עכשיו"; - but_PConj = ss "אבל" ; + although_Subj = ss "למרות" ; + because_Subj = ss "בגלל" ; + if_Subj = ss "למרות" ; + when_Subj = ss "כשה" ; + that_Subj = ss "ש" ; + + how_IAdv = ss "איך" ; + how8much_IAdv = ss "כמה" ; + when_IAdv = ss "מתי" ; + where_IAdv = ss "איפה" ; + why_IAdv = ss "למה" ; + whoSg_IP = ss "מי" ; + what_IP = ss "מה" ; + whoPl_IP = ss "מי" ; + whatPl_IP = ss "מה" ; + whatSg_IP = ss "מה" ; + + but_PConj = ss "אבל" ; + + how8many_IDet = ss "כמה" ; +-- many_Det = ss "הרבה" ; +-- much_Det = ss "הרבה" ; + + no_Utt = ss "כן" ; + yes_Utt = ss "לא" ; + + + everything_NP = regNP "הכל" ; -- should use regNP } diff --git a/lib/src/hebrew/VerbHeb.gf b/lib/src/hebrew/VerbHeb.gf index 05f553757..43d2d3db7 100644 --- a/lib/src/hebrew/VerbHeb.gf +++ b/lib/src/hebrew/VerbHeb.gf @@ -10,4 +10,6 @@ concrete VerbHeb of Verb = CatHeb ** open Prelude, ResHeb in { SlashV2a v = predVc v ; --predV v ** {c2 = v.c2} ; + VPSlashPrep vp prep = vp ** { + c2 = {s = prep.s ; c = prep.c ; isDir = False} } ; }