mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-21 00:52:51 -06:00
ArchEdit moved; spanish/Structural now works
This commit is contained in:
@@ -2,11 +2,6 @@ concrete NumeralsIta of Numerals = open Prelude, TypesIta, MorphoIta, SyntaxIta
|
|||||||
|
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
--Digit = {s : DForm => Str} ;
|
|
||||||
--lincat Sub10 = {s : DForm => Str ; n : Number} ;
|
|
||||||
--lincat Sub100 = {s : Str ; n : Number} ;
|
|
||||||
--lincat Sub1000 = {s : Str ; n : Number} ;
|
|
||||||
--lincat Sub1000000 = {s : Str} ;
|
|
||||||
Numeral = {s : Gender => Str ; n : Number} ;
|
Numeral = {s : Gender => Str ; n : Number} ;
|
||||||
Digit = {s : DForm => Str} ;
|
Digit = {s : DForm => Str} ;
|
||||||
Sub10 = {s : DForm => Gender => Str ; n : Number} ;
|
Sub10 = {s : DForm => Gender => Str ; n : Number} ;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -176,4 +176,11 @@ haber_10 : Str -> Verbum = haber_3 ;
|
|||||||
|
|
||||||
param DForm = unit | teen | ten | hundred ;
|
param DForm = unit | teen | ten | hundred ;
|
||||||
param Modif = mod | unmod | conj ;
|
param Modif = mod | unmod | conj ;
|
||||||
|
|
||||||
|
oper spl : Str -> {s : Gender => Str ; n : Number} = \s -> {s = \\_ =>
|
||||||
|
s ; n = Pl} ;
|
||||||
|
|
||||||
|
uno : Gender => Str = table {Masc => "uno" ; Fem => "una"} ;
|
||||||
|
yuno : Gender => Str = \\g => "y" ++ uno ! g ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,20 @@
|
|||||||
concrete NumeralsSpa of Numerals = open MorphoSpa in {
|
--# -path=.:../romance:../abstract:../../prelude
|
||||||
|
|
||||||
|
concrete NumeralsSpa of Numerals = open TypesSpa, MorphoSpa in {
|
||||||
|
|
||||||
-- by Carlos Gonzalia, Chalmers, 1999
|
-- by Carlos Gonzalia, Chalmers, 1999
|
||||||
-- original source automatically translated to new GF by AR
|
-- original source automatically translated to new GF by AR
|
||||||
|
-- modified by addition of gender and number 30/3/2005
|
||||||
|
|
||||||
|
lincat Numeral = {s : Gender => Str ; n : Number} ;
|
||||||
lincat Numeral = {s : Str} ;
|
|
||||||
lincat Digit = {inh : Modif ; s : {p1 : DForm ; p2 : Modif} => Str} ;
|
lincat Digit = {inh : Modif ; s : {p1 : DForm ; p2 : Modif} => Str} ;
|
||||||
lincat Sub10 = {s : {p1 : DForm ; p2 : Modif} => Str} ;
|
lincat Sub10 = {s : {p1 : DForm ; p2 : Modif} => Gender => Str ; n : Number} ;
|
||||||
lincat Sub100 = {s : Str} ;
|
lincat Sub100 = {s : Gender => Str ; n : Number} ;
|
||||||
lincat Sub1000 = {s : Str} ;
|
lincat Sub1000 = {s : Gender => Str ; n : Number} ;
|
||||||
lincat Sub1000000 = {s : Str} ;
|
lincat Sub1000000 = {s : Gender => Str ; n : Number} ;
|
||||||
|
|
||||||
|
lin num x0 = x0 ;
|
||||||
|
|
||||||
lin num x0 =
|
|
||||||
{s = x0.s} ;
|
|
||||||
lin n2 =
|
lin n2 =
|
||||||
{inh = mod ; s = table {{p1 = unit ; p2 = mod} => "dos" ; {p1 = unit ; p2 = unmod} => "dos" ; {p1 = unit ; p2 = conj} => "y" ++ "dos" ; {p1 = teen ; p2 = mod} => "doce" ; {p1 = teen ; p2 = unmod} => "doce" ; {p1 = teen ; p2 = conj} => "doce" ; {p1 = ten ; p2 = mod} => "veinti" ; {p1 = ten ; p2 = unmod} => "veinte" ; {p1 = ten ; p2 = conj} => "veinte" ; {p1 = hundred ; p2 = mod} => "doscientos" ; {p1 = hundred ; p2 = unmod} => "doscientos" ; {p1 = hundred ; p2 = conj} => "doscientos"}} ;
|
{inh = mod ; s = table {{p1 = unit ; p2 = mod} => "dos" ; {p1 = unit ; p2 = unmod} => "dos" ; {p1 = unit ; p2 = conj} => "y" ++ "dos" ; {p1 = teen ; p2 = mod} => "doce" ; {p1 = teen ; p2 = unmod} => "doce" ; {p1 = teen ; p2 = conj} => "doce" ; {p1 = ten ; p2 = mod} => "veinti" ; {p1 = ten ; p2 = unmod} => "veinte" ; {p1 = ten ; p2 = conj} => "veinte" ; {p1 = hundred ; p2 = mod} => "doscientos" ; {p1 = hundred ; p2 = unmod} => "doscientos" ; {p1 = hundred ; p2 = conj} => "doscientos"}} ;
|
||||||
lin n3 =
|
lin n3 =
|
||||||
@@ -30,31 +32,35 @@ lin n8 =
|
|||||||
lin n9 =
|
lin n9 =
|
||||||
{inh = conj ; s = table {{p1 = unit ; p2 = mod} => "nueve" ; {p1 = unit ; p2 = unmod} => "nueve" ; {p1 = unit ; p2 = conj} => "y" ++ "nueve" ; {p1 = teen ; p2 = mod} => "diecinueve" ; {p1 = teen ; p2 = unmod} => "diecinueve" ; {p1 = teen ; p2 = conj} => "diecinueve" ; {p1 = ten ; p2 = mod} => "noventa" ; {p1 = ten ; p2 = unmod} => "noventa" ; {p1 = ten ; p2 = conj} => "noventa" ; {p1 = hundred ; p2 = mod} => "novecientos" ; {p1 = hundred ; p2 = unmod} => "novecientos" ; {p1 = hundred ; p2 = conj} => "novecientos"}} ;
|
{inh = conj ; s = table {{p1 = unit ; p2 = mod} => "nueve" ; {p1 = unit ; p2 = unmod} => "nueve" ; {p1 = unit ; p2 = conj} => "y" ++ "nueve" ; {p1 = teen ; p2 = mod} => "diecinueve" ; {p1 = teen ; p2 = unmod} => "diecinueve" ; {p1 = teen ; p2 = conj} => "diecinueve" ; {p1 = ten ; p2 = mod} => "noventa" ; {p1 = ten ; p2 = unmod} => "noventa" ; {p1 = ten ; p2 = conj} => "noventa" ; {p1 = hundred ; p2 = mod} => "novecientos" ; {p1 = hundred ; p2 = unmod} => "novecientos" ; {p1 = hundred ; p2 = conj} => "novecientos"}} ;
|
||||||
lin pot01 =
|
lin pot01 =
|
||||||
{s = table {{p1 = unit ; p2 = mod} => "uno" ; {p1 = unit ; p2 = unmod} => "uno" ; {p1 = unit ; p2 = conj} => "y" ++ "uno" ; {p1 = teen ; p2 = mod} => "uno" ; {p1 = teen ; p2 = unmod} => "uno" ; {p1 = teen ; p2 = conj} => "y" ++ "uno" ; {p1 = ten ; p2 = mod} => "uno" ; {p1 = ten ; p2 = unmod} => "uno" ; {p1 = ten ; p2 = conj} => "y" ++ "uno" ; {p1 = hundred ; p2 = mod} => "ciento" ; {p1 = hundred ; p2 = unmod} => "cien" ; {p1 = hundred ; p2 = conj} => "y" ++ "uno"}} ;
|
{s = table {{p1 = unit ; p2 = mod} => uno ; {p1 = unit ; p2 = unmod}
|
||||||
|
=> uno ; {p1 = unit ; p2 = conj} => yuno ; {p1 = teen ; p2 = mod} =>
|
||||||
|
uno ; {p1 = teen ; p2 = unmod} => uno ; {p1 = teen ; p2 = conj} =>
|
||||||
|
yuno ; {p1 = ten ; p2 = mod} => uno ; {p1 = ten ; p2 = unmod} => uno
|
||||||
|
; {p1 = ten ; p2 = conj} => yuno ; {p1 = hundred ; p2 = mod} =>
|
||||||
|
\\_ => "ciento" ; {p1 = hundred ; p2 = unmod} => \\_ => "cien" ; {p1 = hundred ; p2 = conj} => yuno} ; n = Sg} ;
|
||||||
lin pot0 d =
|
lin pot0 d =
|
||||||
{s = table {{p1 = unit ; p2 = mod} => d.s ! {p1 = unit ; p2 = mod} ; {p1 = unit ; p2 = unmod} => d.s ! {p1 = unit ; p2 = unmod} ; {p1 = unit ; p2 = conj} => d.s ! {p1 = unit ; p2 = conj} ; {p1 = teen ; p2 = mod} => d.s ! {p1 = teen ; p2 = mod} ; {p1 = teen ; p2 = unmod} => d.s ! {p1 = teen ; p2 = unmod} ; {p1 = teen ; p2 = conj} => d.s ! {p1 = teen ; p2 = conj} ; {p1 = ten ; p2 = mod} => d.s ! {p1 = ten ; p2 = mod} ; {p1 = ten ; p2 = unmod} => d.s ! {p1 = ten ; p2 = unmod} ; {p1 = ten ; p2 = conj} => d.s ! {p1 = ten ; p2 = conj} ; {p1 = hundred ; p2 = mod} => d.s ! {p1 = hundred ; p2 = mod} ; {p1 = hundred ; p2 = unmod} => d.s ! {p1 = hundred ; p2 = unmod} ; {p1 = hundred ; p2 = conj} => d.s ! {p1 = hundred ; p2 = conj}}} ;
|
{s = \\f,g => d.s ! f ; n = Pl} ;
|
||||||
lin pot110 =
|
lin pot110 =
|
||||||
{s = "diez"} ;
|
spl "diez" ;
|
||||||
lin pot111 =
|
lin pot111 =
|
||||||
{s = "once"} ;
|
spl "once" ;
|
||||||
lin pot1to19 d =
|
lin pot1to19 d =
|
||||||
{s = d.s ! {p1 = teen ; p2 = unmod}} ;
|
spl (d.s ! {p1 = teen ; p2 = unmod}) ;
|
||||||
lin pot0as1 n =
|
lin pot0as1 n =
|
||||||
{s = n.s ! {p1 = unit ; p2 = unmod}} ;
|
{s = n.s ! {p1 = unit ; p2 = unmod} ; n = n.n} ;
|
||||||
lin pot1 d =
|
lin pot1 d =
|
||||||
{s = d.s ! {p1 = ten ; p2 = unmod}} ;
|
spl (d.s ! {p1 = ten ; p2 = unmod}) ;
|
||||||
lin pot1plus d e =
|
lin pot1plus d e =
|
||||||
{s = (d.s ! {p1 = ten ; p2 = mod}) ++ e.s ! {p1 = unit ; p2 = d.inh}} ;
|
{s = \\g => (d.s ! {p1 = ten ; p2 = mod}) ++ e.s ! {p1 = unit ; p2 =
|
||||||
lin pot1as2 n =
|
d.inh} ! g ; n = Pl} ;
|
||||||
{s = n.s} ;
|
lin pot1as2 n = n ;
|
||||||
lin pot2 d =
|
lin pot2 d =
|
||||||
{s = d.s ! {p1 = hundred ; p2 = unmod}} ;
|
spl (d.s ! {p1 = hundred ; p2 = unmod} ! Masc) ;
|
||||||
lin pot2plus d e =
|
lin pot2plus d e =
|
||||||
{s = (d.s ! {p1 = hundred ; p2 = mod}) ++ e.s} ;
|
{s = \\g => (d.s ! {p1 = hundred ; p2 = mod}) ! Masc ++ e.s ! g ; n = Pl} ;
|
||||||
lin pot2as3 n =
|
lin pot2as3 n = n ;
|
||||||
{s = n.s} ;
|
|
||||||
lin pot3 n =
|
lin pot3 n =
|
||||||
{s = n.s ++ "mil"} ;
|
spl (n.s ! Masc ++ "mil") ;
|
||||||
lin pot3plus n m =
|
lin pot3plus n m =
|
||||||
{s = n.s ++ "mil" ++ m.s} ;
|
{s = \\g => n.s ! Masc ++ "mil" ++ m.s ! g ; n = Pl} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,116 +1,95 @@
|
|||||||
--# -path=.:../romance:../abstract:../../prelude
|
--# -path=.:../romance:../abstract:../../prelude
|
||||||
|
|
||||||
|
|
||||||
concrete StructuralSpa of Structural = CategoriesSpa, NumeralsSpa **
|
concrete StructuralSpa of Structural = CategoriesSpa, NumeralsSpa **
|
||||||
open SyntaxSpa, MorphoSpa, Prelude in {
|
open SyntaxSpa, MorphoSpa, BeschSpa, Prelude in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
INP = pronNounPhrase pronJe ;
|
|
||||||
ThouNP = pronNounPhrase pronTu ;
|
|
||||||
HeNP = pronNounPhrase pronIl ;
|
|
||||||
SheNP = pronNounPhrase pronElle ;
|
|
||||||
WeNumNP n = pronNounPhrase (pronWithNum pronNous n) ;
|
|
||||||
YeNumNP n = pronNounPhrase (pronWithNum pronVous n) ;
|
|
||||||
YouNP = pronNounPhrase pronVous ;
|
|
||||||
TheyNP = pronNounPhrase pronIls ;
|
|
||||||
TheyFemNP = pronNounPhrase pronElles ;
|
|
||||||
|
|
||||||
-- Here is a point where the API is really inadequate for French,
|
UseNumeral n = {s = \\g => n.s !g ; n = n.n} ;
|
||||||
-- which distinguishes between masculine and feminine "they".
|
|
||||||
-- The following solution is not attractive.
|
|
||||||
|
|
||||||
--- TheyNP = pronNounPhrase (variants {pronIls ; pronElles}) ;
|
above_Prep = justPrep "sobre" ;
|
||||||
|
after_Prep = {s = "después" ; c = genitive} ;
|
||||||
ThisNP = mkNameNounPhrase ["esto"] Masc ;
|
all8mass_Det = mkDeterminer singular "todo" "toda" ;
|
||||||
ThatNP = mkNameNounPhrase ["eso"] Masc ;
|
all_NDet = mkDeterminerNum ["todos los"] ["todas las"] ;
|
||||||
TheseNumNP n = mkNameNounPhrase ("éstos" ++ n.s ! Masc) Masc ;
|
almost_Adv = ss "casi" ;
|
||||||
ThoseNumNP n = mkNameNounPhrase ("ésos" ++ n.s ! Masc) Masc ;
|
although_Subj = ss "benché" ** {m = Con} ;
|
||||||
|
and_Conj = etConj ;
|
||||||
ItNP = pronNounPhrase pronIl ;
|
because_Subj = ss "porque" ** {m = Ind} ;
|
||||||
|
before_Prep = {s = "antes" ; c = genitive} ;
|
||||||
EveryDet = chaqueDet ;
|
behind_Prep = {s = "detrás" ; c = genitive} ;
|
||||||
AllMassDet = mkDeterminer singular "todo" "toda" ;
|
between_Prep = justPrep "entre" ;
|
||||||
AllNumDet = mkDeterminerNum plural ["todos los"] ["todas las"] ;
|
both_AndConjD = etetConj ;
|
||||||
WhichDet = quelDet ;
|
by8agent_Prep = justPrep "por" ;
|
||||||
WhichNumDet = mkDeterminerNum plural "cuales" "cuales" ;
|
by8means_Prep = justPrep "por" ;
|
||||||
HowManyDet = mkDeterminer plural "cuántos" "cuántas" ;
|
can8know_VV = mkVerbVerbDir (verbPres (saber_71 "saber") AHabere) ;
|
||||||
MostsDet = plupartDet ;
|
can_VV = mkVerbVerbDir (verbPres (poder_58 "poder") AHabere) ; ----
|
||||||
MostDet = mkDeterminer1 singular (["la mayor parte"] ++ elisDe) ; --- de
|
during_Prep = justPrep "durante" ; ----
|
||||||
SomeDet = mkDeterminer singular "alguno" "alguna" ;
|
either8or_ConjD = ououConj ;
|
||||||
SomeNumDet = mkDeterminerNum plural "algunos" "algunas" ;
|
everybody_NP = normalNounPhrase (\\c => prepCase c ++ "todos") Masc Pl ;
|
||||||
NoDet = mkDeterminer singular "ninguno" "ninguna" ; --- non
|
every_Det = chaqueDet ;
|
||||||
NoNumDet = mkDeterminerNum plural "ningunos" "ningunas" ; ---- ??
|
everything_NP = mkNameNounPhrase ["todo"] Masc ;
|
||||||
AnyDet = mkDeterminer singular "alguno" "alguna" ; ---
|
everywhere_Adv = ss ["en todas partes"] ;
|
||||||
AnyNumDet = mkDeterminerNum plural "algunos" "algunas" ; ---
|
from_Prep = justCase (CPrep P_de) ;
|
||||||
ManyDet = mkDeterminer plural "muchos" "muchas" ;
|
he_NP = pronNounPhrase pronIl ;
|
||||||
MuchDet = mkDeterminer1 singular "mucho" ;
|
how8many_IDet = mkDeterminer plural "cuántos" "cuántas" ;
|
||||||
ThisDet = mkDeterminer singular "esto" "esta" ;
|
how_IAdv = commentAdv ;
|
||||||
ThatDet = mkDeterminer singular "eso" "esa" ;
|
if_Subj = siSubj ;
|
||||||
TheseNumDet = mkDeterminerNum plural "estos" "estas" ;
|
in8front_Prep = {s = "delante" ; c = genitive} ;
|
||||||
ThoseNumDet = mkDeterminerNum plural "esos" "esas" ;
|
i_NP = pronNounPhrase pronJe ;
|
||||||
|
in_Prep = justPrep "en" ;
|
||||||
UseNumeral n = {s = \\_ => n.s} ; ---- gender
|
it_NP = pronNounPhrase pronIl ;
|
||||||
|
many_Det = mkDeterminer plural "muchos" "muchas" ;
|
||||||
HowIAdv = commentAdv ;
|
most8many_Det = plupartDet ;
|
||||||
WhenIAdv = quandAdv ;
|
most_Det = mkDeterminer1 singular (["la mayor parte"] ++ elisDe) ; --- de
|
||||||
WhereIAdv = ouAdv ;
|
much_Det = mkDeterminer1 singular "mucho" ;
|
||||||
WhyIAdv = pourquoiAdv ;
|
must_VV = mkVerbVerbDir (verbPres (deber_6 "deber") AHabere) ; ----
|
||||||
|
no_Phr = nonPhr ;
|
||||||
AndConj = etConj ;
|
on_Prep = justPrep "sobre" ; ----
|
||||||
OrConj = ouConj ;
|
or_Conj = ouConj ;
|
||||||
BothAnd = etetConj ;
|
otherwise_Adv = ss "otramente" ;
|
||||||
EitherOr = ououConj ;
|
part_Prep = justCase genitive ; ---
|
||||||
NeitherNor = niniConj ;
|
possess_Prep = justCase genitive ;
|
||||||
IfSubj = siSubj ;
|
quite_Adv = ss "bastante" ;
|
||||||
WhenSubj = quandSubj ;
|
she_NP = pronNounPhrase pronElle ;
|
||||||
|
so_Adv = ss "tanto" ; ----
|
||||||
PhrYes = ouiPhr ;
|
somebody_NP = mkNameNounPhrase ["algún"] Masc ;
|
||||||
PhrNo = nonPhr ; --- and also Si!
|
some_Det = mkDeterminer singular "alguno" "alguna" ;
|
||||||
|
some_NDet = mkDeterminerNum "algunos" "algunas" ;
|
||||||
VeryAdv = ss "muy" ;
|
something_NP = mkNameNounPhrase ["algo"] Masc ;
|
||||||
TooAdv = ss "demasiado" ;
|
somewhere_Adv = ss ["en ninguna parte"] ;
|
||||||
OtherwiseAdv = ss "otramente" ;
|
that_Det = mkDeterminer singular "eso" "esa" ;
|
||||||
ThereforeAdv = ss ["por eso"] ;
|
that_NP = mkNameNounPhrase ["eso"] Masc ;
|
||||||
|
therefore_Adv = ss ["por eso"] ;
|
||||||
EverybodyNP = normalNounPhrase (\\c => prepCase c ++ "todos") Masc Pl ;
|
these_NDet = mkDeterminerNum "estos" "estas" ;
|
||||||
SomebodyNP = mkNameNounPhrase ["algún"] Masc ;
|
they8fem_NP = pronNounPhrase pronElles ;
|
||||||
NobodyNP = mkNameNounPhrase ["nadién"] Masc ; --- ne
|
they_NP = pronNounPhrase pronIls ;
|
||||||
EverythingNP = mkNameNounPhrase ["todo"] Masc ;
|
this_Det = mkDeterminer singular "esto" "esta" ;
|
||||||
SomethingNP = mkNameNounPhrase ["algo"] Masc ;
|
this_NP = mkNameNounPhrase ["esto"] Masc ;
|
||||||
NothingNP = mkNameNounPhrase ["nada"] Masc ; --- ne
|
those_NDet = mkDeterminerNum "esos" "esas" ;
|
||||||
|
thou_NP = pronNounPhrase pronTu ;
|
||||||
---- provisory, for completeness
|
through_Prep = justPrep "por" ;
|
||||||
CanVV = mkVerbVerbDir (verbPres (vender_4 "poder") AHabere) ; ----
|
too_Adv = ss "demasiado" ;
|
||||||
CanKnowVV = mkVerbVerbDir (verbPres (vender_4 "saber") AHabere) ; ----
|
to_Prep = justCase dative ; ---
|
||||||
MustVV = mkVerbVerbDir (verbPres (vender_4 "deber") AHabere) ; ----
|
under_Prep = justPrep "bajo" ;
|
||||||
WantVV = mkVerbVerbDir (verbPres (vender_4 "quierer") AHabere) ; ----
|
very_Adv = ss "muy" ;
|
||||||
|
want_VV = mkVerbVerbDir (verbPres (querer_64 "querer") AHabere) ; ----
|
||||||
EverywhereNP = ss ["en todas partes"] ;
|
we_NP = pronNounPhrase pronNous ;
|
||||||
SomewhereNP = ss ["en ninguna parte"] ;
|
what8one_IP = intPronWhat singular ;
|
||||||
NowhereNP = ss ["en alguna parte"] ; ----
|
what8many_IP = intPronWhat plural ;
|
||||||
|
when_IAdv = quandAdv ;
|
||||||
AlthoughSubj = ss "benché" ** {m = Con} ;
|
when_Subj = quandSubj ;
|
||||||
|
where_IAdv = ouAdv ;
|
||||||
AlmostAdv = ss "casi" ;
|
which8many_IDet = mkDeterminerNum "cuales" "cuales" ** {n = Pl} ;
|
||||||
QuiteAdv = ss "bastante" ;
|
which8one_IDet = quelDet ;
|
||||||
|
who8one_IP = intPronWho singular ;
|
||||||
InPrep = justPrep "en" ;
|
who8many_IP = intPronWho plural ;
|
||||||
OnPrep = justPrep "sobre" ; ----
|
why_IAdv = pourquoiAdv ;
|
||||||
ToPrep = justCase dative ; ---
|
without_Prep = justPrep "sin" ;
|
||||||
ThroughPrep = justPrep "por" ;
|
with_Prep = justPrep "con" ;
|
||||||
AbovePrep = justPrep "sobre" ;
|
ye_NP = pronNounPhrase pronVous ;
|
||||||
UnderPrep = justPrep "bajo" ;
|
yes_Phr = ouiPhr ;
|
||||||
InFrontPrep = {s = "delante" ; c = genitive} ;
|
you_NP = pronNounPhrase pronVous ;
|
||||||
BehindPrep = {s = "detrás" ; c = genitive} ;
|
|
||||||
BetweenPrep = justPrep "entre" ;
|
|
||||||
FromPrep = justCase (CPrep P_de) ;
|
|
||||||
BeforePrep = {s = "antes" ; c = genitive} ;
|
|
||||||
DuringPrep = justPrep "durante" ; ----
|
|
||||||
AfterPrep = {s = "después" ; c = genitive} ;
|
|
||||||
WithPrep = justPrep "con" ;
|
|
||||||
WithoutPrep = justPrep "sin" ;
|
|
||||||
ByMeansPrep = justPrep "por" ;
|
|
||||||
PossessPrep = justCase genitive ;
|
|
||||||
PartPrep = justCase genitive ; ---
|
|
||||||
AgentPrep = justPrep "por" ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ oper
|
|||||||
npGenPossNum = \nu,ton,mec ->
|
npGenPossNum = \nu,ton,mec ->
|
||||||
\\c => artDef mec.g Pl c ++ ton.s ! Poss Pl mec.g ++ nu.s ! mec.g ++ mec.s ! Pl ;
|
\\c => artDef mec.g Pl c ++ ton.s ! Poss Pl mec.g ++ nu.s ! mec.g ++ mec.s ! Pl ;
|
||||||
|
|
||||||
|
{- ----
|
||||||
existNounPhrase = \delvino -> {
|
existNounPhrase = \delvino -> {
|
||||||
s = \\m =>
|
s = \\m =>
|
||||||
case m of {
|
case m of {
|
||||||
@@ -42,6 +43,7 @@ oper
|
|||||||
Con => "haya"
|
Con => "haya"
|
||||||
} ++ delvino.s ! stressed accusative
|
} ++ delvino.s ! stressed accusative
|
||||||
} ;
|
} ;
|
||||||
|
-}
|
||||||
|
|
||||||
mkAdjSolo : Str -> Bool -> Adjective = \adj,p ->
|
mkAdjSolo : Str -> Bool -> Adjective = \adj,p ->
|
||||||
mkAdjective (adjSolo adj) p ;
|
mkAdjective (adjSolo adj) p ;
|
||||||
@@ -83,8 +85,7 @@ oper
|
|||||||
|
|
||||||
negVerb = \va -> "no" ++ va ;
|
negVerb = \va -> "no" ++ va ;
|
||||||
|
|
||||||
copula = \b,w -> let etre = (predVerb verbSer).s in
|
copula = verbSer ;
|
||||||
etre ! b ! Masc ! w ; ---- Masc
|
|
||||||
|
|
||||||
isClitCase = \c -> case c of {
|
isClitCase = \c -> case c of {
|
||||||
Acc => True ;
|
Acc => True ;
|
||||||
@@ -148,7 +149,7 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Questions
|
-- Questions
|
||||||
|
{- ----
|
||||||
questVerbPhrase = \jean,dort ->
|
questVerbPhrase = \jean,dort ->
|
||||||
{s = table {
|
{s = table {
|
||||||
DirQ => (predVerbPhrase jean dort).s ! Ind ;
|
DirQ => (predVerbPhrase jean dort).s ! Ind ;
|
||||||
@@ -162,14 +163,6 @@ oper
|
|||||||
s = \\m => case m of {DirQ => [] ; _ => "si"} ++ cedelvino
|
s = \\m => case m of {DirQ => [] ; _ => "si"} ++ cedelvino
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
intVerbPhrase = \qui, dormir ->
|
|
||||||
let dort = dormir.s ! qui.g ! VPF Simul (VFin presInd qui.n P3)
|
|
||||||
in
|
|
||||||
{s = table {
|
|
||||||
_ => qui.s ! Nom ++ dort
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
|
|
||||||
intSlash = \Qui, Tuvois ->
|
intSlash = \Qui, Tuvois ->
|
||||||
let {qui = Tuvois.s2 ++ Qui.s ! Tuvois.c ; tuvois = Tuvois.s ! Ind} in
|
let {qui = Tuvois.s2 ++ Qui.s ! Tuvois.c ; tuvois = Tuvois.s ! Ind} in
|
||||||
{s = table {
|
{s = table {
|
||||||
@@ -177,12 +170,17 @@ oper
|
|||||||
IndirQ => qui ++ tuvois
|
IndirQ => qui ++ tuvois
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
-}
|
||||||
|
|
||||||
questAdverbial = \quand, jean, dort ->
|
intSlash = \Qui, Tuvois ->
|
||||||
let {jeandort = (predVerbPhrase jean dort).s ! Ind} in
|
{s = \\b,cl =>
|
||||||
{s = table {
|
let
|
||||||
DirQ => quand.s ++ jeandort ; --- inversion?
|
qui = Tuvois.s2 ++ Qui.s ! Tuvois.c ;
|
||||||
IndirQ => quand.s ++ jeandort
|
tuvois = Tuvois.s ! b ! cl
|
||||||
|
in
|
||||||
|
table {
|
||||||
|
DirQ => qui ++ tuvois ;
|
||||||
|
IndirQ => qui ++ tuvois
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -111,8 +111,8 @@ oper
|
|||||||
VInfin => amare.s ! VI Infn ;
|
VInfin => amare.s ! VI Infn ;
|
||||||
VFin (VPres Ind) n p => amare.s ! VP (Pres Ind n p) ;
|
VFin (VPres Ind) n p => amare.s ! VP (Pres Ind n p) ;
|
||||||
VFin (VPres Sub) n p => amare.s ! VP (Pres Sub n p) ;
|
VFin (VPres Sub) n p => amare.s ! VP (Pres Sub n p) ;
|
||||||
VFin (VImperf Ind) n p => amare.s ! VP (Past Ind n p) ;
|
VFin (VImperf Ind) n p => amare.s ! VP (Impf Ind n p) ;
|
||||||
VFin (VImperf Sub) n p => amare.s ! VP (Past Sub n p) ;
|
VFin (VImperf Sub) n p => amare.s ! VP (Impf Sub n p) ;
|
||||||
VFin VPasse n p => amare.s ! VP (Pret n p) ;
|
VFin VPasse n p => amare.s ! VP (Pret n p) ;
|
||||||
VFin VFut n p => amare.s ! VP (Fut Ind n p) ;
|
VFin VFut n p => amare.s ! VP (Fut Ind n p) ;
|
||||||
VFin VCondit n p => amare.s ! VP (Cond n p) ;
|
VFin VCondit n p => amare.s ! VP (Cond n p) ;
|
||||||
@@ -134,7 +134,7 @@ param
|
|||||||
|
|
||||||
VPers =
|
VPers =
|
||||||
Pres Mode Number Person
|
Pres Mode Number Person
|
||||||
| Past Mode Number Person
|
| Impf Mode Number Person
|
||||||
| Pret Number Person
|
| Pret Number Person
|
||||||
| Fut Mode Number Person
|
| Fut Mode Number Person
|
||||||
| Cond Number Person
|
| Cond Number Person
|
||||||
|
|||||||
30
src/GF/System/ArchEdit.hs
Normal file
30
src/GF/System/ArchEdit.hs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
----------------------------------------------------------------------
|
||||||
|
-- |
|
||||||
|
-- Module : ArchEdit
|
||||||
|
-- Maintainer : AR
|
||||||
|
-- Stability : (stable)
|
||||||
|
-- Portability : (portable)
|
||||||
|
--
|
||||||
|
-- > CVS $Date: 2005/03/30 12:41:12 $
|
||||||
|
-- > CVS $Author: aarne $
|
||||||
|
-- > CVS $Revision: 1.1 $
|
||||||
|
--
|
||||||
|
-- (Description of the module)
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
module ArchEdit (
|
||||||
|
fudlogueEdit, fudlogueWrite, fudlogueWriteUni
|
||||||
|
) where
|
||||||
|
|
||||||
|
fudlogueEdit :: a -> b -> IO ()
|
||||||
|
fudlogueEdit _ _ = do
|
||||||
|
putStrLn "sorry no fudgets available in Hugs"
|
||||||
|
return ()
|
||||||
|
|
||||||
|
fudlogueWrite :: a -> b -> IO ()
|
||||||
|
fudlogueWrite _ _ = do
|
||||||
|
putStrLn "sorry no fudgets available in Hugs"
|
||||||
|
|
||||||
|
fudlogueWriteUni :: a -> b -> IO ()
|
||||||
|
fudlogueWriteUni _ _ = do
|
||||||
|
putStrLn "sorry no fudgets available in Hugs"
|
||||||
Reference in New Issue
Block a user