summaryrefslogtreecommitdiff
path: root/next-lib/src/romance
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
committeraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
commite89fdae2fa1626348d8025824a7469252fa85e42 (patch)
treec7d46bbd0494043b4bd6f917a25a7687517d0547 /next-lib/src/romance
parent3049b59b35b25381a7c6787444165c200d66e08b (diff)
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'next-lib/src/romance')
-rw-r--r--next-lib/src/romance/AdjectiveRomance.gf59
-rw-r--r--next-lib/src/romance/AdverbRomance.gf25
-rw-r--r--next-lib/src/romance/CatRomance.gf115
-rw-r--r--next-lib/src/romance/CommonRomance.gf215
-rw-r--r--next-lib/src/romance/ConjunctionRomance.gf52
-rw-r--r--next-lib/src/romance/DiffRomance.gf115
-rw-r--r--next-lib/src/romance/ExtRomance.gf14
-rw-r--r--next-lib/src/romance/ExtraRomance.gf21
-rw-r--r--next-lib/src/romance/ExtraRomanceAbs.gf7
-rw-r--r--next-lib/src/romance/NounRomance.gf159
-rw-r--r--next-lib/src/romance/PhraseRomance.gf27
-rw-r--r--next-lib/src/romance/QuestionRomance.gf113
-rw-r--r--next-lib/src/romance/RelativeRomance.gf50
-rw-r--r--next-lib/src/romance/ResRomance.gf328
-rw-r--r--next-lib/src/romance/SentenceRomance.gf76
-rw-r--r--next-lib/src/romance/SymbolRomance.gf41
-rw-r--r--next-lib/src/romance/VerbRomance.gf119
17 files changed, 0 insertions, 1536 deletions
diff --git a/next-lib/src/romance/AdjectiveRomance.gf b/next-lib/src/romance/AdjectiveRomance.gf
deleted file mode 100644
index d24d6dff0..000000000
--- a/next-lib/src/romance/AdjectiveRomance.gf
+++ /dev/null
@@ -1,59 +0,0 @@
-incomplete concrete AdjectiveRomance of Adjective =
- CatRomance ** open CommonRomance, ResRomance, Prelude in {
-
- lin
-
- PositA a = {
- s = a.s ! Posit ;
- isPre = a.isPre
- } ;
- ComparA a np = {
- s = \\af => a.s ! Compar ! af ++ conjThan ++ (np.s ! Nom).ton ;
- isPre = False
- } ;
- CAdvAP ad ap np = {
- s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ (np.s ! Nom).ton ;
- isPre = False
- } ;
- UseComparA a = {
- s = \\af => a.s ! Compar ! af ;
- isPre = a.isPre
- } ;
- AdjOrd ord = {
- s = \\af => ord.s ! (case af of {
- AF g n => aagr g n ;
- _ => aagr Masc Sg ----
- }) ;
- isPre = False ----
- } ;
-
--- $SuperlA$ belongs to determiner syntax in $Noun$.
-
- ComplA2 adj np = {
- s = \\af => adj.s ! Posit ! af ++ appCompl adj.c2 np ;
- isPre = False
- } ;
-
- ReflA2 adj = {
- s = \\af =>
- adj.s ! Posit ! af ++ adj.c2.s ++
- adj.c2.s ++ prepCase adj.c2.c ++ reflPron Sg P3 Nom ; --- agr
- isPre = False
- } ;
-
- SentAP ap sc = {
- s = \\a => ap.s ! a ++ sc.s ; --- mood
- isPre = False
- } ;
-
- AdAP ada ap = {
- s = \\a => ada.s ++ ap.s ! a ;
- isPre = ap.isPre
- } ;
-
- UseA2 a = {
- s = a.s ! Posit ;
- isPre = False ---- A2 has no isPre
- } ;
-
-}
diff --git a/next-lib/src/romance/AdverbRomance.gf b/next-lib/src/romance/AdverbRomance.gf
deleted file mode 100644
index 79e9e8326..000000000
--- a/next-lib/src/romance/AdverbRomance.gf
+++ /dev/null
@@ -1,25 +0,0 @@
-incomplete concrete AdverbRomance of Adverb =
- CatRomance ** open CommonRomance, ResRomance, Prelude in {
-
- lin
- PositAdvAdj a = {
- s = a.s ! Posit ! AA
- } ;
- ComparAdvAdj cadv a np = {
- s = cadv.s ++ a.s ! Posit ! AA ++ cadv.p ++ (np.s ! Nom).ton
- } ;
- ComparAdvAdjS cadv a s = {
- s = cadv.s ++ a.s ! Posit ! AA ++ cadv.p ++ s.s ! Conjunct --- ne
- } ;
-
- PrepNP prep np = {s = prep.s ++ (np.s ! prep.c).ton} ;
-
- AdAdv = cc2 ;
-
- SubjS subj s = {
- s = subj.s ++ s.s ! subj.m
- } ;
-
- AdnCAdv cadv = {s = cadv.s ++ conjThan} ;
-
-}
diff --git a/next-lib/src/romance/CatRomance.gf b/next-lib/src/romance/CatRomance.gf
deleted file mode 100644
index 188f535f5..000000000
--- a/next-lib/src/romance/CatRomance.gf
+++ /dev/null
@@ -1,115 +0,0 @@
-incomplete concrete CatRomance of Cat =
- CommonX - [Temp,TTAnt,Tense,TPres,TPast,TFut,TCond]
- ** open Prelude, CommonRomance, ResRomance, (R = ParamX) in {
-
- flags optimize=all_subs ;
-
- lincat
-
--- Tensed/Untensed
-
- S = {s : Mood => Str} ;
- QS = {s : QForm => Str} ;
- RS = {s : Mood => Agr => Str ; c : Case} ;
- SSlash = {
- s : AAgr => Mood => Str ;
- c2 : Compl
- } ;
-
-
--- Sentence
-
- Cl = {s : Direct => RTense => Anteriority => Polarity => Mood => Str} ;
- ClSlash = {
- s : AAgr => Direct => RTense => Anteriority => Polarity => Mood => Str ;
- c2 : Compl
- } ;
- Imp = {s : Polarity => ImpForm => Gender => Str} ;
-
--- Question
-
- QCl = {s : RTense => Anteriority => Polarity => QForm => Str} ;
- IP = {s : Case => Str ; a : AAgr} ;
- IComp = {s : AAgr => Str} ;
- IDet = {s : Gender => Case => Str ; n : Number} ;
- IQuant = {s : Number => Gender => Case => Str} ;
-
--- Relative
-
- RCl = {
- s : Agr => RTense => Anteriority => Polarity => Mood => Str ;
- c : Case
- } ;
- RP = {s : Bool => AAgr => Case => Str ; a : AAgr ; hasAgr : Bool} ;
-
--- Verb
-
- VP = ResRomance.VP ;
- VPSlash = ResRomance.VP ** {c2 : Compl} ;
- Comp = {s : Agr => Str} ;
-
--- Adjective
-
- AP = {s : AForm => Str ; isPre : Bool} ;
-
--- Noun
-
- CN = {s : Number => Str ; g : Gender} ;
- Pron = Pronoun ;
- NP = NounPhrase ;
- Det = {
- s : Gender => Case => Str ;
- n : Number ;
- s2 : Str ; -- -ci
- sp : Gender => Case => Str -- substantival: mien, mienne
- } ;
- Quant = {
- s : Bool => Number => Gender => Case => Str ;
- s2 : Str ;
- sp : Number => Gender => Case => Str
- } ;
- Predet = {s : AAgr => Case => Str ; c : Case} ; -- c : la plupart de
- Num = {s : Gender => Str ; isNum : Bool ; n : Number} ;
- Card = {s : Gender => Str ; n : Number} ;
- Ord = {s : AAgr => Str} ;
-
--- Numeral
-
- Numeral = {s : CardOrd => Str ; n : Number} ;
- Digits = {s : CardOrd => Str ; n : Number} ;
-
--- Structural
-
----b Conj = {s : Str ; n : Number} ;
----b DConj = {s1,s2 : Str ; n : Number} ;
- Conj = {s1,s2 : Str ; n : Number} ;
- Subj = {s : Str ; m : Mood} ;
- Prep = {s : Str ; c : Case ; isDir : Bool} ;
-
--- Open lexical classes, e.g. Lexicon
-
- V, VQ, VA = Verb ;
- V2, VV, V2S, V2Q = Verb ** {c2 : Compl} ;
- V3, V2A, V2V = Verb ** {c2,c3 : Compl} ;
- VS = Verb ** {m : Polarity => Mood} ;
-
- A = {s : Degree => AForm => Str ; isPre : Bool} ;
- A2 = {s : Degree => AForm => Str ; c2 : Compl} ;
-
- N = Noun ;
- N2 = Noun ** {c2 : Compl} ;
- N3 = Noun ** {c2,c3 : Compl} ;
- PN = {s : Str ; g : Gender} ;
-
--- tense augmented with passé simple
-
- Temp = {s : Str ; t : RTense ; a : Anteriority} ;
- Tense = {s : Str ; t : RTense} ;
- lin
- TTAnt t a = {s = a.s ++ t.s ; a = a.a ; t = t.t} ;
- TPres = {s = []} ** {t = RPres} ;
- TPast = {s = []} ** {t = RPast} ; --# notpresent
- TFut = {s = []} ** {t = RFut} ; --# notpresent
- TCond = {s = []} ** {t = RCond} ; --# notpresent
-
-}
diff --git a/next-lib/src/romance/CommonRomance.gf b/next-lib/src/romance/CommonRomance.gf
deleted file mode 100644
index 82da3b824..000000000
--- a/next-lib/src/romance/CommonRomance.gf
+++ /dev/null
@@ -1,215 +0,0 @@
-----1 Auxiliary operations common for Romance languages
---
--- This module contains operations that are shared by the Romance
--- languages. The complete set of auxiliary operations needed to
--- implement [Test Test.html] is defined in [ResRomance ResRomance.html],
--- which depends on [DiffRomance DiffRomance.html].
---
-
-resource CommonRomance = ParamX ** open Prelude in {
-
- 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 ;
-
- Mood = Indic | Conjunct ;
-
- Direct = DDir | DInv ;
-
--- Adjectives are inflected in gender and number, and there is also an
--- adverbial form (e.g. "infiniment"), which has different paradigms and
--- can even be irregular ("bien").
--- Comparative adjectives are moreover inflected in degree
--- (which in Romance is usually syntactic, though).
-
- AForm = AF Gender Number | 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.
-
- CardOrd = NCard Gender | NOrd Gender Number ;
-
--- The following coercions are useful:
-
-oper
- prongen2gender : PronGen -> Gender = \p -> case p of {
- PGen g => g ;
- PNoGen => variants {Masc ; Fem} --- the best we can do for je, tu, nous, vous
- } ;
-
-
- aform2gender : AForm -> Gender = \a -> case a of {
- AF g _ => g ;
- _ => Masc -- "le plus lentement"
- } ;
- aform2number : AForm -> Number = \a -> case a of {
- AF _ n => n ;
- _ => Sg -- "le plus lentement"
- } ;
-
- conjGender : Gender -> Gender -> Gender = \m,n ->
- case m of {
- Fem => n ;
- _ => Masc
- } ;
-
- conjAgr : Agr -> Agr -> Agr = \a,b -> {
- g = conjGender a.g b.g ;
- n = conjNumber a.n b.n ;
- p = conjPerson a.p b.p
- } ;
-
-
---3 Verbs
---
--- In the current syntax, we use
--- a reduced conjugation with only the present tense infinitive,
--- indicative, subjunctive, and imperative forms.
--- But our morphology has full Bescherelle conjunctions:
--- so we use a coercion between full and reduced verbs.
--- The full conjugations and the coercions are defined separately for French
--- and Italian, since they are not identical. The differences are mostly due
--- to Bescherelle structuring the forms in different groups; the
--- gerund and the present participles show real differences.
---
--- For Italian contracted forms, $VInfin$ should have
--- an alternative form, whose proper place is $Diff$.
-
-param
- VF =
- VInfin Bool
- | VFin TMood Number Person
- | VImper NumPersI
- | VPart Gender Number
- | 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
-
--- Clitic slots.
-
- CAgr = CPron Gender Number Person | CRefl | CNone ; --- Agr
---- CAgr = CPron {g : Gender ; n : Number ; p : Person} | CRefl | CNone ; --- Agr
-
-oper
- aagr : Gender -> Number -> AAgr = \g,n ->
- {g = g ; n = n} ;
- agrP3 : Gender -> Number -> Agr = \g,n ->
- aagr g n ** {p = P3} ;
-
-
- vf2numpers : VF -> (Number * Person) = \v -> case v of {
- VFin _ n p => <n,p> ;
- _ => <Sg,P3> ----
- } ;
-
- presInd = VPres Indic ;
-
--- The imperative forms depend on number and person.
-
- vImper : Number -> Person -> VF = \n,p -> case <n,p> of {
- <Sg,P2> => VImper SgP2 ;
- <Pl,P1> => VImper PlP1 ;
- <Pl,P2> => VImper PlP2 ;
- _ => VInfin False
- } ;
-
----
-
- 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 => Str ; g : Gender} ;
-
- Adj = {s : AForm => Str} ;
-
- appVPAgr : VPAgr -> AAgr -> AAgr = \vp,agr ->
- case vp of {
- VPAgrSubj => agr ;
- VPAgrClit g n => {g = g ; n = n}
- } ;
-
- vpAgrNone : VPAgr = VPAgrClit Masc Sg ;
-
- oper
- mkOrd : {s : Degree => AForm => Str} -> {s : AAgr => Str} ;
- mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n} ;
-
--- This is used in Spanish and Italian to bind clitics with preceding verb.
-
- bindIf : Bool -> Str = \b -> if_then_Str b BIND [] ;
-
- param
- VPAgr =
- VPAgrSubj -- elle est partie, elle s'est vue
- | VPAgrClit Gender Number ; -- elle a dormi; elle les a vues
-
- oper
- VPC : Type = {
- s : VPForm => {
- fin : Agr => Str ; -- ai
- inf : AAgr => Str -- dit
- } ;
- agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
- neg : Polarity => (Str * Str) ; -- ne-pas
- clit1 : Str ; -- le/se
- clit2 : Str ; -- lui
- clit3 : Str ; -- y en
- comp : Agr => Str ; -- content(e) ; à ma mère ; hier
- ext : Polarity => Str ; -- que je dors / que je dorme
- } ;
-
-
-}
-
diff --git a/next-lib/src/romance/ConjunctionRomance.gf b/next-lib/src/romance/ConjunctionRomance.gf
deleted file mode 100644
index 521d2ed4b..000000000
--- a/next-lib/src/romance/ConjunctionRomance.gf
+++ /dev/null
@@ -1,52 +0,0 @@
-incomplete concrete ConjunctionRomance of Conjunction =
- CatRomance ** open CommonRomance, ResRomance, Coordination, Prelude in {
-
- flags optimize=all_subs ;
-
- lin
-
- ConjS conj ss = conjunctDistrTable Mood conj ss ;
-
- ConjAdv conj ss = conjunctDistrSS conj ss ;
-
- ConjNP conj ss = heavyNP (conjunctDistrTable Case conj ss ** {
- a = {g = ss.a.g ; n = conjNumber conj.n ss.a.n ; p = ss.a.p} ;
- hasClit = False
- }) ;
- ConjAP conj ss = conjunctDistrTable AForm conj ss ** {
- isPre = ss.isPre
- } ;
- ConjRS conj ss = conjunctDistrTable2 Mood Agr conj ss ** {
- c = ss.c
- } ;
-
-
--- These fun's are generated from the list cat's.
-
- BaseS = twoTable Mood ;
- ConsS = consrTable Mood comma ;
- BaseAdv = twoSS ;
- ConsAdv = consrSS comma ;
- BaseNP x y = {
- s1 = \\c => (x.s ! c).ton ;
- s2 = \\c => (y.s ! c).ton ; ----e (conjunctCase c) ;
- a = conjAgr x.a y.a
- } ;
- ConsNP x xs = {
- s1 = \\c => (x.s ! c).ton ++ comma ++ xs.s1 ! c ; ----e (conjunctCase c) ;
- s2 = \\c => xs.s2 ! c ; ----e (conjunctCase c) ;
- a = conjAgr x.a xs.a
- } ;
- BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ;
- ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
- BaseRS x y = twoTable2 Mood Agr x y ** {c = y.c} ;
- ConsRS xs x = consrTable2 Mood Agr comma xs x ** {c = xs.c} ;
-
- lincat
- [S] = {s1,s2 : Mood => Str} ;
- [Adv] = {s1,s2 : Str} ;
- [NP] = {s1,s2 : Case => Str ; a : Agr} ;
- [AP] = {s1,s2 : AForm => Str ; isPre : Bool} ;
- [RS] = {s1,s2 : Mood => Agr => Str ; c : Case} ;
-
-}
diff --git a/next-lib/src/romance/DiffRomance.gf b/next-lib/src/romance/DiffRomance.gf
deleted file mode 100644
index 70dd40943..000000000
--- a/next-lib/src/romance/DiffRomance.gf
+++ /dev/null
@@ -1,115 +0,0 @@
---1 Differences between Romance languages
-
-interface DiffRomance = open CommonRomance, Prelude in {
-
--- The first eight constants show the essential differences
--- between French, Italian, and Romance syntaxes (as regards the
--- resource API). The other constants are either derivatively
--- dependent, or have as values strings, which are language-dependent
--- anyway.
-
-
---2 Constants whose definitions fundamentally depend on language
-
--- Prepositions that fuse with the article
--- (Fre, Spa "de", "a"; Ita also "con", "da", "in", "su).
-
- param Prepos ;
-
--- Which types of verbs exist, in terms of auxiliaries.
--- (Fre, Ita "avoir", "être", and refl; Spa only "haber" and refl).
-
- param VType ;
-
--- Derivatively, if/when the participle agrees to the subject.
--- (Fre "elle est partie", Ita "lei è partita", Spa not)
-
- oper partAgr : VType -> VPAgr ;
-
--- Whether participle agrees to foregoing clitic.
--- (Fre "je l'ai vue", Spa "yo la he visto")
-
- oper vpAgrClit : Agr -> VPAgr ;
-
--- Whether a preposition is repeated in conjunction
--- (Fre "la somme de 3 et de 4", Ita "la somma di 3 e 4").
-
- oper conjunctCase : NPForm -> NPForm ;
-
--- How infinitives and clitics are placed relative to each other
--- (Fre "la voir", Ita "vederla"). The $Bool$ is used for indicating
--- if there are any clitics.
-
- oper clitInf : Bool -> Str -> Str -> Str ;
-
--- To render pronominal arguments as clitics and/or ordinary complements.
--- Returns $True$ if there are any clitics.
-
- oper pronArg : Number -> Person -> CAgr -> CAgr -> Str * Str * Bool ;
-
--- To render imperatives (with their clitics etc).
-
- oper mkImperative : Bool -> Person -> VPC -> {s : Polarity => AAgr => Str} ;
-
---2 Constants that must derivatively depend on language
-
- param NPForm = Ton Case | Aton Case | Poss {g : Gender ; n : Number} ; --- AAgr
-
- oper dative : Case ;
- oper genitive : Case ;
-
- vRefl : VType ;
- isVRefl : VType -> Bool ;
-
-
---2 Strings
-
- prepCase : Case -> Str ;
-
- partitive : Gender -> Case -> Str ;
-
- artDef : Gender -> Number -> Case -> Str ;
- artIndef : Gender -> Number -> Case -> Str ;
-
--- This is the definite article in Italian, $prepCase c$ in French and Spanish.
-
- possCase : Gender -> Number -> Case -> Str ;
-
- auxVerb : VType -> (VF => Str) ;
- negation : Polarity => (Str * Str) ;
- copula : Verb ;
-
- conjThan : Str ;
- conjThat : Str ;
-
- subjIf : Str ;
-
- relPron : Bool => AAgr => Case => Str ;
- pronSuch : AAgr => Str ;
-
- partQIndir : Str ; -- ce, ciò
-
- reflPron : Number -> Person -> Case -> Str ;
--- argPron : Gender -> Number -> Person -> Case -> Str ;
-
- auxPassive : Verb ;
-
-
---2 Contants needed in type signatures above
-
-param
- Case = Nom | Acc | CPrep Prepos ;
-
-oper
- Verb = {s : VF => Str ; vtyp : VType} ;
-
---2 Workarounds, to be eliminated
-
--- This should be provided by $pronArg$ above, but causes trouble in compilation.
--- (AR 16/8/2008)
-
- oper infForm : Number -> Person -> CAgr -> CAgr -> Bool ;
-
-
-}
-
diff --git a/next-lib/src/romance/ExtRomance.gf b/next-lib/src/romance/ExtRomance.gf
deleted file mode 100644
index a5586d715..000000000
--- a/next-lib/src/romance/ExtRomance.gf
+++ /dev/null
@@ -1,14 +0,0 @@
-incomplete concrete ExtRomance of ExtRomanceAbs =
- CatRomance ** open DiffRomance, ResRomance in {
-
- lin
- DefSgN predet noun = let g = noun.g in {
- s = \\c => predet.s ! gennum g Sg ++ noun.s ! Sg ! Def ! caseNP c ;
- a = agrP3 g Sg
- } ;
- DefPlN predet noun = let g = noun.g in {
- s = \\c => predet.s ! Plg ++ noun.s ! Pl ! Def ! caseNP c ;
- a = agrP3 g Sg
- } ;
-
-}
diff --git a/next-lib/src/romance/ExtraRomance.gf b/next-lib/src/romance/ExtraRomance.gf
deleted file mode 100644
index 9bddb29f3..000000000
--- a/next-lib/src/romance/ExtraRomance.gf
+++ /dev/null
@@ -1,21 +0,0 @@
-incomplete concrete ExtraRomance of ExtraRomanceAbs = CatRomance **
- open
- CommonRomance,
- Coordination,
- ResRomance in {
-
- lin TPasseSimple = {s = []} ** {t = RPasse} ; --# notpresent
-
- lincat
- VPI = {s : Str} ;
- [VPI] = {s1,s2 : Str} ;
- lin
- BaseVPI = twoSS ;
- ConsVPI = consrSS comma ;
-
- MkVPI vp = {s = infVP vp (agrP3 Masc Sg)} ;
- ConjVPI = conjunctDistrSS ;
- ComplVPIVV v vpi =
- insertComplement (\\a => prepCase v.c2.c ++ vpi.s) (predV v) ;
-
-}
diff --git a/next-lib/src/romance/ExtraRomanceAbs.gf b/next-lib/src/romance/ExtraRomanceAbs.gf
deleted file mode 100644
index ff5263e98..000000000
--- a/next-lib/src/romance/ExtraRomanceAbs.gf
+++ /dev/null
@@ -1,7 +0,0 @@
-abstract ExtraRomanceAbs = Cat, Extra[
- VPI,ListVPI,BaseVPI,ConsVPI,MkVPI,ComplVPIVV,ConjVPI,
- VV,VP,Conj] ** {
-
- fun TPasseSimple : Tense ; --# notpresent
-
-}
diff --git a/next-lib/src/romance/NounRomance.gf b/next-lib/src/romance/NounRomance.gf
deleted file mode 100644
index 3bc39aba8..000000000
--- a/next-lib/src/romance/NounRomance.gf
+++ /dev/null
@@ -1,159 +0,0 @@
-incomplete concrete NounRomance of Noun =
- CatRomance ** open CommonRomance, ResRomance, Prelude in {
-
- flags optimize=all_subs ;
-
- lin
- DetCN det cn =
- let
- g = cn.g ;
- n = det.n
- in heavyNP {
- s = \\c => det.s ! g ! c ++ cn.s ! n ++ det.s2 ;
- a = agrP3 g n ;
- hasClit = False
- } ;
-
- UsePN = pn2np ;
-
- UsePron p = p ;
-
- PredetNP pred np = heavyNP {
- s = \\c => pred.s ! aagr (np.a.g) (np.a.n) ! c ++ (np.s ! pred.c).ton ;
- a = np.a ;
- hasClit = False
- } ;
-
- PPartNP np v2 = heavyNP {
- s = \\c => (np.s ! c).ton ++ v2.s ! VPart np.a.g np.a.n ;
- a = np.a ;
- hasClit = False
- } ;
-
- RelNP np rs = heavyNP {
- s = \\c => (np.s ! c).ton ++ rs.s ! Indic ! np.a ;
- a = np.a ;
- hasClit = False
- } ;
-
- AdvNP np adv = heavyNP {
- s = \\c => (np.s ! c).ton ++ adv.s ;
- a = np.a ;
- hasClit = False
- } ;
-
- DetQuantOrd quant num ord = {
- s,sp = \\g,c => quant.s ! num.isNum ! num.n ! g ! c ++ num.s ! g ++
- ord.s ! aagr g num.n ;
- s2 = quant.s2 ;
- n = num.n
- } ;
-
- DetQuant quant num = {
- s = \\g,c => quant.s ! num.isNum ! num.n ! g ! c ++ num.s ! g ;
- sp = \\g,c => case num.isNum of {
- True => quant.s ! True ! num.n ! g ! c ++ num.s ! g ;
- False => quant.sp ! num.n ! g ! c ++ num.s ! g
- } ;
- s2 = quant.s2 ;
- n = num.n
- } ;
-
- DetNP det =
- let
- g = Masc ; ---- Fem in Extra
- n = det.n
- in heavyNP {
- s = det.sp ! g ;
- a = agrP3 g n ;
- hasClit = False
- } ;
-
- PossPron p = {
- s = \\_,n,g,c => possCase g n c ++ p.poss ! n ! g ; ---- il mio!
- sp = \\ n,g,c => possCase g n c ++ p.poss ! n ! g ; ---- not for Fre
- s2 = []
- } ;
-
- NumSg = {s = \\_ => [] ; isNum = False ; n = Sg} ;
- NumPl = {s = \\_ => [] ; isNum = False ; n = Pl} ;
-
- NumCard n = n ** {isNum = True} ;
-
- NumDigits nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
- OrdDigits nu = {s = \\a => nu.s ! NOrd a.g a.n} ;
-
- NumNumeral nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
- OrdNumeral nu = {s = \\a => nu.s ! NOrd a.g a.n} ;
-
- AdNum adn num = {s = \\a => adn.s ++ num.s ! a ; isNum = num.isNum ; n = num.n} ;
-
- OrdSuperl adj = {s = \\a => adj.s ! Superl ! AF a.g a.n} ;
-
- DefArt = {
- s = \\_,n,g,c => artDef g n c ;
- sp = \\n,g,c => artDef g n c ; ---- not for Fre
- s2 = []
- } ;
-
- IndefArt = {
- s = \\b,n,g,c => if_then_Str b (prepCase c) (artIndef g n c) ;
- sp = \\n,g,c => artIndef g n c ; ---- not for Fre
- s2 = []
- } ;
-
- MassNP cn = let
- g = cn.g ;
- n = Sg
- in heavyNP {
- s = \\c => partitive g c ++ cn.s ! n ;
- a = agrP3 g n ;
- hasClit = False
- } ;
-
--- This is based on record subtyping.
-
- UseN, UseN2 = \noun -> noun ;
-
- Use2N3 f = f ;
-
- Use3N3 f = f ** {c2 = f.c3} ;
-
- ComplN2 f x = {
- s = \\n => f.s ! n ++ appCompl f.c2 x ;
- g = f.g ;
- } ;
-
- ComplN3 f x = {
- s = \\n => f.s ! n ++ appCompl f.c2 x ;
- g = f.g ;
- c2 = f.c3
- } ;
-
- AdjCN ap cn =
- let
- g = cn.g
- in {
- s = \\n => preOrPost ap.isPre (ap.s ! (AF g n)) (cn.s ! n) ;
- g = g ;
- } ;
-
- RelCN cn rs = let g = cn.g in {
- s = \\n => cn.s ! n ++ rs.s ! Indic ! agrP3 g n ; --- mood
- g = g
- } ;
- SentCN cn sc = let g = cn.g in {
- s = \\n => cn.s ! n ++ sc.s ;
- g = g
- } ;
- AdvCN cn sc = let g = cn.g in {
- s = \\n => cn.s ! n ++ sc.s ;
- g = g
- } ;
-
- ApposCN cn np = let g = cn.g in {
- s = \\n => cn.s ! n ++ (np.s ! Nom).ton ;
- g = g
- } ;
-
-}
diff --git a/next-lib/src/romance/PhraseRomance.gf b/next-lib/src/romance/PhraseRomance.gf
deleted file mode 100644
index e9416284b..000000000
--- a/next-lib/src/romance/PhraseRomance.gf
+++ /dev/null
@@ -1,27 +0,0 @@
-incomplete concrete PhraseRomance of Phrase =
- CatRomance ** open CommonRomance, ResRomance, Prelude in {
-
- flags optimize = all_subs ;
-
- lin
- PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
-
- UttS s = {s = s.s ! Indic} ;
- UttQS qs = {s = qs.s ! QDir} ;
- UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg False ! Fem} ;
- UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Pl False ! Fem} ;
- UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True ! Fem} ;
-
- UttIP ip = {s = ip.s ! Nom} ; --- Acc also
- UttIAdv iadv = iadv ;
- UttNP np = {s = (np.s ! Nom).ton} ;
- UttVP vp = {s = infVP vp (agrP3 Fem Sg)} ; --- Agr
- UttAdv adv = adv ;
-
- NoPConj = {s = []} ;
- PConjConj conj = {s = conj.s2} ;
-
- NoVoc = {s = []} ;
- VocNP np = {s = "," ++ (np.s ! Nom).ton} ;
-
-}
diff --git a/next-lib/src/romance/QuestionRomance.gf b/next-lib/src/romance/QuestionRomance.gf
deleted file mode 100644
index 09a6e5e9e..000000000
--- a/next-lib/src/romance/QuestionRomance.gf
+++ /dev/null
@@ -1,113 +0,0 @@
-incomplete concrete QuestionRomance of Question =
- CatRomance ** open CommonRomance, ResRomance, Prelude in {
-
- flags optimize=all_subs ;
-
- lin
-
- QuestCl cl = {
- s = \\t,a,p =>
- let cls = cl.s ! DDir ! t ! a ! p ---- DInv?
- in table {
- QDir => cls ! Indic ;
- QIndir => subjIf ++ cls ! Indic
- }
- } ;
-
- QuestVP qp vp = {
- s = \\t,a,b,_ =>
- let
- cl = mkClause (qp.s ! Nom) False (agrP3 qp.a.g qp.a.n) vp
- in
- cl.s ! DDir ! t ! a ! b ! Indic
- } ;
-
- QuestSlash ip slash = {
- s = \\t,a,p =>
- let
- cls : Direct -> Str =
- \d -> slash.s ! ip.a ! d ! t ! a ! p ! Indic ;
- who = slash.c2.s ++ ip.s ! slash.c2.c
- in table {
- QDir => who ++ cls DInv ;
- QIndir => who ++ cls DDir
- }
- } ;
-
- QuestIAdv iadv cl = {
- s = \\t,a,p,q =>
- let
- ord = case q of {
- QDir => DInv ;
- QIndir => DDir
- } ;
- cls = cl.s ! ord ! t ! a ! p ! Indic ;
- why = iadv.s
- in why ++ cls
- } ;
-
- QuestIComp icomp np = {
- s = \\t,a,p,_ =>
- let
- vp = predV copula ;
- cls = (mkClause (np.s ! Nom).comp np.hasClit np.a vp).s !
- DInv ! t ! a ! p ! Indic ;
- why = icomp.s ! {g = np.a.g ; n = np.a.n}
- in why ++ cls
- } ;
-
- PrepIP p ip = {
- s = p.s ++ ip.s ! p.c
- } ;
-
- AdvIP ip adv = {
- s = \\c => ip.s ! c ++ adv.s ;
- a = ip.a
- } ;
-
- IdetCN idet cn =
- let
- g = cn.g ;
- n = idet.n ;
- a = aagr g n
- in {
- s = \\c => idet.s ! g ! c ++ cn.s ! n ;
- a = a
- } ;
-
- IdetIP idet =
- let
- g = Masc ; ---- Fem in Extra
- n = idet.n ;
- a = aagr g n
- in {
- s = \\c => idet.s ! g ! c ;
- a = a
- } ;
-
- IdetQuant idet num =
- let
- n = num.n ;
- in {
- s = \\g,c => idet.s ! n ! g ! c ++ num.s ! g ;
- n = n
- } ;
-
-
- CompIAdv a = {s = \\_ => a.s} ;
-
- CompIP p = {s = \\_ => p.s ! Nom} ;
-
-}
-
-{- ---b
- IDetCN idet num ord cn =
- let
- g = cn.g ;
- n = idet.n ;
- a = aagr g n
- in {
- s = \\c => idet.s ! g ! c ++ num.s ! g ++ ord.s ! a ++ cn.s ! n ;
- a = a
- } ;
--}
diff --git a/next-lib/src/romance/RelativeRomance.gf b/next-lib/src/romance/RelativeRomance.gf
deleted file mode 100644
index f8d3f466f..000000000
--- a/next-lib/src/romance/RelativeRomance.gf
+++ /dev/null
@@ -1,50 +0,0 @@
-incomplete concrete RelativeRomance of Relative =
- CatRomance ** open Prelude, CommonRomance, ResRomance in {
-
- flags optimize=all_subs ;
-
- lin
-
- RelCl cl = {
- s = \\ag,t,a,p,m => pronSuch ! ag ++ conjThat ++
- cl.s ! DDir ! t ! a ! p ! m ;
- c = Nom
- } ;
-
- --- more efficient to compile than case inside mkClause; see log.txt
- RelVP rp vp = case rp.hasAgr of {
- True => {s = \\ag =>
- (mkClause
- (rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) False
- {g = rp.a.g ; n = rp.a.n ; p = P3}
- vp).s ! DDir ; c = Nom} ;
- False => {s = \\ag =>
- (mkClause
- (rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) False
- ag
- vp).s ! DDir ; c = Nom
- }
- } ;
-
- RelSlash rp slash = {
- s = \\ag,t,a,p,m =>
- let aag = {g = ag.g ; n = ag.n}
- in
- slash.c2.s ++
- rp.s ! False ! aag ! slash.c2.c ++
- slash.s ! aag ! DDir ! t ! a ! p ! m ; --- ragr
- c = Acc
- } ;
-
- FunRP p np rp = {
- s = \\_,a,c => (np.s ! Nom).ton ++ p.s ++ rp.s ! True ! a ! p.c ;
- a = {g = np.a.g ; n = np.a.n} ;
- hasAgr = True
- } ;
- IdRP = {
- s = relPron ;
- a = {g = Masc ; n = Sg} ;
- hasAgr = False
- } ;
-
-}
diff --git a/next-lib/src/romance/ResRomance.gf b/next-lib/src/romance/ResRomance.gf
deleted file mode 100644
index ea3e215ab..000000000
--- a/next-lib/src/romance/ResRomance.gf
+++ /dev/null
@@ -1,328 +0,0 @@
---1 Romance auxiliary operations.
---
-
-interface ResRomance = DiffRomance ** open CommonRomance, Prelude in {
-
-flags optimize=all ;
-
---2 Constants uniformly defined in terms of language-dependent constants
-
-oper
-
- nominative : Case = Nom ;
- accusative : Case = Acc ;
-
---e Pronoun = {s : NPForm => Str ; a : Agr ; hasClit : Bool} ;
- NounPhrase : Type = {
- s : Case => {c1,c2,comp,ton : Str} ;
- a : Agr ;
- hasClit : Bool
- } ;
- Pronoun : Type = NounPhrase ** {
- poss : Number => Gender => Str ---- also: substantival
- } ;
-
- heavyNP : {s : Case => Str ; a : Agr} -> NounPhrase = \np -> {
- s = \\c => {comp,ton = np.s ! c ; c1,c2 = []} ;
- a = np.a ;
- hasClit = False
- } ;
---e
-
- Compl : Type = {s : Str ; c : Case ; isDir : Bool} ;
-
- complAcc : Compl = {s = [] ; c = accusative ; isDir = True} ;
- complGen : Compl = {s = [] ; c = genitive ; isDir = False} ;
- complDat : Compl = {s = [] ; c = dative ; isDir = True} ;
-
---e
- pn2np : {s : Str ; g : Gender} -> NounPhrase = \pn -> heavyNP {
- s = \\c => prepCase c ++ pn.s ;
- a = agrP3 pn.g Sg
- } ;
-
- npform2case : NPForm -> Case = \p -> case p of {
- Ton x => x ;
- Poss _ => genitive ;
- Aton x => x
- } ;
-
- case2npform : Case -> NPForm = \c -> case c of {
- Nom => Ton Nom ;
- Acc => Ton Acc ;
- _ => Ton c
- } ;
-
--- Pronouns in $NP$ lists are always in stressed forms.
-
- stressedCase : NPForm -> NPForm = \c -> case c of {
- Aton k => Ton k ;
- _ => c
- } ;
-
- appCompl : Compl -> NounPhrase -> Str = \comp,np ->
- comp.s ++ (np.s ! comp.c).ton ;
---e appCompl : Compl -> (NPForm => Str) -> Str = \comp,np ->
---e comp.s ++ np ! Ton comp.c ;
-
- oper
-
- VP : Type = {
- s : Verb ;
- agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
- neg : Polarity => (Str * Str) ; -- ne-pas
- clit1 : Str ; -- le/se
- clit2 : Str ; -- lui
- clit3 : Str ; -- y en
- comp : Agr => Str ; -- content(e) ; à ma mère ; hier
- ext : Polarity => Str ; -- que je dors / que je dorme
- } ;
-
-
- useVP : VP -> VPC = \vp ->
- let
- verb = vp.s ;
- vfin : TMood -> Agr -> Str = \tm,a -> verb.s ! VFin tm a.n a.p ;
- vpart : AAgr -> Str = \a -> verb.s ! VPart a.g a.n ;
- vinf : Bool -> Str = \b -> verb.s ! VInfin b ;
- vger = verb.s ! VGer ;
-
- typ = verb.vtyp ;
- aux = auxVerb typ ;
-
- habet : TMood -> Agr -> Str = \tm,a -> aux ! VFin tm a.n a.p ;
- habere : Str = aux ! VInfin False ;
-
- vimp : Agr -> Str = \a -> case <a.n,a.p> of {
- <Pl,P1> => verb.s ! VImper PlP1 ;
- <_, P3> => verb.s ! VFin (VPres Conjunct) a.n P3 ;
- <Sg,_> => verb.s ! VImper SgP2 ;
- <Pl,_> => verb.s ! VImper PlP2
- } ;
-
- vf : (Agr -> Str) -> (AAgr -> Str) -> {
- fin : Agr => Str ;
- inf : AAgr => Str
- } =
- \fin,inf -> {
- fin = \\a => fin a ;
- inf = \\a => inf a
- } ;
-
- in {
- s = table {
- VPFinite t Simul => vf (vfin t) (\_ -> []) ;
- VPFinite t Anter => vf (habet t) vpart ; --# notpresent
- VPInfinit Anter b=> vf (\_ -> []) (\a -> habere ++ vpart a) ; --# notpresent
- VPImperat => vf vimp (\_ -> []) ;
- VPGerund => vf (\_ -> []) (\_ -> vger) ;
- VPInfinit Simul b=> vf (\_ -> []) (\_ -> vinf b)
- } ;
- agr = vp.agr ;
- neg = vp.neg ;
- clit1 = vp.clit1 ;
- clit2 = vp.clit2 ;
- clit3 = vp.clit3 ;
- comp = vp.comp ;
- ext = vp.ext
- } ;
-
- predV : Verb -> VP = \verb ->
- let
- typ = verb.vtyp ;
- in {
- s = {s = verb.s ; vtyp = typ} ;
- agr = partAgr typ ;
- neg = negation ;
-{- ----e
- clAcc = case isVRefl typ of {
- True => CRefl ;
- _ => CNone
- } ;
--}
- clit1 = [] ;
- clit2 = [] ;
- clit3 = [] ;
- comp = \\a => [] ;
- ext = \\p => []
- } ;
-
- insertObject : Compl -> NounPhrase -> VP -> VP = \c,np,vp ->
- let
- obj = np.s ! c.c ;
-
-{- ----e
- vpacc = vp.clAcc ;
- vpdat = vp.clDat ;
- vpagr = vp.agr ;
- npa = np.a ;
- cpron = CPron npa.g npa.n npa.p ;
- noNewClit = <vpacc, vpdat, appCompl c np.s, vpagr> ;
-
- cc : CAgr * CAgr * Str * VPAgr = case <np.hasClit,c.isDir> of {
- <True,True> => case c.c of {
- Acc => <cpron, vpdat, [], vpAgrClit npa> ;
- _ => <vpacc, cpron, [], vpagr> -- must be dat
- } ;
- _ => noNewClit
- } ;
--} ----e
-
- in {
- s = vp.s ;
- agr = vp.agr ; ----e
- clit1 = vp.clit1 ++ obj.c1 ;
- clit2 = vp.clit2 ++ obj.c2 ;
- clit3 = vp.clit3 ;
- comp = \\a => vp.comp ! a ++ c.s ++ obj.comp ;
-----e agr = cc.p4 ;
----- clAcc = cc.p1 ;
----- clDat = cc.p2 ;
-----e comp = \\a => cc.p3 ++ vp.comp ! a ;
- neg = vp.neg ;
- ext = vp.ext ;
- } ;
-
- insertComplement : (Agr => Str) -> VP -> VP = \co,vp -> {
- s = vp.s ;
- agr = vp.agr ;
- clit1 = vp.clit1 ;
- clit2 = vp.clit2 ;
- clit3 = vp.clit3 ;
- neg = vp.neg ;
- comp = \\a => vp.comp ! a ++ co ! a ;
- ext = vp.ext ;
- } ;
-
-
--- Agreement with preceding relative or interrogative:
--- "les femmes que j'ai aimées"
-
- insertAgr : AAgr -> VP -> VP = \ag,vp -> {
- s = vp.s ;
- agr = vpAgrClit (agrP3 ag.g ag.n) ;
- clit1 = vp.clit1 ;
- clit2 = vp.clit2 ;
- clit3 = vp.clit3 ;
- neg = vp.neg ;
- comp = vp.comp ;
- ext = vp.ext ;
- } ;
-
-----e
- insertRefl : VP -> VP = \vp -> {
- s = {s = vp.s.s ; vtyp = vRefl} ;
- agr = vp.agr ;
- clit1 = vp.clit1 ;
- clit2 = vp.clit2 ;
- clit3 = vp.clit3 ;
- neg = vp.neg ;
- comp = vp.comp ;
- ext = vp.ext ;
- } ;
-
- insertAdv : Str -> VP -> VP = \co,vp -> {
- s = vp.s ;
- agr = vp.agr ;
- clit1 = vp.clit1 ;
- clit2 = vp.clit2 ;
- clit3 = vp.clit3 ;
- neg = vp.neg ;
- comp = \\a => vp.comp ! a ++ co ;
- ext = vp.ext ;
- } ;
-
- insertAdV : Str -> VP -> VP = \co,vp -> {
- s = vp.s ;
- agr = vp.agr ;
- clit1 = vp.clit1 ;
- clit2 = vp.clit2 ;
- clit3 = vp.clit3 ;
- neg = \\b => let vpn = vp.neg ! b in {p1 = vpn.p1 ; p2 = vpn.p2 ++ co} ;
- comp = vp.comp ;
- ext = vp.ext ;
- } ;
-
- insertClit3 : Str -> VP -> VP = \co,vp -> {
- s = vp.s ;
- agr = vp.agr ;
- clit1 = vp.clit1 ;
- clit2 = vp.clit2 ;
- clit3 = vp.clit3 ++ co ;
- neg = vp.neg ;
- comp = vp.comp ;
- ext = vp.ext ;
- } ;
-
- insertExtrapos : (Polarity => Str) -> VP -> VP = \co,vp -> {
- s = vp.s ;
- agr = vp.agr ;
- clit1 = vp.clit1 ;
- clit2 = vp.clit2 ;
- clit3 = vp.clit3 ;
- neg = vp.neg ;
- comp = vp.comp ;
- ext = \\p => vp.ext ! p ++ co ! p ;
- } ;
-
- mkVPSlash : Compl -> VP -> VP ** {c2 : Compl} = \c,vp -> vp ** {c2 = c} ;
-
- mkClause : Str -> Bool -> Agr -> VP ->
- {s : Direct => RTense => Anteriority => Polarity => Mood => Str} =
- \subj,hasClit,agr,vpr -> {
- s = \\d,t,a,b,m =>
- let
- tm = case t of {
- RPast => VImperf m ; --# notpresent
- RFut => VFut ; --# notpresent
- RCond => VCondit ; --# notpresent
- RPasse => VPasse ; --# notpresent
- RPres => VPres m
- } ;
- vp = useVP vpr ;
- vps = vp.s ! VPFinite tm a ;
- verb = vps.fin ! agr ;
- inf = vps.inf ! (appVPAgr vp.agr (aagr agr.g agr.n)) ; --- subtype bug
- neg = vp.neg ! b ;
---e clpr = pronArg agr.n agr.p vp.clAcc vp.clDat ;
---e compl = clpr.p2 ++ vp.comp ! agr ++ vp.ext ! b
- clit = vp.clit1 ++ vp.clit2 ++ vp.clit3 ;
- compl = vp.comp ! agr ++ vp.ext ! b
- in
- case d of {
- DDir =>
- subj ++ neg.p1 ++ clit ++ verb ++ neg.p2 ++ inf ;
- DInv =>
- neg.p1 ++ clit ++ verb ++ preOrPost hasClit subj (neg.p2 ++ inf)
- }
- ++ compl
- } ;
---- in French, pronouns should
---- have a "-" with possibly a special verb form with "t":
---- "comment fera-t-il" vs. "comment fera Pierre"
-
- infVP : VP -> Agr -> Str = \vpr,agr ->
- let
- vp = useVP vpr ;
-----e clpr = pronArg agr.n agr.p vp.clAcc vp.clDat ;
-----e iform = infForm agr.n agr.p vp.clAcc vp.clDat ;
- clpr = <vp.clit1,vp.clit2, False> ; ----e
- iform = False ; ----e
- inf = (vp.s ! VPInfinit Simul iform).inf ! (aagr agr.g agr.n) ;
- neg = vp.neg ! Pos ; --- Neg not in API
- obj = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! Pos ---- pol
- in
- clitInf clpr.p3 (clpr.p1 ++ vp.clit3) inf ++ obj ;
-
-}
-
--- insertObject:
--- p -cat=Cl -tr "la femme te l' envoie"
--- PredVP (DetCN (DetSg DefSg NoOrd) (UseN woman_N))
--- (ComplV3 send_V3 (UsePron he_Pron) (UsePron thou_Pron))
--- la femme te l' a envoyé
---
--- p -cat=Cl -tr "la femme te lui envoie"
--- PredVP (DetCN (DetSg DefSg NoOrd) (UseN woman_N))
--- (ComplV3 send_V3 (UsePron thou_Pron) (UsePron he_Pron))
--- la femme te lui a envoyée
diff --git a/next-lib/src/romance/SentenceRomance.gf b/next-lib/src/romance/SentenceRomance.gf
deleted file mode 100644
index beb393df8..000000000
--- a/next-lib/src/romance/SentenceRomance.gf
+++ /dev/null
@@ -1,76 +0,0 @@
-incomplete concrete SentenceRomance of Sentence =
- CatRomance ** open Prelude, CommonRomance, ResRomance in {
-
- flags optimize=all_subs ;
-
- lin
- PredVP np vp = mkClause (np.s ! Nom).comp np.hasClit np.a vp ;
-
- PredSCVP sc vp = mkClause sc.s False (agrP3 Masc Sg) vp ;
-
- ImpVP vpr = let vp = useVP vpr in {
- s = \\p,i,g => case i of {
- ImpF n b => (mkImperative b P2 vp).s ! p ! (aagr g n)
- }
- } ;
-
- SlashVP np v2 =
- -- agreement decided afterwards: la fille qu'il a trouvée
- {s = \\ag =>
- let
- vp = v2
-----e vp = case <v2.c2.c, v2.c2.isDir> of {
----- <Acc,True> => insertAgr ag v2 ;
----- _ => v2
-----e }
- in (mkClause (np.s ! Nom).comp np.hasClit np.a vp).s ;
- c2 = v2.c2
- } ;
-
- AdvSlash slash adv = {
- s = \\ag,d,t,a,b,m => slash.s ! ag ! d ! t ! a ! b ! m ++ adv.s ;
- c2 = slash.c2
- } ;
-
- SlashPrep cl prep = {
- s = \\_ => cl.s ;
- c2 = {s = prep.s ; c = prep.c ; isDir = False}
- } ;
-
- SlashVS np vs slash =
- {s = \\ag =>
- (mkClause
- (np.s ! Nom).comp np.hasClit np.a
- (insertExtrapos (\\b => conjThat ++ slash.s ! ag ! (vs.m ! b))
- (predV vs))
- ).s ;
- c2 = slash.c2
- } ;
-
- EmbedS s = {s = conjThat ++ s.s ! Indic} ; --- mood
- EmbedQS qs = {s = qs.s ! QIndir} ;
- EmbedVP vp = {s = infVP vp (agrP3 Masc Sg)} ; --- agr ---- compl
-
- UseCl t p cl = {
- s = \\o => t.s ++ p.s ++ cl.s ! DDir ! t.t ! t.a ! p.p ! o
- } ;
- UseQCl t p cl = {
- s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! q
- } ;
- UseRCl t p cl = {
- s = \\r,ag => t.s ++ p.s ++ cl.s ! ag ! t.t ! t.a ! p.p ! r ;
- c = cl.c
- } ;
- UseSlash t p cl = {
- s = \\ag,mo =>
- t.s ++ p.s ++ cl.s ! ag ! DDir ! t.t ! t.a ! p.p ! mo ;
- c2 = cl.c2
- } ;
-
- AdvS a s = {s = \\o => a.s ++ "," ++ s.s ! o} ;
-
- RelS s r = {
- s = \\o => s.s ! o ++ "," ++ partQIndir ++ r.s ! Indic ! agrP3 Masc Sg
- } ;
-
-}
diff --git a/next-lib/src/romance/SymbolRomance.gf b/next-lib/src/romance/SymbolRomance.gf
deleted file mode 100644
index 7319b1010..000000000
--- a/next-lib/src/romance/SymbolRomance.gf
+++ /dev/null
@@ -1,41 +0,0 @@
-incomplete concrete SymbolRomance of Symbol =
- CatRomance ** open Prelude, CommonRomance, ResRomance in {
-
-lin
- SymbPN i = {s = i.s ; g = Masc} ;
- IntPN i = {s = i.s ; g = Masc} ;
- FloatPN i = {s = i.s ; g = Masc} ;
- NumPN i = {s = i.s!Masc ; g = Masc} ;
-
- CNIntNP cn i = heavyNP {
- s = \\c => prepCase c ++ cn.s ! Sg ++ i.s ;
- a = agrP3 cn.g Sg ;
- hasClit = False
- } ;
- CNSymbNP det cn xs = let g = cn.g in heavyNP {
- s = \\c => det.s ! g ! c ++ cn.s ! det.n ++ xs.s ;
- a = agrP3 g det.n ;
- hasClit = False
- } ;
- CNNumNP cn i = heavyNP {
- s = \\c => artDef cn.g Sg c ++ cn.s ! Sg ++ i.s ! Masc ;
- a = agrP3 cn.g Sg ;
- hasClit = False
- } ;
- SymbS sy = {s = \\_ => sy.s} ;
-
- SymbNum n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
- SymbOrd n = {s = \\_ => n.s ++ "."} ; ---
-
-lincat
-
- Symb, [Symb] = SS ;
-
-lin
-
- MkSymb s = s ;
-
- BaseSymb = infixSS "et" ; ----
- ConsSymb = infixSS "," ;
-
-}
diff --git a/next-lib/src/romance/VerbRomance.gf b/next-lib/src/romance/VerbRomance.gf
deleted file mode 100644
index 691905d3b..000000000
--- a/next-lib/src/romance/VerbRomance.gf
+++ /dev/null
@@ -1,119 +0,0 @@
-incomplete concrete VerbRomance of Verb =
- CatRomance ** open Prelude, CommonRomance, ResRomance in {
-
- flags optimize=all_subs ;
-
- lin
- UseV = predV ;
-
- ComplVV v vp =
- insertComplement (\\a => prepCase v.c2.c ++ infVP vp a) (predV v) ;
- ComplVS v s = insertExtrapos (\\b => conjThat ++ s.s ! (v.m ! b)) (predV v) ;
- ComplVQ v q = insertExtrapos (\\_ => q.s ! QIndir) (predV v) ;
- ComplVA v ap =
- insertComplement (\\a => ap.s ! AF a.g a.n) (predV v) ;
-
- SlashV2a v = mkVPSlash v.c2 (predV v) ;
-
- Slash2V3 v np = mkVPSlash v.c3 (insertObject v.c2 np (predV v)) ;
- Slash3V3 v np = mkVPSlash v.c2 (insertObject v.c3 np (predV v)) ;
-
- SlashV2V v vp =
- mkVPSlash v.c2
- (insertComplement
- (\\a => prepCase v.c2.c ++ infVP vp a)
- (predV v)) ;
-
- SlashV2S v s =
- mkVPSlash v.c2
- (insertExtrapos
- (\\b => conjThat ++ s.s ! Indic) ---- mood
- (predV v)) ;
-
- SlashV2Q v q =
- mkVPSlash v.c2
- (insertExtrapos
- (\\_ => q.s ! QIndir)
- (predV v)) ;
-
- {- ---- lincat should be fixed
- SlashV2A v ap =
-
- let af = case v.c3.isDir of {
- True => AF np.a.g np.a.n ; -- ... bleues
- _ => AF Masc Sg -- il les peint en bleu
- }
- -}
-
- SlashV2A v ap =
- let af = AF Masc Sg
- in
- mkVPSlash v.c2
- (insertComplement
- (\\_ => v.c3.s ++ prepCase v.c3.c ++ ap.s ! af)
- (predV v)) ;
-
- ComplSlash vp np = insertObject vp.c2 np vp ;
-
- ReflVP v = case v.c2.isDir of {
- True => insertRefl v ;
- False => insertComplement
- (\\a => v.c2.s ++ reflPron a.n a.p v.c2.c) v
- } ;
-
- SlashVV v vp =
- mkVPSlash vp.c2
- (insertComplement (\\a => prepCase v.c2.c ++ infVP vp a) (predV v)) ;
-
- SlashV2VNP v np vp =
- mkVPSlash vp.c2
- (insertComplement
- (\\a => prepCase v.c2.c ++ infVP vp a)
- (insertObject v.c2 np (predV v))) ;
-
- UseComp comp = insertComplement comp.s (predV copula) ;
-
- CompAP ap = {s = \\ag => ap.s ! AF ag.g ag.n} ;
- CompNP np = {s = \\_ => (np.s ! Nom).ton} ;
- CompAdv a = {s = \\_ => a.s} ;
-
- AdvVP vp adv = insertAdv adv.s vp ;
- AdVVP adv vp = insertAdV adv.s vp ;
-
- PassV2 v = insertComplement (\\a => v.s ! VPart a.g a.n) (predV auxPassive) ;
-
-}
-
-{---b
- ComplV2 v np1 = insertObject v.c2 np1 (predV v) ;
- ComplV3 v np1 np2 = insertObject v.c3 np2 (insertObject v.c2 np1 (predV v)) ;
-
- ComplV2V v np vp =
- insertComplement (\\a => prepCase v.c2.c ++ infVP vp a)
- (insertObject v.c2 np (predV v)) ;
- ComplV2S v np s =
- insertExtrapos (\\b => s.s ! Indic) ---- mood
- (insertObject v.c2 np (predV v)) ;
- ComplV2Q v np q =
- insertExtrapos (\\_ => q.s ! QIndir)
- (insertObject v.c2 np (predV v)) ;
-
- ComplV2A v np ap =
- let af = case v.c3.isDir of {
- True => AF np.a.g np.a.n ; -- ... bleues
- _ => AF Masc Sg -- il les peint en bleu
- }
- in
- insertComplement
- (\\a => v.c3.s ++ prepCase v.c3.c ++ ap.s ! af)
- (insertObject v.c2 np (predV v)) ;
-
- ReflV2 v = case v.c2.isDir of {
- True => predV {s = v.s ; vtyp = vRefl} ;
- False => insertComplement
- (\\a => v.c2.s ++ reflPron a.n a.p v.c2.c) (predV v)
- } ;
-
- UseVS, UseVQ = \vv -> {s = vv.s ; c2 = complAcc ; vtyp = vv.vtyp} ;
--}
-