mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-26 11:18:55 -06:00
SymbolRon
This commit is contained in:
@@ -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 = <>
|
};
|
||||||
};
|
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user