diff options
| author | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
| commit | e89fdae2fa1626348d8025824a7469252fa85e42 (patch) | |
| tree | c7d46bbd0494043b4bd6f917a25a7687517d0547 /old-lib/resource/romance/DiffRomance.gf | |
| parent | 3049b59b35b25381a7c6787444165c200d66e08b (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.gf | 115 |
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 ; + + +} + |
