forked from GitHub/gf-core
62 lines
1.1 KiB
Plaintext
62 lines
1.1 KiB
Plaintext
concrete Params4Cnc of Params4 = {
|
|
|
|
param
|
|
P = P1 | P2 ;
|
|
Q = Q1 | Q2 ;
|
|
R = RP P | RPQ P Q | R0 ;
|
|
X = XPQ P Q ;
|
|
|
|
lincat
|
|
P_ = P ;
|
|
Q_ = Q ;
|
|
S = Str ;
|
|
|
|
lin
|
|
p1 = P1 ;
|
|
p2 = P2 ;
|
|
q1 = Q1 ;
|
|
q2 = Q2 ;
|
|
|
|
pqrec p q = tblPQRec ! { p = p ; q = q } ;
|
|
|
|
rp p = tblR ! RP p ;
|
|
rpq p q = tblR ! RPQ p q ;
|
|
r0 = tblR ! R0 ;
|
|
|
|
xpq p q = tblX ! XPQ p q ;
|
|
|
|
oper
|
|
tblP : P => Str ;
|
|
tblP = table {
|
|
P1 => "P1";
|
|
P2 => "P2"
|
|
} ;
|
|
|
|
tblPQRec : {p:P; q:Q} => Str ;
|
|
tblPQRec = table {
|
|
{p=P1; q=Q1} => "P1 ; Q1";
|
|
{p=P1; q=Q2} => "P1 ; Q2";
|
|
{p=P2; q=Q1} => "P2 ; Q1";
|
|
{p=P2; q=Q2} => "P2 ; Q2"
|
|
} ;
|
|
|
|
tblR : R => Str ;
|
|
tblR = table {
|
|
RP P1 => "RP P1";
|
|
RP P2 => "RP P2";
|
|
RPQ P1 Q1 => "RPQ P1 Q1";
|
|
RPQ P1 Q2 => "RPQ P1 Q2";
|
|
RPQ P2 Q1 => "RPQ P2 Q1";
|
|
RPQ P2 Q2 => "RPQ P2 Q2";
|
|
R0 => "R0"
|
|
} ;
|
|
|
|
tblX : X => Str ;
|
|
tblX = table {
|
|
XPQ P1 Q1 => "XPQ P1 Q1";
|
|
XPQ P1 Q2 => "XPQ P1 Q2";
|
|
XPQ P2 Q1 => "XPQ P2 Q1";
|
|
XPQ P2 Q2 => "XPQ P2 Q2"
|
|
} ;
|
|
}
|