SymbolRon

This commit is contained in:
ra.monique
2009-12-12 14:16:11 +00:00
parent 7c2bce5779
commit 3bd269ac2e

View File

@@ -1,77 +1,76 @@
--# -path=.:../abstract:../common concrete SymbolRon of Symbol =
CatRon ** open Prelude, ResRon in {
concrete SymbolRon of Symbol =
CatRon ** open Prelude, ResRon in { lin
SymbPN i = mkSymb i.s ;
lin IntPN i = mkSymb i.s ;
SymbPN i = mkSymb i.s ; FloatPN i = mkSymb i.s ;
IntPN i = mkSymb i.s ; NumPN i = mkSymb (i.sp ! Masc) ;
FloatPN i = mkSymb i.s ;
NumPN i = mkSymb (i.sp ! Masc) ; CNIntNP cn i = let gg = agrGender cn.g Sg in
heavyNP {
CNIntNP cn i = let gg = agrGender cn.g Sg in s = \\c => cn.s ! Sg ! Def ! (convCase c) ++ i.s ;
heavyNP { a = agrP3 gg Sg ;
s = \\c => cn.s ! Sg ! Def ! (convCase c) ++ i.s ; hasClit = HasRef False ;
a = agrP3 gg Sg ; ss = cn.s ! Sg ! Def ! ANomAcc ++ i.s
hasClit = False ; } ;
ss = cn.s ! Sg ! Def ! ANomAcc ++ i.s
} ; CNSymbNP det cn xs = let gg = agrGender cn.g det.n;
st = if_then_else Species det.isDef Def Indef;
CNSymbNP det cn xs = let gg = agrGender cn.g det.n; rs = if_then_else Species det.hasRef Def Indef;
st = if_then_else Species det.isDef Def Indef; ag = agrP3 gg det.n ;
rs = if_then_else Species det.hasRef Def Indef; hr = andB (getClit cn.a) det.hasRef;
ag = agrP3 gg det.n ; nf = if_then_else NForm hr HasClit (HasRef False)
hr = andB (getClit cn.a) det.hasRef in
in {s = \\c => case c of
{s = \\c => case c of {Vo =>
{Vo => {comp = det.s ! gg ! No ++ det.size ++ cn.s ! det.n ! st ! ANomAcc ++ det.post ! gg ! No ;
{comp = det.s ! gg ! No ++ det.size ++ cn.s ! det.n ! st ! ANomAcc ++ det.post ! gg ! No ; clit = \\cs => if_then_Str hr ((genCliticsCase ag c).s ! cs) [] };
clit = \\cs => if_then_Str hr ((genCliticsCase ag c).s ! cs) [] }; _ => {comp = det.s ! gg ! c ++ det.size ++ cn.s ! det.n ! st ! (convCase c) ++ det.post ! gg ! c ;
_ => {comp = det.s ! gg ! c ++ det.size ++ cn.s ! det.n ! st ! (convCase c) ++ det.post ! gg ! c ; clit = \\cs => if_then_Str hr ((genCliticsCase ag c).s ! cs) [] }
clit = \\cs => if_then_Str hr ((genCliticsCase ag c).s ! cs) [] } };
}; a = ag ;
a = ag ; nForm = nf ;
hasClit = hr ;
hasRef = hr ; isPronoun = False ;
isPronoun = False ; indForm = det.s ! gg ! No ++ det.size ++cn.s ! det.n ! rs ! ANomAcc
indForm = det.s ! gg ! No ++ det.size ++cn.s ! det.n ! rs ! ANomAcc } ;
} ;
CNNumNP cn i = let gg = agrGender cn.g Sg in
CNNumNP cn i = let gg = agrGender cn.g Sg in heavyNP {
heavyNP { s = \\c => cn.s ! Sg ! Def ! (convCase c) ++ i.sp ! gg;
s = \\c => cn.s ! Sg ! Def ! (convCase c) ++ i.sp ! gg; a = agrP3 gg Sg ;
a = agrP3 gg Sg ; hasClit = HasRef False ;
hasClit = False ; ss = cn.s ! Sg ! Def ! ANomAcc ++ i.sp ! gg
ss = cn.s ! Sg ! Def ! ANomAcc ++ i.sp ! gg } ;
} ; SymbS sy = {s = \\_ => sy.s} ;
SymbS sy = {s = \\_ => sy.s} ;
SymbNum nn = {s,sp = \\_ => nn.s ; n = Pl; size = less20} ; -- need to know the size of the symbol to properly set it to less20 or plural
SymbNum nn = {s,sp = \\_ => nn.s ; n = Pl; size = less20} ; -- need to know the size of the symbol to properly set it to less20 or plural SymbOrd nn = {s = \\n,g,nc => case nc of
SymbOrd nn = {s = \\n,g,nc => case nc of {Da | Ge => artDem g n AGenDat ++ "de-" ++ artPos g n ANomAcc ++ nn.s ++ "-lea";
{Da | Ge => artDem g n AGenDat ++ "de-" ++ artPos g n ANomAcc ++ nn.s ++ "-lea"; _ => artPos g n ANomAcc ++ nn.s ++ "-lea"
_ => artPos g n ANomAcc ++ nn.s ++ "-lea" };
}; isPre = True
isPre = True } ;
} ;
lincat
lincat
Symb, [Symb] = SS ;
Symb, [Symb] = SS ;
lin
lin
MkSymb s = s ;
MkSymb s = s ;
BaseSymb = infixSS "ºi" ;
BaseSymb = infixSS "ºi" ; ConsSymb = infixSS "," ;
ConsSymb = infixSS "," ;
oper mkSymb : Str -> PN = \ss ->
oper mkSymb : Str -> PN = \ss -> { s = \\c => case c of
{ s = \\c => case c of {Da | Ge => "lui" ++ ss;
{Da | Ge => "lui" ++ ss; _ => ss
_ => ss };
}; g = Masc; n = Sg; a = Animate ;
g = Masc; n = Sg; a = Animate ; lock_PN = <>
lock_PN = <> };
};
}
}