Files
gf-rgl/src/turkish/ResTur.gf
T
Ayberk Tosun 76d6749797 Complete AdjectiveTur (#12)
* remove unnecessary flags from GrammarTur.gf

* Implement the linearization for UseA2

* Minor formatting fixes

* Manually specify the preposition "ile" for married_A2

* Implement the linearization for ComplA2

* Implement the linearization for ReflA2 ("kendi ile evli")

* Fix ReflA2 adjective case to Nom

* Add a TODO comment

* Add a linearization for AdAP

* Implement the linearization for UseA2

* Minor formatting fixes

* Manually specify the preposition "ile" for married_A2

* Implement the linearization for ComplA2

* Implement the linearization for ReflA2 ("kendi ile evli")

* Fix ReflA2 adjective case to Nom

* Add a TODO comment

* Add a linearization for AdAP

* Fix AdAP

* Add linearization for at_most_AdN

* Add linearization for at_least_AdN

* added dummies for the missing modules in Turkish

* Add the linearization for as_CAdv

* Add rudimentary linearization for UsePN

* Add the linearization for CAdvAP

* Add preliminary linearization for EmbedVP

* Add linearization stub for SentAP

* Fix code-formatting and indentation in HarmonyTur

* Patterns for front and back vowels

* Add an oper for attaching the -mA suffix

* Formatting fixes in ParadigmsTur

* Attempt to implement attachMe

* Almost-working linearization for SentAP

* Update TODO for SentAP

* Move the addition of suffix si to the linearization of EmbedVP

* Import PhraseTur in GrammarTur

* Fix the duplication of PhraseTur in GrammarTur

* Start working on PhraseTur

* Fix formatting of makeH4Table

* Formatting

* Begin implementing the gerund inflection `makeVerb`

* Attach Number and Case data to the Gerund constructor of param VForm

* Get rid of hacky appending of "si" in EmbedVP
2017-09-30 13:29:03 +02:00

89 lines
1.9 KiB
Plaintext

--# -path=.:../abstract:../common:../../prelude
resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
--2 For $Noun$
flags
coding=utf8 ;
param
Case = Nom | Acc | Dat | Gen | Loc | Ablat | Abess Polarity ;
Species = Indef | Def ;
Contiguity = Con | Sep ; --Concatenate or Separate
oper
Agr = {n : Number ; p : Person} ;
Noun = {
s : Number => Case => Str ;
gen : Number => Agr => Str ;
harmony : Harmony
} ;
Pron = {s : Case => Str; a : Agr} ;
agrP3 : Number -> Agr ;
agrP3 n = {n = n; p = P3} ;
-- For $Adjective$
oper
Adjective = Noun ** { adv : Str } ;
-- For $Verb$.
param
VForm =
VProg Agr
| VPast Agr
| VFuture Agr
| VAorist Agr
| VImperative
| VInfinitive
| Gerund Number Case
;
UseGen = NoGen | YesGen Agr | UseIndef ;
oper
Verb : Type = {
s : VForm => Str
} ;
--2 For $Numeral$
param
DForm = unit | ten ;
CardOrd = NCard | NOrd ;
oper
mkPron : (ben,beni,bana,banin,bende,benden,benli,bensiz:Str) -> Number -> Person -> Pron =
\ben,beni,bana,benim,bende,benden,benli,bensiz,n,p -> {
s = table {
Nom => ben ;
Acc => beni ;
Dat => bana ;
Gen => benim ;
Loc => bende ;
Ablat => benden ;
Abess Pos => benli ;
Abess Neg => bensiz
} ;
a = {n=n; p=p} ;
} ;
-- Prep
no_Prep = mkPrep [] Acc;
mkPrep : Str -> Case -> {s : Str; c : Case; lock_Prep : {}} =
\s, c -> lin Prep {s=s; c=c};
mkClause : Str -> Agr -> Verb -> {s : Str} =
\np, a, v -> ss (np ++ v.s ! VProg a) ;
attachMe : Verb -> {s : Str} =
\v ->
let
s : Str = v.s ! VImperative
in
case s of {
(_ + #vowel + _ )* + (_ + #frontVowel + _) => ss (s ++ "me") ;
(_ + #vowel + _)* + (_ + #backVowel + _) => ss (s ++ "ma")
} ;
}