43 lines
781 B
Text
43 lines
781 B
Text
$ENTRY Go {
|
|
= <Sierp 4>;
|
|
};
|
|
|
|
Sierp {
|
|
s.N, <Rep <- <Pow2 s.N> 1> ' '>: e.F =
|
|
<Sierp1 e.F '*' e.F>;
|
|
};
|
|
|
|
Pow2 {
|
|
0 = 1;
|
|
s.N = <* 2 <Pow2 <- s.N 1>>>;
|
|
};
|
|
|
|
Rep {
|
|
0 s.C = ;
|
|
s.N s.C = s.C <Rep <- s.N 1> s.C>;
|
|
};
|
|
|
|
Sierp1 {
|
|
e.X, e.X: s.C e.Y, s.C: {
|
|
'*' = <Prout e.X>;
|
|
' ' = <Prout e.X> <Sierp1 <Sierp2 e.X>>;
|
|
};
|
|
};
|
|
|
|
Sierp2 {
|
|
e.X = <Sierp3 ' ' e.X ' '>;
|
|
};
|
|
|
|
Sierp3 {
|
|
e.X, e.X: s.C e.R, e.X: {
|
|
' ' e.Z = ' ' <Sierp3 e.R>;
|
|
' *' e.Z = '*' <Sierp3 e.R>;
|
|
' * ' e.Z = ' ' <Sierp3 e.R>;
|
|
' **' e.Z = '*' <Sierp3 e.R>;
|
|
'* ' e.Z = '*' <Sierp3 e.R>;
|
|
'* *' e.Z = ' ' <Sierp3 e.R>;
|
|
'** ' e.Z = '*' <Sierp3 e.R>;
|
|
'***' e.Z = ' ' <Sierp3 e.R>;
|
|
e.Z = ;
|
|
};
|
|
};
|