summaryrefslogtreecommitdiff
path: root/next-lib/src/telugu/MorphoTel.gf
diff options
context:
space:
mode:
Diffstat (limited to 'next-lib/src/telugu/MorphoTel.gf')
-rw-r--r--next-lib/src/telugu/MorphoTel.gf196
1 files changed, 0 insertions, 196 deletions
diff --git a/next-lib/src/telugu/MorphoTel.gf b/next-lib/src/telugu/MorphoTel.gf
deleted file mode 100644
index a56a736fc..000000000
--- a/next-lib/src/telugu/MorphoTel.gf
+++ /dev/null
@@ -1,196 +0,0 @@
-----# -path=.:../../prelude
-----
-------1 A Simple Teldi Resource Morphology
-------
------- Aarne Ranta 2002 -- 2005
-------
------- This resource morphology contains definitions needed in the resource
------- syntax. To build a lexicon, it is better to use $ParadigmsTel$, which
------- gives a higher-level access to this module.
-----
---resource MorphoTel = ResTel ** open Prelude, (Predef=Predef) in {
-----
----- flags optimize=all ;
-----
-------2 Phonology
-------
------- To regulate the use of endings for both nouns, adjectives, and verbs:
-----
-----oper
----- y2ie : Str -> Str -> Str = \fly,s ->
----- let y = last (init fly) in
----- case y of {
----- "a" => fly + s ;
----- "e" => fly + s ;
----- "o" => fly + s ;
----- "u" => fly + s ;
----- _ => init fly + "ie" + s
----- } ;
-----
-----
-------2 Nouns
-------
------- For conciseness and abstraction, we define a worst-case macro for
------- noun inflection. It is used for defining special case that
------- only need one string as argument.
-----
-----oper
----- CommonNoun : Type = {s : Number => Case => Str} ;
-----
----- nounGen : Str -> CommonNoun = \dog -> case last dog of {
----- "y" => nounY "dog" ;
----- "s" => nounS (init "dog") ;
----- _ => nounReg "dog"
----- } ;
-----
------- These are auxiliaries to $nounGen$.
-----
----- nounReg : Str -> CommonNoun = \dog ->
----- mkNoun dog (dog + "s") (dog + "'s") (dog + "s'");
----- nounS : Str -> CommonNoun = \kiss ->
----- mkNoun kiss (kiss + "es") (kiss + "'s") (kiss + "es'") ;
----- nounY : Str -> CommonNoun = \fl ->
----- mkNoun (fl + "y") (fl + "ies") (fl + "y's") (fl + "ies'") ;
-----
-----
-------3 Proper names
-------
------- Regular proper names are inflected with "'s" in the genitive.
-----
----- nameReg : Str -> Gender -> {s : Case => Str} = \john,g ->
----- {s = table {Gen => john + "'s" ; _ => john} ; g = g} ;
-----
-------2 Determiners
-----
----- mkDeterminer : Number -> Str -> {s : Str ; n : Number} = \n,s ->
----- {s = s ; n = n} ;
-----
-------2 Pronouns
-------
------- Here we define personal pronouns.
-------
------- We record the form "mine" and the gender for later use.
-----
----- Pronoun : Type =
----- {s : Case => Str ; a : Agr} ;
-----
----- mkPronoun : (_,_,_,_ : Str) -> Number -> Person -> Gender -> Pronoun =
----- \I,me,my,mine,n,p,g ->
----- {s = table {Nom => I ; Acc => me ; Gen => my} ;
----- a = toAgr n p g
----- } ;
-----
----- human : Gender = Masc ; --- doesn't matter
-----
----- pronI = mkPronoun "I" "me" "my" "mine" Sg P1 human ;
----- pronYouSg = mkPronoun "you" "you" "your" "yours" Sg P2 human ; -- verb agr OK
----- pronHe = mkPronoun "he" "him" "his" "his" Sg P3 Masc ;
----- pronShe = mkPronoun "she" "her" "her" "hers" Sg P3 Fem ;
----- pronIt = mkPronoun "it" "it" "its" "it" Sg P3 Neutr ;
-----
----- pronWe = mkPronoun "we" "us" "our" "ours" Pl P1 human ;
----- pronYouPl = mkPronoun "you" "you" "your" "yours" Pl P2 human ;
----- pronThey = mkPronoun "they" "them" "their" "theirs" Pl P3 human ; ---
-----
-----
-------2 Adjectives
-------
------- To form the adjectival and the adverbial forms, two strings are needed
------- in the worst case. (First without degrees.)
-----
----- Adjective = {s : AForm => Str} ;
-----
------- However, most adjectives can be inflected using the final character.
------- N.B. this is not correct for "shy", but $mkAdjective$ has to be used.
-----
----- regAdjective : Str -> Adjective = \free ->
----- let
----- e = last free ;
----- fre = init free ;
----- freely = case e of {
----- "y" => fre + "ily" ;
----- _ => free + "ly"
----- } ;
----- fre = case e of {
----- "e" => fre ;
----- "y" => fre + "i" ;
----- _ => free
----- }
----- in
----- mkAdjective free (fre + "er") (fre + "est") freely ;
-----
------- Many adjectives are 'inflected' by adding a comparison word.
-----
----- adjDegrLong : Str -> Adjective = \ridiculous ->
----- mkAdjective
----- ridiculous
----- ("more" ++ ridiculous)
----- ("most" ++ ridiculous)
----- ((regAdjective ridiculous).s ! AAdv) ;
-----
-----
-------3 Verbs
-------
------- The worst case needs five forms. (The verb "be" is treated separately.)
-----
----- mkVerb4 : (_,_,_,_: Str) -> Verb = \go,goes,went,gone ->
----- let going = case last go of {
----- "e" => init go + "ing" ;
----- _ => go + "ing"
----- }
----- in
----- mkVerb go goes went gone going ;
-----
------- This is what we use to derive the irregular forms in almost all cases
-----
----- mkVerbIrreg : (_,_,_ : Str) -> Verb = \bite,bit,bitten ->
----- let bites = case last bite of {
----- "y" => y2ie bite "s" ;
----- "s" => init bite + "es" ;
----- _ => bite + "s"
----- }
----- in mkVerb4 bite bites bit bitten ;
-----
------- This is used to derive regular forms.
-----
----- mkVerbReg : Str -> Verb = \soak ->
----- let
----- soaks = case last soak of {
----- "y" => y2ie soak "s" ;
----- "s" => init soak + "es" ;
----- _ => soak + "s"
----- } ;
----- soaked = case last soak of {
----- "e" => init soak + "s" ;
----- _ => soak + "ed"
----- }
----- in
----- mkVerb4 soak soaks soaked soaked ;
-----
----- verbGen : Str -> Verb = \kill -> case last kill of {
----- "y" => verbP3y (init kill) ;
----- "e" => verbP3e (init kill) ;
----- "s" => verbP3s (init kill) ;
----- _ => regVerbP3 kill
----- } ;
-----
------- These are just auxiliary to $verbGen$.
-----
----- regVerbP3 : Str -> Verb = \walk ->
----- mkVerbIrreg walk (walk + "ed") (walk + "ed") ;
----- verbP3s : Str -> Verb = \kiss ->
----- mkVerb4 kiss (kiss + "es") (kiss + "ed") (kiss + "ed") ;
----- verbP3e : Str -> Verb = \love ->
----- mkVerb4 love (love + "s") (love + "d") (love + "d") ;
----- verbP3y : Str -> Verb = \cr ->
----- mkVerb4 (cr + "y") (cr + "ies") (cr + "ied") (cr + "ied") ;
-----
-------- The particle always appears right after the verb.
-----
----- verbPart : Verb -> Str -> Verb = \v,p ->
----- {s = \\f => v.s ! f ++ p ; isRefl = v.isRefl} ;
-----
----- verbNoPart : Verb -> Verb = \v -> verbPart v [] ;
-----
-----
---}