make mkPN more portable across languages

This commit is contained in:
Krasimir Angelov
2022-08-02 16:07:27 +02:00
parent a181ab36a4
commit 607f4d68ae
4 changed files with 26 additions and 3 deletions

View File

@@ -266,7 +266,13 @@ oper
--2 Proper Names --2 Proper Names
-- --
masculine : Gender = Masc ;
feminine : Gender = Fem ;
neutr : Gender = Neut ;
mkPN = overload { mkPN = overload {
mkPN : Str -> PN = \s -> {s = s; gn = GSg Masc ; lock_PN = <>} ;
mkPN : Str -> Gender -> PN = mkPN : Str -> Gender -> PN =
\s,g -> {s = s; gn = GSg g ; lock_PN = <>} ; \s,g -> {s = s; gn = GSg g ; lock_PN = <>} ;
mkPN : Str -> GenNum -> PN = mkPN : Str -> GenNum -> PN =

View File

@@ -132,6 +132,7 @@ oper
mkPN : overload { mkPN : overload {
mkPN : Str -> PN ; mkPN : Str -> PN ;
mkPN : Str -> Gender -> PN ;
-- Sometimes a common noun can be reused as a proper name, e.g. "Bank" -- Sometimes a common noun can be reused as a proper name, e.g. "Bank"
@@ -435,6 +436,7 @@ mkVoc s = lin Voc (ss s) ;
mkPN = overload { mkPN = overload {
mkPN : Str -> PN = regPN ; mkPN : Str -> PN = regPN ;
mkPN : Str -> Gender -> PN = regGenPN ;
mkPN : N -> PN = nounPN mkPN : N -> PN = nounPN
} ; } ;

View File

@@ -78,7 +78,11 @@ resource ParadigmsMlt = open
mkNDual : Str -> Str -> Str -> Str -> Gender -> N ; -- Noun paradigm 4x: Explicit gender mkNDual : Str -> Str -> Str -> Str -> Gender -> N ; -- Noun paradigm 4x: Explicit gender
} ; } ;
mkPN : Str -> Gender -> Number -> ProperNoun ; -- Proper noun mkPN : overload {
mkPN : Str -> PN ;
mkPN : Str -> Gender -> PN ;
mkPN : Str -> Gender -> Number -> PN ;
} ;
mkN2 : overload { mkN2 : overload {
mkN2 : N -> Prep -> N2 ; mkN2 : N -> Prep -> N2 ;
@@ -324,8 +328,14 @@ resource ParadigmsMlt = open
} }
) ; ) ;
mkPN = overload {
mkPN : Str -> PN = \s -> regPN s masculine singular ;
mkPN : Str -> Gender -> PN = \s,g -> regPN s g singular ;
mkPN : Str -> Gender -> Number -> PN = \s,g,n -> regPN s g n ;
} ;
-- Proper noun -- Proper noun
mkPN : Str -> Gender -> Number -> ProperNoun = \name,g,n -> { regPN : Str -> Gender -> Number -> PN = \name,g,n -> lin PN {
s = name ; s = name ;
a = mkAgr n P3 g ; a = mkAgr n P3 g ;
} ; } ;

View File

@@ -142,6 +142,11 @@ resource ParadigmsTur = open
-- Paradigm for regular noun -- Paradigm for regular noun
regN : Str -> N ; regN : Str -> N ;
mkPN = overload {
mkPN : Str -> PN = regPN ;
mkPN : Str -> Str -> PN = makePN ;
} ;
-- Paradigm for proper noun -- Paradigm for proper noun
regPN : Str -> PN ; regPN : Str -> PN ;
@@ -405,7 +410,7 @@ resource ParadigmsTur = open
pln pln
har ; har ;
makePN sn sy = makeHarPN sn sy (getHarmony sn) ; makePN sn sy = lin PN (makeHarPN sn sy (getHarmony sn)) ;
linkNoun n1 n2 lt ct = linkNoun n1 n2 lt ct =
let n1sn = n1.s ! Sg ! Nom ;--tere let n1sn = n1.s ! Sg ! Nom ;--tere