forked from GitHub/gf-core
GF summer school for Cat
This commit is contained in:
@@ -6,11 +6,11 @@ concrete ExtraCat of ExtraCatAbs = ExtraRomanceCat **
|
||||
-- "yo" "me" "me" "mí"
|
||||
-- "mi" "mi" "mis" "mis"
|
||||
-- Fem Sg P1 ;
|
||||
-- these8fem_NP = mkNP ["estas"] Fem Pl ;
|
||||
-- they8fem_Pron = mkPronoun
|
||||
-- "ellas" "las" "les" "ellas"
|
||||
-- "su" "su" "sus" "sus"
|
||||
-- Fem Pl P3 ;
|
||||
these8fem_NP = mkNP "aquestes" Fem Pl ;
|
||||
they8fem_Pron = mkPronoun
|
||||
"elles" "les" "les" "elles"
|
||||
"llur" "llur" "llurs"
|
||||
Fem Pl P3 ;
|
||||
-- this8fem_NP = pn2np (mkPN ["esta"] Fem) ;
|
||||
-- those8fem_NP = mkNP ["esas"] Fem Pl ;
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ oper
|
||||
regFN : Str -> N = \s -> femN (regN s) ;
|
||||
regMN : Str -> N = \s -> regN s ;
|
||||
irregMN : Str -> Str -> N = \pa,pans -> M.mkNounIrreg pa pans masculine ;
|
||||
saberV : V = verbV (saber_99 "saber") ;
|
||||
|
||||
lin
|
||||
airplane_N = regMN "avió" ;
|
||||
@@ -106,7 +107,8 @@ lin
|
||||
industry_N = regFN "indústria" ;
|
||||
iron_N = regMN "ferro" ;
|
||||
king_N = regMN "rei" ;
|
||||
know_V2 = dirV2 (verbV (saber_99 "saber")) ;
|
||||
know_V2 = dirV2 saberV ;
|
||||
know_VS = mkVS saberV;
|
||||
lake_N = regMN "llac" ;
|
||||
lamp_N = regFN "làmpada" ;
|
||||
learn_V2 = dirV2 (verbV (aprendre_6 "aprendre")) ;
|
||||
|
||||
@@ -1,45 +1,59 @@
|
||||
--# -path=.:../romance:../common:../../prelude
|
||||
|
||||
----1 A Simple Catalan 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 $ParadigmsCat$, which
|
||||
---- gives a higher-level access to this module.
|
||||
--1 A Simple Catalan Resource Morphology
|
||||
--
|
||||
-- Aarne Ranta 2002 -- 2005
|
||||
-- Jordi Saludes 2008: Derived from MorphoSpa.
|
||||
--
|
||||
-- This resource morphology contains definitions needed in the resource
|
||||
-- syntax. To build a lexicon, it is better to use $ParadigmsCat$, which
|
||||
-- gives a higher-level access to this module.
|
||||
|
||||
resource MorphoCat = CommonRomance, ResCat **
|
||||
open PhonoCat, Prelude, Predef in {
|
||||
|
||||
flags optimize=all ; coding=utf8 ;
|
||||
|
||||
--2 Nouns
|
||||
--
|
||||
-- flags optimize=all ;
|
||||
--
|
||||
--
|
||||
----2 Nouns
|
||||
----
|
||||
---- The following macro is useful for creating the forms of number-dependent
|
||||
---- tables, such as common nouns.
|
||||
--
|
||||
-- The following macro is useful for creating the forms of number-dependent
|
||||
-- tables, such as common nouns.
|
||||
-- gcc M2.3
|
||||
oper
|
||||
numForms : (_,_ : Str) -> Number => Str = \vi, vins ->
|
||||
table {Sg => vi ; Pl => vins} ;
|
||||
|
||||
-- For example:
|
||||
nomCep : Str -> Number => Str = \cep ->
|
||||
numForms cep (cep + "s") ;
|
||||
|
||||
nomHome : Str -> Number => Str = \home ->
|
||||
numForms home (home + "s") ;
|
||||
|
||||
nomDona : Str -> Number => Str = \dona ->
|
||||
numForms dona (init dona + "es") ;
|
||||
|
||||
nomDisc : Str -> Number => Str = \disc ->
|
||||
numForms disc (variants {disc + "s"; disc + "os"}) ;
|
||||
|
||||
-- nomPilar : Str -> Number => Str = \pilar ->
|
||||
-- numForms pilar (pilar + "es") ;
|
||||
--
|
||||
-- nomTram : Str -> Number => Str = \tram ->
|
||||
-- numForms tram tram ;
|
||||
--
|
||||
nomCasa : Str -> Str -> Number => Str = \es,casa ->
|
||||
numForms casa (init casa + es) ;
|
||||
|
||||
nomFre : Str -> Number => Str = \fre ->
|
||||
numForms fre (fre + "ns") ;
|
||||
|
||||
nomCas : Str -> Number => Str = \cas ->
|
||||
numForms cas (cas + "os") ;
|
||||
|
||||
nomTest : Str -> Number => Str = \test ->
|
||||
numForms test (variants {test + "s"; test + "os"}) ;
|
||||
|
||||
nomFaig : Str -> Number => Str = \faig ->
|
||||
let
|
||||
fa = Predef.tk 2 faig
|
||||
in
|
||||
numForms faig (variants {fa + "jos" ; faig + "s"}) ;
|
||||
|
||||
nomDesig : Str -> Number => Str = \desig ->
|
||||
let
|
||||
desi = Predef.tk 1 desig
|
||||
in
|
||||
numForms desig (variants {desi + "tjos" ; desi + "gs"}) ;
|
||||
|
||||
nomTemps : Str -> Number => Str = \temps ->
|
||||
numForms temps temps ;
|
||||
|
||||
-- Common nouns are inflected in number and have an inherent gender.
|
||||
|
||||
mkNoun : (Number => Str) -> Gender -> Noun = \noinois,gen ->
|
||||
@@ -49,89 +63,107 @@ oper
|
||||
mkNoun (numForms vi vins) ;
|
||||
|
||||
mkNomReg : Str -> Noun = \noi ->
|
||||
let
|
||||
mkNounMas : (Str -> Number => Str) -> Noun = \rule -> mkNoun (rule noi) Masc
|
||||
in
|
||||
case last noi of {
|
||||
"o" | "e" => mkNoun (nomHome noi) Masc ;
|
||||
"a" => mkNoun (nomDona noi) Fem ;
|
||||
"c" => mkNoun (nomDisc noi) Masc ;
|
||||
--- "u" => mkNounIrreg mec (init mec + "ces") Fem ;
|
||||
_ => mkNoun (nomHome noi) Masc
|
||||
} ;
|
||||
"a" => mkNoun (nomCasa "es" noi) Fem ;
|
||||
"s"|"x"|"ç" => mkNounMas nomCas ;
|
||||
"i"|"e" => mkNounMas nomFre ;
|
||||
"í" => mkNounMas (nomCasa "ins") ;
|
||||
"à" => mkNounMas (nomCasa "ans") ;
|
||||
"ó" => mkNounMas (nomCasa "ons") ;
|
||||
"g" => mkNounMas nomFaig ;
|
||||
_ => mkNounMas nomCep
|
||||
} ;
|
||||
|
||||
----2 Adjectives
|
||||
----
|
||||
--2 Adjectives
|
||||
--
|
||||
-- Adjectives are conveniently seen as gender-dependent nouns.
|
||||
-- Here are some patterns. First one that describes the worst case.
|
||||
-- gcc M2.1
|
||||
|
||||
mkAdj : (_,_,_,_,_ : Str) -> Adj = \petit,petita,petits,petites,petitament ->
|
||||
mkAdj : (_,_,_,_,_ : Str) -> Adj = \prim,prima,prims,primes,primament ->
|
||||
{s = table {
|
||||
AF Masc n => numForms petit petits ! n ;
|
||||
AF Fem n => numForms petita petites ! n ;
|
||||
AA => petitament
|
||||
AF Masc n => numForms prim prims ! n ;
|
||||
AF Fem n => numForms prima primes ! n ;
|
||||
AA => primament
|
||||
}
|
||||
} ;
|
||||
|
||||
---- Then the regular and invariant patterns.
|
||||
--
|
||||
-- adjfort : Str -> Adj = \solo ->
|
||||
-- let
|
||||
-- sol = Predef.tk 1 solo
|
||||
-- in
|
||||
-- mkAdj solo (sol + "a") (sol + "os") (sol + "as") (sol + "amente") ;
|
||||
--
|
||||
adjFort : Str -> Adj = \fort ->
|
||||
mkAdj fort (fort + "a") (fort + "s") (fort + "es") (fort + "ament") ;
|
||||
--
|
||||
-- adjBlu : Str -> Adj = \blu ->
|
||||
-- mkAdj blu blu blu blu blu ; ---
|
||||
--
|
||||
mkAdjReg : Str -> Adj = \fort -> adjFort fort ;
|
||||
{-
|
||||
case last solo of {
|
||||
"o" => adjSolo solo ;
|
||||
--- "e" => adjUtil solo (solo + "s") ;
|
||||
"a" =>
|
||||
_ => adjUtil solo (solo + "es")
|
||||
} ;
|
||||
-}
|
||||
--
|
||||
----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.
|
||||
--
|
||||
--- Then the regular and invariant patterns.
|
||||
|
||||
mkPronoun : (_,_,_,_,_,_,_,_ : Str) ->
|
||||
adjPrim : Str -> Adj = \prim ->
|
||||
mkAdj prim (prim + "a") (prim + "s") (prim + "es") (prim + "ament") ;
|
||||
|
||||
adjBlau : Str -> Str -> Adj = \blau,blava ->
|
||||
let
|
||||
blav = Predef.tk 1 blava
|
||||
in
|
||||
mkAdj blau blava (blau + "s") (blav + "es") (blava + "ment") ;
|
||||
|
||||
adjFondo : Str -> Adj = \fondo ->
|
||||
let
|
||||
fond = Predef.tk 1 fondo
|
||||
in
|
||||
adjBlau fondo (fond + "a") ;
|
||||
|
||||
adjBo : Str -> Adj = \bo ->
|
||||
mkAdj bo (bo + "na") (bo + "ns") (bo + "nes") (bo + "nament") ;
|
||||
|
||||
adjFidel : Str -> Adj = \fidel ->
|
||||
let
|
||||
fidels = fidel + "s"
|
||||
in
|
||||
mkAdj fidel fidel fidels fidels (fidel + "ment") ;
|
||||
|
||||
mkAdjReg : Str -> Adj = \prim ->
|
||||
case last prim of {
|
||||
"e"|"u"|"o" => adjFondo prim ;
|
||||
_ => adjPrim prim
|
||||
} ;
|
||||
|
||||
|
||||
--2 Personal pronouns
|
||||
--
|
||||
-- All the eight personal pronouns can be built by the following macro.
|
||||
-- The use of "en" as atonic genitive is debatable.
|
||||
|
||||
mkPronoun : (_,_,_,_,_,_,_ : Str) ->
|
||||
Gender -> Number -> Person -> Pronoun =
|
||||
\il,le,lui,Lui,son,sa,ses,see,g,n,p ->
|
||||
\ell,el,li,Ell,son,sa,ses,g,n,p ->
|
||||
let
|
||||
alui : Case -> Str = \x -> prepCase x ++ Lui ;
|
||||
aell : Case -> Str = \x -> prepCase x ++ Ell ;
|
||||
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}
|
||||
Nom => {c1 = [] ; c2 = [] ; comp = ell ; ton = Ell} ;
|
||||
Acc => {c1 = el ; c2 = [] ; comp = [] ; ton = Ell} ;
|
||||
CPrep P_a => {c1 = [] ; c2 = li ; comp = [] ; ton = aell (CPrep P_a)} ;
|
||||
c => {c1 = [] ; c2 = [] ; comp, ton = aell c}
|
||||
} ;
|
||||
poss = \\n,g => case <n,g> of {
|
||||
<Sg,Masc> => son ;
|
||||
<Sg,Fem> => sa ;
|
||||
<Pl,Masc> => ses ;
|
||||
<Pl,Fem> => see
|
||||
} ;
|
||||
|
||||
<Sg,Masc> => son ;
|
||||
<Sg,Fem> => sa ;
|
||||
_ => ses
|
||||
} ;
|
||||
a = {g = g ; n = n ; p = p} ;
|
||||
hasClit = True
|
||||
} ;
|
||||
|
||||
elisPoss : Str -> Str = \s ->
|
||||
pre {
|
||||
vocal => s + "on" ;
|
||||
_ => s + "a"
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
|
||||
--2 Determiners
|
||||
--
|
||||
--
|
||||
----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 ;
|
||||
--
|
||||
-- Determiners, traditionally called indefinite pronouns, are inflected
|
||||
-- in gender and number, like adjectives.
|
||||
|
||||
pronForms : Adj -> Gender -> Number -> Str = \tal,g,n -> tal.s ! AF g n ;
|
||||
|
||||
}
|
||||
|
||||
@@ -32,7 +32,9 @@ resource ParadigmsCat =
|
||||
BeschCat,
|
||||
CatCat in {
|
||||
|
||||
flags optimize=all ;
|
||||
flags
|
||||
optimize=all ;
|
||||
-- coding = utf8 ;
|
||||
|
||||
--2 Parameters
|
||||
--
|
||||
@@ -158,7 +160,7 @@ oper
|
||||
-- them to prefix ones (i.e. ones placed before the noun in
|
||||
-- modification, as in "gran casa"), the following function is
|
||||
-- provided.
|
||||
-- JS: What about vi bó -> bon vi ?
|
||||
-- JS: What about vi bÛ -> bon vi ?
|
||||
|
||||
prefixA : A -> A ;
|
||||
|
||||
@@ -191,7 +193,7 @@ oper
|
||||
|
||||
mkV : overload {
|
||||
|
||||
-- Regular verbs are ones inflected like "cantar", "perdre", "témer", "perdre", "servir", "dormir"
|
||||
-- Regular verbs are ones inflected like "cantar", "perdre", "tÈmer", "perdre", "servir", "dormir"
|
||||
-- The regular verb function works for models I, IIa, IIb and IIa
|
||||
-- The module $BeschCat$ gives the complete set of "Bescherelle" conjugations.
|
||||
|
||||
@@ -306,7 +308,7 @@ oper
|
||||
aN2 n = mkN2 n dative ;
|
||||
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
|
||||
|
||||
mk2PN x g = {s = x ; g = g} ** {lock_PN = <>} ;
|
||||
mk2PN x g = {s = x ; g = g; isPersonal = True ; lock_PN = <>} ;
|
||||
regPN x = mk2PN x g where {
|
||||
g = case last x of {
|
||||
"a" => feminine ;
|
||||
@@ -327,7 +329,7 @@ oper
|
||||
{s = table {Posit => a.s ! Posit ; _ => b.s ! Posit} ;
|
||||
isPre = a.isPre ; lock_A = <>} ;
|
||||
compADeg a =
|
||||
{s = table {Posit => a.s ! Posit ; _ => \\f => "más" ++ a.s ! Posit ! f} ;
|
||||
{s = table {Posit => a.s ! Posit ; _ => \\f => "més" ++ a.s ! Posit ! f} ;
|
||||
isPre = a.isPre ;
|
||||
lock_A = <>} ;
|
||||
regADeg a = compADeg (regA a) ;
|
||||
@@ -336,7 +338,7 @@ oper
|
||||
mkAdV x = ss x ** {lock_AdV = <>} ;
|
||||
mkAdA x = ss x ** {lock_AdA = <>} ;
|
||||
|
||||
regV x = -- cantar, perdre, témer, dormir, (servir)
|
||||
regV x = -- cantar, perdre, tÈmer, dormir, (servir)
|
||||
let
|
||||
verb = case (Predef.dp 2 x) of {
|
||||
"re" => perdre_83 x ;
|
||||
@@ -354,7 +356,7 @@ oper
|
||||
|
||||
special_ppV ve pa = {
|
||||
s = table {
|
||||
VPart g n => (adjFort pa).s ! AF g n ;
|
||||
VPart g n => (regA pa).s ! Posit ! AF g n ;
|
||||
p => ve.s ! p
|
||||
} ;
|
||||
lock_V = <> ;
|
||||
|
||||
@@ -13,7 +13,7 @@ lin
|
||||
} ;
|
||||
almost_AdA, almost_AdN = ss (variants {"quasi"; "gairebé"}) ;
|
||||
always_AdV = ss "sempre" ;
|
||||
although_Subj = ss "benché" ** {m = Conjunct} ;
|
||||
although_Subj = ss ["encara que"] ** {m = Conjunct} ;
|
||||
and_Conj = {s1 = [] ; s2 = etConj.s ; n = Pl} ;
|
||||
because_Subj = ss "perque" ** {m = Indic} ;
|
||||
before_Prep = {s = "abans" ; c = MorphoCat.genitive ; isDir = False} ;
|
||||
@@ -29,7 +29,7 @@ lin
|
||||
either7or_DConj = {s1,s2 = "o" ; n = Sg} ;
|
||||
everybody_NP = makeNP ["tothom"] Masc Sg ;
|
||||
every_Det = {s,sp = \\_,_ => "cada" ; n = Sg ; s2 = []} ;
|
||||
everything_NP = pn2np (mkPN ["tot"] Masc) ;
|
||||
everything_NP = pn2np (mkPN "tot" Masc) ;
|
||||
everywhere_Adv = ss ["a tot arreu"] ;
|
||||
few_Det = {
|
||||
s,sp = \\g,c => prepCase c ++ genForms "pocs" "poques" ! g ; n = Pl ; s2 = []} ;
|
||||
@@ -38,8 +38,7 @@ lin
|
||||
from_Prep = complGen ; ---
|
||||
he_Pron =
|
||||
mkPronoun
|
||||
"ell" "lo" "el" "ell"
|
||||
["el seu"] ["la seva"] ["els seus"] ["les seves"]
|
||||
"ell" "el" "li" "ell" ("son"|["el seu"]) ("sa"|["la seva"]) "ses"
|
||||
Masc Sg P3 ;
|
||||
here_Adv = mkAdv "aquí" ; -- acÌ
|
||||
here7to_Adv = mkAdv ["cap aquí"] ;
|
||||
@@ -52,14 +51,14 @@ lin
|
||||
i_Pron =
|
||||
mkPronoun
|
||||
"jo" "em" "em" "mi"
|
||||
["el meu"] ["la meva"] ["els meus"] ["les meves"]
|
||||
("mon"|["el meu"]) ("ma"|["la meva"]) "mes"
|
||||
Fem Sg P1 ;
|
||||
in_Prep = mkPrep "en" ;
|
||||
it_Pron =
|
||||
mkPronoun
|
||||
"ell" "lo" "el" "ell"
|
||||
["el seu"] ["la seva"] ["els seus"] ["les seves"]
|
||||
it_Pron = mkPronoun
|
||||
"ell" "ho" "li" "ell"
|
||||
["el seu"] ["la seva"] ["els seus"]
|
||||
Masc Sg P3 ;
|
||||
|
||||
less_CAdv = X.mkCAdv "menys" conjThan ; ----
|
||||
many_Det = {
|
||||
s,sp = \\g,c => prepCase c ++ genForms "molts" "moltes" ! g ; n = Pl ; s2 = []} ;
|
||||
@@ -80,8 +79,8 @@ lin
|
||||
quite_Adv = ss "bastant" ;
|
||||
she_Pron =
|
||||
mkPronoun
|
||||
"ella" "la" "la" "ella"
|
||||
["el seu"] ["la seva"] ["els seus"] ["les seves"]
|
||||
"ella" "la" "li" "ella"
|
||||
("son"|["el seu"]) ("sa"|["la seva"]) "ses"
|
||||
Fem Sg P3 ;
|
||||
so_AdA = ss "tan" ;
|
||||
somebody_NP = pn2np (mkPN ["alg˙"] Masc) ;
|
||||
@@ -107,7 +106,7 @@ lin
|
||||
therefore_PConj = ss ["per tant"] ;
|
||||
they_Pron = mkPronoun
|
||||
"elles" "les" "les" "elles"
|
||||
["el seu"] ["la seva"] ["llurs"] ["llurs"]
|
||||
"llur" "llur" "llurs"
|
||||
Fem Pl P3 ;
|
||||
|
||||
this_Quant =
|
||||
@@ -128,8 +127,8 @@ lin
|
||||
want_VV = mkVV (verbV (voler_120 "voler")) ;
|
||||
we_Pron =
|
||||
mkPronoun
|
||||
"nosaltres" "nos" "nos" "nosaltres"
|
||||
["el nostre"] ["la nostra"] ["els nostres"] ["les nostres"]
|
||||
"nosaltres" "ens" "ens" "nosaltres"
|
||||
["el nostre"] ["la nostra"] ["els nostres"]
|
||||
Fem Pl P1 ;
|
||||
whatSg_IP = {s = \\c => prepCase c ++ ["què"] ; a = aagr Masc Sg} ;
|
||||
whatPl_IP = {s = \\c => prepCase c ++ ["què"] ; a = aagr Masc Pl} ; ---
|
||||
@@ -149,21 +148,46 @@ lin
|
||||
yes_Utt = ss "sí" ;
|
||||
youSg_Pron = mkPronoun
|
||||
"tu" "et" "et" "tu"
|
||||
["el teu"] ["la teva"] ["els teus"] ["les teves"]
|
||||
("ton"|["el teu"]) ("ta"|["la teva"]) ("tes"|["les teves"])
|
||||
Fem Sg P2 ;
|
||||
youPl_Pron =
|
||||
mkPronoun
|
||||
"vosaltres" "us" "us" "vosaltres"
|
||||
["el vostre"] ["la vostra"] ["els vostres"] ["les vostres"]
|
||||
["el vostre"] ["la vostra"] ["els vostres"]
|
||||
Fem Pl P2 ;
|
||||
youPol_Pron =
|
||||
mkPronoun
|
||||
"vosté" "li" "li" "vosté"
|
||||
youPol_Pron = he_Pron ;
|
||||
{- mkPronoun
|
||||
"vosté" "el" "li" "vosté"
|
||||
["el seu"] ["la seva"] ["els seus"] ["les seves"]
|
||||
Fem Pl P2 ;
|
||||
-}
|
||||
not_Predet = {s = \\a,c => prepCase c ++ "no pas" ; c = Nom} ;
|
||||
have_V2 = dirV2 (verbV (tenir_108 "tenir")) ;
|
||||
|
||||
oper
|
||||
etConj : {s : Str ; n : MorphoCat.Number} = {s = "i" } ** {n = Pl} ;
|
||||
|
||||
lin
|
||||
if_then_Conj = {s1 = "si" ; s2 = "llavors" ; n = Sg ; lock_Conj = <>} ;
|
||||
|
||||
no_Quant =
|
||||
let
|
||||
capS : Str = "cap" ;
|
||||
cap : ParadigmsCat.Number => ParadigmsCat.Gender => Case => Str = table {
|
||||
Sg => \\g,c => prepCase c ++ genForms capS capS ! g ;
|
||||
Pl => \\g,c => prepCase c ++ genForms capS capS ! g
|
||||
}
|
||||
in {
|
||||
s = \\_ => cap ;
|
||||
sp = cap ;
|
||||
s2 = []
|
||||
} ;
|
||||
nobody_NP = pn2np (mkPN "ningú") ;
|
||||
nothing_NP = pn2np (mkPN "res") ;
|
||||
at_least_AdN = X.mkAdN "almenys" ;
|
||||
at_most_AdN = X.mkAdN "com a màxim" ;
|
||||
except_Prep = mkPrep "excepte" ;
|
||||
as_CAdv = X.mkCAdv "tan" "com" ;
|
||||
|
||||
lin language_title_Utt = ss "català" ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user