mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-10-29 10:23:18 -06:00
more refactoring
This commit is contained in:
1 parent
16a8e0e893
commit
cf8fdd7cec
3 files changed
+35
-65
No files matched your search
@@ -107,15 +107,15 @@ concrete DocumentationTel of Documentation = CatTel ** open
|
|||||||
tr (th "Request" ++ td (verb.s ! VImp Pl Pos))
|
tr (th "Request" ++ td (verb.s ! VImp Pl Pos))
|
||||||
) ++
|
) ++
|
||||||
heading2 "Past" ++
|
heading2 "Past" ++
|
||||||
heading3 "Masculine" ++ personTable verb (VPast Masc) ++
|
heading3 "Masculine" ++ personTable verb (\n,p -> VPast (Ag Masc n p)) ++
|
||||||
heading3 "Feminine" ++ personTable verb (VPast Fem) ++
|
heading3 "Feminine" ++ personTable verb (\n,p -> VPast (Ag Fem n p)) ++
|
||||||
heading3 "Neuter" ++ personTable verb (VPast Neutr) ++
|
heading3 "Neuter" ++ personTable verb (\n,p -> VPast (Ag Neutr n p)) ++
|
||||||
heading2 "Subjunctive" ++
|
heading2 "Subjunctive" ++
|
||||||
personTable verb VSubj ++
|
personTable verb VSubj ++
|
||||||
heading2 "Future" ++
|
heading2 "Future" ++
|
||||||
heading3 "Masculine" ++ personTable verb (VFuture Pos Masc) ++
|
heading3 "Masculine" ++ personTable verb (\n,p -> VFuture Pos (Ag Masc n p)) ++
|
||||||
heading3 "Feminine" ++ personTable verb (VFuture Pos Fem) ++
|
heading3 "Feminine" ++ personTable verb (\n,p -> VFuture Pos (Ag Fem n p)) ++
|
||||||
heading3 "Neuter" ++ personTable verb (VFuture Pos Neutr) ;
|
heading3 "Neuter" ++ personTable verb (\n,p -> VFuture Pos (Ag Neutr n p)) ;
|
||||||
|
|
||||||
genderNumberTable : Verb -> (Gender -> Number -> VForm) -> Str = \verb,form ->
|
genderNumberTable : Verb -> (Gender -> Number -> VForm) -> Str = \verb,form ->
|
||||||
frameTable (
|
frameTable (
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ lin
|
|||||||
beautiful_A = mkA "అందమైన";
|
beautiful_A = mkA "అందమైన";
|
||||||
become_VA = mkVA (mkV "అవు") ;
|
become_VA = mkVA (mkV "అవు") ;
|
||||||
beer_N = mkN "బీరు" ;
|
beer_N = mkN "బీరు" ;
|
||||||
beg_V2V = mkV2V (mkV "వేడుకో") noPrep toP ;
|
beg_V2V = mkV2V (mkV "వేడుకొను") noPrep toP ;
|
||||||
big_A = mkA "పెద్ద" ;
|
big_A = mkA "పెద్ద" ;
|
||||||
bike_N = mkN "సైకిల్" ;
|
bike_N = mkN "సైకిల్" ;
|
||||||
bird_N = mkN "పక్షి" ;
|
bird_N = mkN "పక్షి" ;
|
||||||
@@ -100,7 +100,7 @@ lin
|
|||||||
know_V2 = dirV2 (mkV "తెలుసు") ;
|
know_V2 = dirV2 (mkV "తెలుసు") ;
|
||||||
lake_N = mkN "సరస్సు" ;
|
lake_N = mkN "సరస్సు" ;
|
||||||
lamp_N = mkN "దీపం" ;
|
lamp_N = mkN "దీపం" ;
|
||||||
learn_V2 = dirV2 (mkV "నేర్చుకో") ;
|
learn_V2 = dirV2 (mkV "నేర్చుకొను") ;
|
||||||
leather_N = mkN "తోలు" ;
|
leather_N = mkN "తోలు" ;
|
||||||
leave_V2 = dirV2 (mkV "విడిచిపెట్టు") ;
|
leave_V2 = dirV2 (mkV "విడిచిపెట్టు") ;
|
||||||
like_V2 = dirV2 (mkV "ఇష్టపడు") ;
|
like_V2 = dirV2 (mkV "ఇష్టపడు") ;
|
||||||
@@ -189,7 +189,7 @@ lin
|
|||||||
tree_N = mkN "చెట్టు" ;
|
tree_N = mkN "చెట్టు" ;
|
||||||
-- trousers_N = mkN "trousers" ;
|
-- trousers_N = mkN "trousers" ;
|
||||||
ugly_A = mkA "వికారమైన" ;
|
ugly_A = mkA "వికారమైన" ;
|
||||||
understand_V2 = dirV2 (mkV "అర్థంచేసుకో") ;
|
understand_V2 = dirV2 (mkV "అర్థం చేసుకొను") ;
|
||||||
university_N = mkN "విశ్వవిద్యాలయం" ;
|
university_N = mkN "విశ్వవిద్యాలయం" ;
|
||||||
village_N = mkN "గ్రామం" ;
|
village_N = mkN "గ్రామం" ;
|
||||||
wait_V2 = prepV2 (mkV "వేచిఉండు") forP ;
|
wait_V2 = prepV2 (mkV "వేచిఉండు") forP ;
|
||||||
|
|||||||
+26
-56
@@ -5,7 +5,7 @@
|
|||||||
-- This module contains operations that are needed to make the
|
-- This module contains operations that are needed to make the
|
||||||
-- resource syntax work.
|
-- resource syntax work.
|
||||||
|
|
||||||
resource ResTel = ParamX ** open Prelude in {
|
resource ResTel = ParamX ** open Prelude, Predef in {
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
|
|
||||||
@@ -74,9 +74,9 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
VForm =
|
VForm =
|
||||||
VInf
|
VInf
|
||||||
| VStem
|
| VStem
|
||||||
| VPresent Gender Number Person
|
| VPresent Agr
|
||||||
| VPast Gender Number Person
|
| VPast Agr
|
||||||
| VFuture Polarity Gender Number Person
|
| VFuture Polarity Agr
|
||||||
| VNegFinite
|
| VNegFinite
|
||||||
| VPresentPart
|
| VPresentPart
|
||||||
| VRelativePresent
|
| VRelativePresent
|
||||||
@@ -99,16 +99,16 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
conjugation : Str -> VForm => Str = \verb ->
|
conjugation : Str -> VForm => Str = \verb ->
|
||||||
let root = verbRoot verb in table {
|
let root = verbRoot verb in table {
|
||||||
VInf => root + "డం" ;
|
VInf => root + "డం" ;
|
||||||
VStem => verb ;
|
VStem => root ;
|
||||||
VPresent g n p => presentFinite verb (Ag g n p) ;
|
VPresent agr => presentFinite verb agr ;
|
||||||
VPast g n p => pastFinite verb (Ag g n p) ;
|
VPast agr => pastFinite verb agr ;
|
||||||
VFuture pol g n p => futureFinite verb pol (Ag g n p) ;
|
VFuture pol agr => futureFinite verb pol agr ;
|
||||||
VNegFinite => root + "లేదు" ;
|
VNegFinite => root + "లేదు" ;
|
||||||
VPresentPart => nonPastStem verb + "ున్న" ;
|
VPresentPart => nonPastStem verb + "ున్న" ;
|
||||||
VRelativePresent => relativePresent verb ;
|
VRelativePresent => relativePresent verb ;
|
||||||
VPastPart => pastStem verb + "ిన" ;
|
VPastPart => pastStem verb + "ిన" ;
|
||||||
VHortative => root + "దాం" ;
|
VHortative => root + "దాం" ;
|
||||||
VNoun n c => (wallNoun (verbalNoun verb)).s ! n ! c ;
|
VNoun n c => (wallNoun (verbRoot verb + "డం")).s ! n ! c ;
|
||||||
VSubj n p => nonPastStem verb + finiteEnding (Ag Masc n p) ;
|
VSubj n p => nonPastStem verb + finiteEnding (Ag Masc n p) ;
|
||||||
VAbs => pastStem verb + "ి" ;
|
VAbs => pastStem verb + "ి" ;
|
||||||
VImp Sg Pos => verb ;
|
VImp Sg Pos => verb ;
|
||||||
@@ -117,21 +117,13 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
VImp Pl Neg => root + "కండి"
|
VImp Pl Neg => root + "కండి"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- The dictionary for is the imperative form.
|
-- The dictionary form is the imperative form.
|
||||||
-- This operation provides the productive spoken-Telugu stems.
|
-- This operation provides the productive spoken-Telugu stems.
|
||||||
-- Irregular high-frequency verbs are listed before the regular suffix
|
-- Irregular high-frequency verbs are listed before the regular suffix
|
||||||
-- rules; compound verbs are handled because matching is suffix based.
|
-- rules; compound verbs are handled because matching is suffix based.
|
||||||
verbRoot : Str -> Str = \verb -> case verb of {
|
verbRoot : Str -> Str = \verb -> case verb of {
|
||||||
stem + "ండి" => stem ;
|
|
||||||
stem + "ు" => stem ;
|
stem + "ు" => stem ;
|
||||||
_ => verb
|
_ => error (verb ++ "is not a valid verb")
|
||||||
} ;
|
|
||||||
|
|
||||||
verbalNoun : Str -> Str = \verb -> case verb of {
|
|
||||||
stem + "పోవు" => stem + "పోవడం" ;
|
|
||||||
stem + "చేయు" => stem + "చేయడం" ;
|
|
||||||
stem + "వు" => stem + "వడం" ;
|
|
||||||
_ => verbRoot verb + "డం"
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
pastStem : Str -> Str = \verb -> case verb of {
|
pastStem : Str -> Str = \verb -> case verb of {
|
||||||
@@ -181,28 +173,17 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
presentFinite : Str -> Agr -> Str = \verb,agr ->
|
presentFinite : Str -> Agr -> Str = \verb,agr ->
|
||||||
nonPastStem verb + "ున్న" + case agr of {
|
nonPastStem verb + "ున్న" + finiteEnding agr ;
|
||||||
Ag _ Sg P1 => "ాను" ;
|
|
||||||
Ag _ Sg P2 => "ావు" ;
|
|
||||||
Ag Masc Sg P3 => "ాడు" ;
|
|
||||||
Ag _ Sg P3 => "ది" ;
|
|
||||||
Ag _ Pl P1 => "ాము" ;
|
|
||||||
Ag Neutr Pl P3 => "ాయి" ;
|
|
||||||
Ag _ Pl _ => "ారు"
|
|
||||||
} ;
|
|
||||||
|
|
||||||
pastFinite : Str -> Agr -> Str = \verb,agr -> case agr of {
|
pastFinite : Str -> Agr -> Str = \verb,agr -> case agr of {
|
||||||
Ag Masc Sg P3 => pastStem verb + "ాడు" ;
|
Ag Masc Sg P3 => pastStem verb + finiteEnding agr ;
|
||||||
Ag _ Sg P3 => case verb of {
|
Ag _ Sg P3 => case verb of {
|
||||||
stem + "చేయు" => stem + "చేసింది" ;
|
stem + "చేయు" => stem + "చేసింది" ;
|
||||||
stem + "తిను" => stem + "తిన్నది" ;
|
stem + "తిను" => stem + "తిన్నది" ;
|
||||||
stem + "విను" => stem + "విన్నది" ;
|
stem + "విను" => stem + "విన్నది" ;
|
||||||
stem + "కొను" => stem + "కొన్నది" ;
|
stem + "కొను" => stem + "కొన్నది" ;
|
||||||
stem + "కను" => stem + "కన్నది" ;
|
stem + "కను" => stem + "కన్నది" ;
|
||||||
_ => pastStem verb + case agr of {
|
_ => pastStem verb + finiteEnding agr
|
||||||
Ag Masc Sg P3 => "ాడు" ;
|
|
||||||
_ => "ింది"
|
|
||||||
}
|
|
||||||
} ;
|
} ;
|
||||||
_ => pastStem verb + finiteEnding agr
|
_ => pastStem verb + finiteEnding agr
|
||||||
} ;
|
} ;
|
||||||
@@ -232,15 +213,6 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
Ag _ Pl _ => "రు"
|
Ag _ Pl _ => "రు"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
finitePast : Verb -> Agr -> Str = \verb,agr ->
|
|
||||||
case agr of {Ag g n p => verb.s ! VPast g n p} ;
|
|
||||||
|
|
||||||
finitePresent : Verb -> Agr -> Str = \verb,agr ->
|
|
||||||
case agr of {Ag g n p => verb.s ! VPresent g n p} ;
|
|
||||||
|
|
||||||
finiteFuture : Polarity -> Verb -> Agr -> Str = \pol,verb,agr ->
|
|
||||||
case agr of {Ag g n p => verb.s ! VFuture pol g n p} ;
|
|
||||||
|
|
||||||
passiveV : Verb -> Verb = \verb -> {
|
passiveV : Verb -> Verb = \verb -> {
|
||||||
s = verb.passive ;
|
s = verb.passive ;
|
||||||
passive = verb.passive
|
passive = verb.passive
|
||||||
@@ -272,8 +244,7 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
VPPastPart => {fin = "అయిన" ; neg = []} ;
|
VPPastPart => {fin = "అయిన" ; neg = []} ;
|
||||||
VPHort => {fin = "అవుదాం" ; neg = []} ;
|
VPHort => {fin = "అవుదాం" ; neg = []} ;
|
||||||
VPImp Sg => {fin = "అవు" ; neg = []} ;
|
VPImp Sg => {fin = "అవు" ; neg = []} ;
|
||||||
VPImp Pl => {fin = "అవండి" ; neg = []} ;
|
VPImp Pl => {fin = "అవండి" ; neg = []}
|
||||||
VPReqFut => {fin = "అవండి" ; neg = []}
|
|
||||||
} ;
|
} ;
|
||||||
passive = verbForms (regVerb "అవు") ;
|
passive = verbForms (regVerb "అవు") ;
|
||||||
obj = {s = [] ; a = defaultAgr} ;
|
obj = {s = [] ; a = defaultAgr} ;
|
||||||
@@ -336,7 +307,6 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
VPInf
|
VPInf
|
||||||
| VPTense VPHTense Agr -- 9 * 12
|
| VPTense VPHTense Agr -- 9 * 12
|
||||||
| VPImp Number
|
| VPImp Number
|
||||||
| VPReqFut
|
|
||||||
| VPPresPart
|
| VPPresPart
|
||||||
| VPRelPresent
|
| VPRelPresent
|
||||||
| VPPastPart
|
| VPPastPart
|
||||||
@@ -368,19 +338,19 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
case vh of {
|
case vh of {
|
||||||
VPTense tense agr => case b of {
|
VPTense tense agr => case b of {
|
||||||
Neg => case tense of {
|
Neg => case tense of {
|
||||||
VPFut => {fin = finiteFuture Neg verb agr ; neg = []} ;
|
VPFut => {fin = verb.s ! VFuture Neg agr ; neg = []} ;
|
||||||
_ => {fin = verb.s ! VNegFinite ; neg = []}
|
_ => {fin = verb.s ! VNegFinite ; neg = []}
|
||||||
} ;
|
} ;
|
||||||
Pos => case tense of {
|
Pos => case tense of {
|
||||||
VPGenPres => {fin = finiteFuture Pos verb agr ; neg = []} ;
|
VPGenPres => {fin = verb.s ! VFuture Pos agr ; neg = []} ;
|
||||||
VPImpPast => {fin = finitePast verb agr ; neg = []} ;
|
VPImpPast => {fin = verb.s ! VPast agr ; neg = []} ;
|
||||||
VPContPres => {fin = finitePresent verb agr ; neg = []} ;
|
VPContPres => {fin = verb.s ! VPresent agr ; neg = []} ;
|
||||||
VPContPast => {fin = finitePast verb agr ; neg = []} ;
|
VPContPast => {fin = verb.s ! VPast agr ; neg = []} ;
|
||||||
VPPerf => {fin = finitePast verb agr ; neg = []} ;
|
VPPerf => {fin = verb.s ! VPast agr ; neg = []} ;
|
||||||
VPPerfPres => {fin = finitePast verb agr ; neg = []} ;
|
VPPerfPres => {fin = verb.s ! VPast agr ; neg = []} ;
|
||||||
VPPerfPast => {fin = finitePast verb agr ; neg = []} ;
|
VPPerfPast => {fin = verb.s ! VPast agr ; neg = []} ;
|
||||||
VPSubj => {fin = finiteFuture Pos verb agr ; neg = []} ;
|
VPSubj => {fin = verb.s ! VFuture Pos agr ; neg = []} ;
|
||||||
VPFut => {fin = finiteFuture Pos verb agr ; neg = []}
|
VPFut => {fin = verb.s ! VFuture Pos agr ; neg = []}
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
{- The finite cases above deliberately precede the legacy form
|
{- The finite cases above deliberately precede the legacy form
|
||||||
|
|||||||
Reference in new issue
Block a user