summaryrefslogtreecommitdiff
path: root/next-lib/src/italian/MorphoIta.gf
diff options
context:
space:
mode:
Diffstat (limited to 'next-lib/src/italian/MorphoIta.gf')
-rw-r--r--next-lib/src/italian/MorphoIta.gf190
1 files changed, 0 insertions, 190 deletions
diff --git a/next-lib/src/italian/MorphoIta.gf b/next-lib/src/italian/MorphoIta.gf
deleted file mode 100644
index 43f58fa0e..000000000
--- a/next-lib/src/italian/MorphoIta.gf
+++ /dev/null
@@ -1,190 +0,0 @@
---# -path=.:../romance:../common:../../prelude
-
---1 A Simple Italian Resource Morphology
---
--- Aarne Ranta 2002 -- 2005
---
--- This resource morphology contains definitions needed in the resource
--- syntax. To build a lexicon, it is better to use $ParadigmsIta$, which
--- gives a higher-level access to this module.
-
-resource MorphoIta = CommonRomance, ResIta **
- open PhonoIta, Prelude, Predef in {
-
- flags optimize=all ;
-
-
-
---2 Nouns
---
--- The following macro is useful for creating the forms of number-dependent
--- tables, such as common nouns.
-
-oper
- numForms : (_,_ : Str) -> Number => Str = \vino, vini ->
- table {Sg => vino ; Pl => vini} ;
-
--- For example:
-
- nomVino : Str -> Number => Str = \vino -> let {vin = Predef.tk 1 vino} in
- numForms vino (vin + "i") ;
-
- nomRana : Str -> Number => Str = \rana -> let {ran = Predef.tk 1 rana} in
- numForms rana (ran + "e") ;
-
- nomSale : Str -> Number => Str = \sale -> let {sal = Predef.tk 1 sale} in
- numForms sale (sal + "i") ;
-
- nomTram : Str -> Number => Str = \tram ->
- numForms tram tram ;
-
--- Common nouns are inflected in number and have an inherent gender.
-
- mkNoun : (Number => Str) -> Gender -> Noun = \mecmecs,gen ->
- {s = mecmecs ; g = gen} ;
-
- mkNounIrreg : Str -> Str -> Gender -> Noun = \mec,mecs ->
- mkNoun (numForms mec mecs) ;
-
- mkNomReg : Str -> Noun = \vino ->
- let
- o = last vino ;
- vin = init vino ;
- n = last vin
- in
- case o of {
- "o" => {s = case n of {
- "c" | "g" => numForms vino (vin + "hi") ;
- "i" => numForms vino vin ;
- _ => numForms vino (vin + "i")
- } ; g = Masc} ;
- "a" => {s = case n of {
- "c" | "g" => numForms vino (vin + "he") ;
- _ => numForms vino (vin + "e")
- } ; g = Fem} ;
- "e" => {s = numForms vino (vin + "i")
- ; g = Masc} ;
- "à" | "ù" => {s = numForms vino vino
- ; g = Fem} ;
- _ => {s = numForms vino vino
- ; g = Masc}
- } ;
-
-
-
---2 Adjectives
---
--- Adjectives are conveniently seen as gender-dependent nouns.
--- Here are some patterns. First one that describes the worst case.
-
- mkAdj : (_,_,_,_,_ : Str) -> Adj = \solo,sola,soli,sole,solamente ->
- {s = table {
- AF Masc n => numForms solo soli ! n ;
- AF Fem n => numForms sola sole ! n ;
- AA => solamente
- }
- } ;
-
--- Then the regular and invariant patterns.
-
- adjSolo : Str -> Adj = \solo ->
- let
- sol = Predef.tk 1 solo
- in
- mkAdj solo (sol + "a") (sol + "i") (sol + "e") (sol + "amente") ;
-
- adjTale : Str -> Adj = \tale ->
- let
- tal = Predef.tk 1 tale ;
- tali = tal + "i" ;
- tala = if_then_Str (pbool2bool (Predef.occur (Predef.dp 1 tal) "lr")) tal tale
- in
- mkAdj tale tale tali tali (tala + "mente") ;
-
- adjBlu : Str -> Adj = \blu ->
- mkAdj blu blu blu blu blu ; ---
-
-
- mkAdjReg : Str -> Adj = \solo ->
- let
- o = last solo ;
- sol = init solo ;
- l = last sol ;
- solamente = (sol + "amente")
- in
- case o of {
- "o" => case l of {
- "c" | "g" => mkAdj solo (sol + "a") (sol + "hi") (sol + "he") solamente ;
- "i" => mkAdj solo (sol + "a") sol (sol + "e") solamente ;
- _ => mkAdj solo (sol + "a") (sol + "i") (sol + "e") solamente
- } ;
- "e" => mkAdj solo solo (sol + "i") (sol + "i") (case l of {
- "l" => sol + "mente" ;
- _ => solo + "mente"
- }) ;
- _ => mkAdj solo solo solo solo (sol + "mente")
- } ;
-
-
---2 Personal pronouns
---
--- All the eight personal pronouns can be built by the following macro.
--- The use of "ne" as atonic genitive is debatable.
--- We follow the rule that the atonic nominative is empty.
--- (The form $glie$ is no longer used, and also the other clitics are
--- given in $DiffIta.argPron$ and therefore wouldn't be needed in the
--- pronoun itself.)
-
- mkPronoun : (_,_,_,_,_,_,_,_,_ : Str) ->
- Gender -> Number -> Person -> Pronoun =
- \il,le,lui,glie,Lui,son,sa,ses,see,g,n,p ->
- let
- alui : Case -> Str = \x -> prepCase x ++ Lui ;
- in {
- s = table {
- Nom => {c1 = [] ; c2 = [] ; comp = il ; ton = Lui} ;
- Acc => {c1 = le ; c2 = [] ; comp = [] ; ton = Lui} ;
- CPrep P_a => {c1 = [] ; c2 = lui ; comp = [] ; ton = alui (CPrep P_a)} ;
- c => {c1 = [] ; c2 = [] ; comp, ton = alui c}
- } ;
- ----e glie??
- poss = \\n,g => case <n,g> of {
- <Sg,Masc> => son ;
- <Sg,Fem> => sa ;
- <Pl,Masc> => ses ;
- <Pl,Fem> => see
- } ;
- a = {g = g ; n = n ; p = p} ;
- hasClit = True
- } ;
-
-{- --e
- mkPronoun : (_,_,_,_,_,_,_,_,_ : Str) ->
- Gender -> Number -> Person -> Pronoun =
- \il,le,lui,glie,Lui,son,sa,ses,see,g,n,p ->
- {s = table {
- Ton Nom => il ;
- Ton x => prepCase x ++ Lui ;
- Aton Nom => strOpt il ; -- [] or il
- Aton Acc => le ;
- Aton (CPrep P_di) => "ne" ; --- hmm
- Aton (CPrep P_a) => lui ;
- Aton q => prepCase q ++ Lui ; ---- GF bug with c or p!
- Poss {n = Sg ; g = Masc} => son ;
- Poss {n = Sg ; g = Fem} => sa ;
- Poss {n = Pl ; g = Masc} => ses ;
- Poss {n = Pl ; g = Fem} => see
- } ;
- a = {g = g ; n = n ; p = p} ;
- hasClit = True
- } ;
--}
-
---2 Determiners
---
--- Determiners, traditionally called indefinite pronouns, are inflected
--- in gender and number, like adjectives.
-
- pronForms : Adj -> Gender -> Number -> Str = \tale,g,n -> tale.s ! AF g n ;
-
-}