summaryrefslogtreecommitdiff
path: root/next-lib/src/romanian/ResRon.gf
diff options
context:
space:
mode:
authorra.monique <ra.monique@gmail.com>2009-02-23 13:29:42 +0000
committerra.monique <ra.monique@gmail.com>2009-02-23 13:29:42 +0000
commitb7d2916bbed9d1eec92066061d0fc0d5d35739b4 (patch)
tree1dcd8585cbb8e5fa666d146bb43a4a437121aecb /next-lib/src/romanian/ResRon.gf
parent01fef5109c2920d13004ae5b94d192fa5fba205f (diff)
Romainian in next-lib
Diffstat (limited to 'next-lib/src/romanian/ResRon.gf')
-rw-r--r--next-lib/src/romanian/ResRon.gf160
1 files changed, 160 insertions, 0 deletions
diff --git a/next-lib/src/romanian/ResRon.gf b/next-lib/src/romanian/ResRon.gf
new file mode 100644
index 000000000..945344d6c
--- /dev/null
+++ b/next-lib/src/romanian/ResRon.gf
@@ -0,0 +1,160 @@
+--1 Romance auxiliary operations.
+--
+
+resource ResRon = ParamX ** open Prelude in {
+
+flags optimize=all ;
+
+ flags optimize=all ;
+
+--2 Enumerated parameter types for morphology
+--
+-- These types are the ones found in school grammars.
+-- Their parameter values are atomic.
+
+param
+
+ Gender = Masc | Fem ;
+
+ NGender = NMasc | NFem | NNeut ;
+
+ Mood = Indic | Conjunct ;
+
+ Direct = DDir | DInv ;
+
+ NumF = Formal | Informal ;
+
+ Animacy = Animate | Inanimate ;
+
+ param Size = sg | less20 | pl ;
+
+ Case = Acc | Dat | Gen ;
+
+-- Adjectives are inflected in number, gender, have specific form for enclitic determined
+--article, and specific forms for Nom-Accusative/Dative-Genitive/Voccative
+
+ AForm = AF Gender Number Species ACase | AA ;
+
+-- Gender is not morphologically determined for first and second person pronouns.
+
+ PronGen = PGen Gender | PNoGen ;
+
+-- Cardinal numerals have gender, ordinal numerals have full number as well.
+
+ ACase = ANomAcc | AGenDat | AVoc ;
+ Species = Def | Indef ;
+ NCase = No | Da | Ac | Ge | Vo ;
+
+
+ CardOrd = NCard Gender | NOrd Gender;
+
+
+--3 Verbs
+
+
+-- the form we build on syntactical level, based on VForm
+-- it represents the main verb forms in Romanian
+
+param
+ Temps1 = TPresn | TImparf | TPComp | TPSimple | TPPerfect | TFutur ;
+ TSubj1 = TSPres | TSPast ;
+ -- TPart1 = TGer | TPPasse Gender Number Species ACase;
+
+ VerbForm = TInf
+ | TIndi Temps1 Number Person
+ | TCondi Number Person
+ | TSubjo TSubj1 Number Person
+ | TImper NumPersI
+ | TGer
+ | TPPasse Gender Number Species ACase ;
+
+ -- the form we build on morphological level :
+
+ Temps = Presn | Imparf | PSimple | PPerfect ;
+ TSubj = SPres ;
+ --TPart = PPasse Gender Number Species ACase;
+
+ VForm = Inf
+ | Indi Temps Number Person
+ | Subjo TSubj Number Person
+ | Imper NumPersI
+ | Ger
+ | PPasse Gender Number Species ACase ;
+
+-- form for compatibility with the other Romance languages, to be used in case that
+-- Romanian will be integrated in the Romance category
+
+param
+ VF =
+ VInfin Bool
+ | VFin TMood Number Person
+ | VImper NumPersI
+ | VPart Gender Number Species ACase
+ | VGer
+ ;
+
+ TMood =
+ VPres Mood
+ | VImperf Mood --# notpresent
+ | VPasse --# notpresent
+ | VFut --# notpresent
+ | VCondit --# notpresent
+ ;
+
+ NumPersI = SgP2 | PlP1 | PlP2 ;
+
+ VPForm =
+ VPFinite TMood Anteriority
+ | VPImperat
+ | VPGerund
+ | VPInfinit Anteriority Bool ;
+
+ RTense =
+ RPres
+ | RPast --# notpresent
+ | RPasse --# notpresent
+ | RFut --# notpresent
+ | RCond --# notpresent
+ ;
+
+-- Agreement of adjectives, verb phrases, and relative pronouns.
+
+oper
+ AAgr : Type = {g : Gender ; n : Number} ;
+ Agr : Type = AAgr ** {p : Person} ;
+
+param
+ RAgr = RAg {g : Gender ; n : Number} | RNoAg ; --- AAgr
+
+
+ oper
+ genForms : Str -> Str -> Gender => Str = \bon,bonne ->
+ table {
+ Masc => bon ;
+ Fem => bonne
+ } ;
+
+ aagrForms : (x1,_,_,x4 : Str) -> (AAgr => Str) = \tout,toute,tous,toutes ->
+ table {
+ {g = g ; n = Sg} => genForms tout toute ! g ;
+ {g = g ; n = Pl} => genForms tous toutes ! g
+ } ;
+
+ Noun = {s : Number => Species => ACase => Str; g : NGender; a : Animacy} ;
+ Adj = {s : AForm => Str} ;
+ -- A = {s : Degree => AForm => Str ; isPre : Bool} ;
+
+ Compl : Type = {s : Str ; c : NCase ; isDir : Bool} ;
+
+-- complAcc : Compl = {s = [] ; c = Acc ; isDir = True} ;
+-- complGen : Compl = {s = [] ; c = Gen ; isDir = True} ;
+-- complDat : Compl = {s = [] ; c = Dat ; isDir = True} ;
+
+
+
+
+
+
+
+
+}