summaryrefslogtreecommitdiff
path: root/old-lib/resource/romance/DiffRomance.gf
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 /old-lib/resource/romance/DiffRomance.gf
parent3049b59b35b25381a7c6787444165c200d66e08b (diff)
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'old-lib/resource/romance/DiffRomance.gf')
-rw-r--r--old-lib/resource/romance/DiffRomance.gf115
1 files changed, 115 insertions, 0 deletions
diff --git a/old-lib/resource/romance/DiffRomance.gf b/old-lib/resource/romance/DiffRomance.gf
new file mode 100644
index 000000000..7f43f7639
--- /dev/null
+++ b/old-lib/resource/romance/DiffRomance.gf
@@ -0,0 +1,115 @@
+--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 Gender 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 ;
+
+
+}
+