refactor verb forms
This commit is contained in:
1 parent
6ced542a7f
commit
8aa53d83f5
2 files changed
+34
-37
No files matched your search
@@ -114,9 +114,9 @@ concrete DocumentationTel of Documentation = CatTel ** open
|
|||||||
heading2 "Subjunctive" ++
|
heading2 "Subjunctive" ++
|
||||||
personTable verb VSubj ++
|
personTable verb VSubj ++
|
||||||
heading2 "Future" ++
|
heading2 "Future" ++
|
||||||
heading3 "Masculine" ++ personTable verb (VFuture Masc) ++
|
heading3 "Masculine" ++ personTable verb (VFuture Pos Masc) ++
|
||||||
heading3 "Feminine" ++ personTable verb (VFuture Fem) ++
|
heading3 "Feminine" ++ personTable verb (VFuture Pos Fem) ++
|
||||||
heading3 "Neuter" ++ personTable verb (VFuture Neutr) ;
|
heading3 "Neuter" ++ personTable verb (VFuture Pos Neutr) ;
|
||||||
|
|
||||||
genderNumberTable : Verb -> (Gender -> Number -> VForm) -> Str = \verb,form ->
|
genderNumberTable : Verb -> (Gender -> Number -> VForm) -> Str = \verb,form ->
|
||||||
frameTable (
|
frameTable (
|
||||||
|
|||||||
+31
-34
@@ -76,8 +76,8 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
| VStem
|
| VStem
|
||||||
| VPresent Gender Number Person
|
| VPresent Gender Number Person
|
||||||
| VPast Gender Number Person
|
| VPast Gender Number Person
|
||||||
| VFuture Gender Number Person
|
| VFuture Polarity Gender Number Person
|
||||||
| VNegFinite Bool Gender Number Person
|
| VNegFinite
|
||||||
| VPresentPart
|
| VPresentPart
|
||||||
| VRelativePresent
|
| VRelativePresent
|
||||||
| VPastPart
|
| VPastPart
|
||||||
@@ -110,11 +110,8 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
VReqFut => r ;
|
VReqFut => r ;
|
||||||
VPresent g n p => presentFinite stem (Ag g n p) ;
|
VPresent g n p => presentFinite stem (Ag g n p) ;
|
||||||
VPast g n p => pastFinite stem (Ag g n p) ;
|
VPast g n p => pastFinite stem (Ag g n p) ;
|
||||||
VFuture g n p => futureFinite stem (Ag g n p) ;
|
VFuture pol g n p => futureFinite stem pol (Ag g n p) ;
|
||||||
VNegFinite future g n p => case future of {
|
VNegFinite => verbRoot stem + "లేదు" ;
|
||||||
True => verbRoot stem + negativeEnding (Ag g n p) ;
|
|
||||||
False => verbRoot stem + "లేదు"
|
|
||||||
} ;
|
|
||||||
VPresentPart => nonPastStem stem + "ున్న" ;
|
VPresentPart => nonPastStem stem + "ున్న" ;
|
||||||
VRelativePresent => relativePresent stem ;
|
VRelativePresent => relativePresent stem ;
|
||||||
VPastPart => pastStem stem + "ిన" ;
|
VPastPart => pastStem stem + "ిన" ;
|
||||||
@@ -134,11 +131,8 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
VStem => verb ;
|
VStem => verb ;
|
||||||
VPresent g n p => presentFinite verb (Ag g n p) ;
|
VPresent g n p => presentFinite verb (Ag g n p) ;
|
||||||
VPast g n p => pastFinite verb (Ag g n p) ;
|
VPast g n p => pastFinite verb (Ag g n p) ;
|
||||||
VFuture g n p => futureFinite verb (Ag g n p) ;
|
VFuture pol g n p => futureFinite verb pol (Ag g n p) ;
|
||||||
VNegFinite future g n p => case future of {
|
VNegFinite => root + "లేదు" ;
|
||||||
True => root + negativeEnding (Ag g n p) ;
|
|
||||||
False => root + "లేదు"
|
|
||||||
} ;
|
|
||||||
VPresentPart => nonPastStem verb + "ున్న" ;
|
VPresentPart => nonPastStem verb + "ున్న" ;
|
||||||
VRelativePresent => relativePresent verb ;
|
VRelativePresent => relativePresent verb ;
|
||||||
VPastPart => pastStem verb + "ిన" ;
|
VPastPart => pastStem verb + "ిన" ;
|
||||||
@@ -235,17 +229,21 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
_ => pastStem verb + finiteEnding agr
|
_ => pastStem verb + finiteEnding agr
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
futureFinite : Str -> Agr -> Str = \verb,agr ->
|
futureFinite : Str -> Polarity -> Agr -> Str = \verb,pol,agr ->
|
||||||
nonPastStem verb + case agr of {
|
case pol of {
|
||||||
Ag _ Sg P1 => "ాను" ;
|
Pos => nonPastStem verb + futureEnding agr ;
|
||||||
Ag _ Sg P2 => "ావు" ;
|
Neg => verbRoot verb + negativeEnding agr
|
||||||
Ag Masc Sg P3 => "ాడు" ;
|
} ;
|
||||||
Ag _ Sg P3 => "ుంది" ;
|
|
||||||
Ag _ Pl P1 => "ాము" ;
|
|
||||||
Ag Neutr Pl P3 => "ాయి" ;
|
|
||||||
Ag _ Pl _ => "ారు"
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
futureEnding : Agr -> Str = \agr -> case agr of {
|
||||||
|
Ag _ Sg P1 => "ాను" ;
|
||||||
|
Ag _ Sg P2 => "ావు" ;
|
||||||
|
Ag Masc Sg P3 => "ాడు" ;
|
||||||
|
Ag _ Sg P3 => "ుంది" ;
|
||||||
|
Ag _ Pl P1 => "ాము" ;
|
||||||
|
Ag Neutr Pl P3 => "ాయి" ;
|
||||||
|
Ag _ Pl _ => "ారు"
|
||||||
|
} ;
|
||||||
negativeEnding : Agr -> Str = \agr -> case agr of {
|
negativeEnding : Agr -> Str = \agr -> case agr of {
|
||||||
Ag _ Sg P1 => "ను" ;
|
Ag _ Sg P1 => "ను" ;
|
||||||
Ag _ Sg P2 => "వు" ;
|
Ag _ Sg P2 => "వు" ;
|
||||||
@@ -262,12 +260,8 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
finitePresent : Verb -> Agr -> Str = \verb,agr ->
|
finitePresent : Verb -> Agr -> Str = \verb,agr ->
|
||||||
case agr of {Ag g n p => verb.s ! VPresent g n p} ;
|
case agr of {Ag g n p => verb.s ! VPresent g n p} ;
|
||||||
|
|
||||||
finiteFuture : Verb -> Agr -> Str = \verb,agr ->
|
finiteFuture : Polarity -> Verb -> Agr -> Str = \pol,verb,agr ->
|
||||||
case agr of {Ag g n p => verb.s ! VFuture g n p} ;
|
case agr of {Ag g n p => verb.s ! VFuture pol g n p} ;
|
||||||
|
|
||||||
finiteNegative : Verb -> VPHTense -> Agr -> Str = \verb,tense,agr ->
|
|
||||||
case agr of {Ag g n p => verb.s ! VNegFinite (case tense of {
|
|
||||||
VPFut => True ; _ => False}) g n p} ;
|
|
||||||
|
|
||||||
passiveV : Verb -> Verb = \verb -> {
|
passiveV : Verb -> Verb = \verb -> {
|
||||||
s = verb.passive ;
|
s = verb.passive ;
|
||||||
@@ -289,8 +283,8 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
VPImpPast => copulaPast agr ;
|
VPImpPast => copulaPast agr ;
|
||||||
VPContPast => copulaPast agr ;
|
VPContPast => copulaPast agr ;
|
||||||
VPPerfPast => copulaPast agr ;
|
VPPerfPast => copulaPast agr ;
|
||||||
VPSubj => futureFinite "అవు" agr ;
|
VPSubj => futureFinite "అవు" Pos agr ;
|
||||||
VPFut => futureFinite "అవు" agr
|
VPFut => futureFinite "అవు" Pos agr
|
||||||
} ; inf = [] ; neg = []}
|
} ; inf = [] ; neg = []}
|
||||||
} ;
|
} ;
|
||||||
VPInf => {fin = "అవడం" ; inf = [] ; neg = []} ;
|
VPInf => {fin = "అవడం" ; inf = [] ; neg = []} ;
|
||||||
@@ -396,17 +390,20 @@ resource ResTel = ParamX ** open Prelude in {
|
|||||||
in
|
in
|
||||||
case vh of {
|
case vh of {
|
||||||
VPTense tense agr => case b of {
|
VPTense tense agr => case b of {
|
||||||
Neg => {fin = finiteNegative verb tense agr ; inf = [] ; neg = []} ;
|
Neg => case tense of {
|
||||||
|
VPFut => {fin = finiteFuture Neg verb agr ; inf = [] ; neg = []} ;
|
||||||
|
_ => {fin = verb.s ! VNegFinite ; inf = [] ; neg = []}
|
||||||
|
} ;
|
||||||
Pos => case tense of {
|
Pos => case tense of {
|
||||||
VPGenPres => {fin = finiteFuture verb agr ; inf = [] ; neg = []} ;
|
VPGenPres => {fin = finiteFuture Pos verb agr ; inf = [] ; neg = []} ;
|
||||||
VPImpPast => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
VPImpPast => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
||||||
VPContPres => {fin = finitePresent verb agr ; inf = [] ; neg = []} ;
|
VPContPres => {fin = finitePresent verb agr ; inf = [] ; neg = []} ;
|
||||||
VPContPast => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
VPContPast => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
||||||
VPPerf => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
VPPerf => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
||||||
VPPerfPres => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
VPPerfPres => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
||||||
VPPerfPast => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
VPPerfPast => {fin = finitePast verb agr ; inf = [] ; neg = []} ;
|
||||||
VPSubj => {fin = finiteFuture verb agr ; inf = [] ; neg = []} ;
|
VPSubj => {fin = finiteFuture Pos verb agr ; inf = [] ; neg = []} ;
|
||||||
VPFut => {fin = finiteFuture verb agr ; inf = [] ; neg = []}
|
VPFut => {fin = finiteFuture Pos verb agr ; inf = [] ; 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