From 145e1affe94bde6169bed93cdedcd80a12b699cb Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 12 Aug 2025 11:13:29 +0200 Subject: [PATCH] added missing bits and pieces --- src/api/TryHun.gf | 16 ++++++++- src/hungarian/CatHun.gf | 2 +- src/hungarian/NumeralHun.gf | 8 ++++- src/hungarian/ParadigmsHun.gf | 64 ++++++++++++++++++++++++++++++++-- src/hungarian/StructuralHun.gf | 4 +-- 5 files changed, 86 insertions(+), 8 deletions(-) diff --git a/src/api/TryHun.gf b/src/api/TryHun.gf index 2674f64c6..7a176408b 100644 --- a/src/api/TryHun.gf +++ b/src/api/TryHun.gf @@ -1,3 +1,17 @@ --# -path=.:../hungarian:../common:../abstract:../prelude -resource TryHun = SyntaxHun, LexiconHun, ParadigmsHun - [mkAdv] ; +resource TryHun = SyntaxHun-[mkAdN], LexiconHun, ParadigmsHun - [mkAdv,mkAdN] ** + open (P = ParadigmsHun) in { + +oper + mkAdv = overload SyntaxHun { + mkAdv : Str -> Adv = P.mkAdv ; + } ; + + mkAdN = overload { + mkAdN : CAdv -> AdN = SyntaxHun.mkAdN ; + mkAdN : Str -> AdN = P.mkAdN ; + } ; + +} + diff --git a/src/hungarian/CatHun.gf b/src/hungarian/CatHun.gf index 2247e4848..6bb0f8cc4 100644 --- a/src/hungarian/CatHun.gf +++ b/src/hungarian/CatHun.gf @@ -117,7 +117,7 @@ concrete CatHun of Cat = CommonX - [Adv] ** open ResHun, Prelude in { N, N2, N3 = ResHun.Noun ; - PN = ResHun.NounPhrase ; + PN,LN,GN,SN = ResHun.NounPhrase ; Adv = {s : Str ; isPre : Bool} ; diff --git a/src/hungarian/NumeralHun.gf b/src/hungarian/NumeralHun.gf index 58405457a..0bed49a21 100644 --- a/src/hungarian/NumeralHun.gf +++ b/src/hungarian/NumeralHun.gf @@ -6,7 +6,10 @@ lincat Sub10 = LinDigit ; Sub100, Sub1000, - Sub1000000 = ResHun.Numeral ; + Sub1000000, + Sub1000000000, + Sub1000000000000 = ResHun.Numeral ; + lin -- TODO: Add case inflection and ordinal forms to all numerals @@ -72,6 +75,9 @@ lin {s = table {p => n.s ! Attrib ++ "ezer" ++ m.s ! p} ; n = numNumber ; numtype = IsNum} ; + pot3as4 n = n ; + pot4as5 n = n ; + oper LinDigit : Type = {s : DForm*Place => Str ; n : Number} ; diff --git a/src/hungarian/ParadigmsHun.gf b/src/hungarian/ParadigmsHun.gf index 69f285e7d..344436c18 100644 --- a/src/hungarian/ParadigmsHun.gf +++ b/src/hungarian/ParadigmsHun.gf @@ -31,6 +31,14 @@ oper -- mkPN : N -> Number -> PN ; } ; + mkLN : overload { + mkLN : Str -> PN ; -- Singular PN out of a string + mkLN : Str -> Number -> PN -- PN with a given number + } ; + + mkGN : Str -> PN ; -- GN out of a string + mkSN : Str -> SN ; -- SN out of a string + --2 Adjectives mkA : overload { @@ -110,6 +118,9 @@ oper mkAdA : Str -> AdA = \s -> lin AdA {s = s} ; + mkAdN : Str -> AdN + = \s -> lin AdN {s = s} ; + --. ------------------------------------------------------------------------------- @@ -184,6 +195,14 @@ oper -- mkPN : N -> Number -> PN ; } ; + mkLN = overload { + mkLN : Str -> LN = \s -> lin LN (defNP s Sg) ; + mkLN : Str -> Number -> LN = \s,n -> lin LN (defNP s n) ; + } ; + + mkGN s = lin GN (defNP s Sg) ; + mkSN s = lin SN (defNP s Sg) ; + mkA = overload { mkA : (sgnom : Str) -> A = \s -> lin A (mkAdj s) ; mkA : (sgnom,sgacc : Str) -> A = \nom,acc -> @@ -213,17 +232,54 @@ oper copula = ResHun.copula ; + mkVS = overload { + mkVS : Str -> VS = \v -> lin VS (mkVerb v) ; + mkVS : V -> VS = \v -> lin VS v ; + } ; + + mkVQ = overload { + mkVQ : Str -> VQ = \v -> lin VQ (mkVerb v) ; + mkVQ : V -> VQ = \v -> lin VQ v ; + } ; + + mkVA = overload { + mkVA : Str -> VA = \v -> lin VA (mkVerb v) ; + mkVA : V -> VA = \v -> lin VA v ; + } ; + mkV2 = overload { mkV2 : (plain : Str) -> V2 = \v2 -> lin V2 (mkVerb2 v2) ; mkV2 : V -> V2 = vtov2 ; } ; + mkVV = overload { + mkVV : Str -> VV = \v -> lin VV (mkVerb2 v) ; + mkVV : V -> VV = \v -> lin VV (vtov2 v) ; + } ; + + mkV2A = overload { + mkV2A : Str -> V2A = \v -> lin V2A (mkVerb2 v) ; + mkV2A : V -> V2A = \v -> lin V2A (vtov2 v) ; + } ; + + mkV2V = overload { + mkV2V : Str -> V2V = \v -> lin V2V (mkVerb2 v) ; + mkV2V : V -> V2V = \v -> lin V2V (vtov2 v) ; + } ; + + mkV2S = overload { + mkV2S : Str -> V2S = \v -> lin V2S (mkVerb2 v) ; + mkV2S : V -> V2S = \v -> lin V2S (vtov2 v) ; + } ; + + mkV2Q = overload { + mkV2Q : Str -> V2Q = \v -> lin V2Q (mkVerb2 v) ; + mkV2Q : V -> V2Q = \v -> lin V2Q (vtov2 v) ; + } ; + mkV3 = overload { mkV3 : (plain : Str) -> V3 = \v3 -> lin V3 (mkVerb3 v3) ; } ; - -- - -- mkVV = overload { - -- } ; mkPrep = overload { mkPrep : (e : Str) -> Prep @@ -234,6 +290,8 @@ oper casePrep : Case -> Prep = \c -> lin Prep (ResHun.caseAdp c) ; + + mkInterj : Str -> Interj = \s -> lin Interj {s = s} ; -------------------------------------------------------------------------------- } diff --git a/src/hungarian/StructuralHun.gf b/src/hungarian/StructuralHun.gf index 08d8babda..711ca6f06 100644 --- a/src/hungarian/StructuralHun.gf +++ b/src/hungarian/StructuralHun.gf @@ -121,12 +121,12 @@ lin under_Prep = nomAdp "alatt" ; -- Pron -- Pronouns are closed class, no constructor in ParadigmsHun. - -- it_Pron = i_Pron = pronTable ! ; youPol_Pron, youSg_Pron = pronTable ! ; he_Pron, - she_Pron = pronTable ! ; + she_Pron, + it_Pron = pronTable ! ; we_Pron = pronTable ! ; youPl_Pron = pronTable ! ; they_Pron = pronTable ! ;