blob: fdaf0cfe6a8a2beee179fff97ffaf9b0c8e9aeb2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# an alternative to }, moving the top stack element
# into closure storage and pushing it back before
# executing the block
{ "}" | *
{ /f deff /x defv
{ x f }
} quoted { } { * } ? *
} "}0" defq
5 { { dump }0 } * /dumpfive deff
5 { dump }0 /dumpfivetwo deff
7 dumpfive -
7 dumpfivetwo -
# import members of other objects into local scope
{
"_" | "-021" | ".|" | "-01" | |deff
} /usef defq
# codewalker
{ "lol" dump } /lol deff
{
1 /cont defv
{ cont } { 0 {
exe /walkelem deff
{ sys .out .writestr } /out deff
_ { { " " out } rep }0 /indent deff
{ 2 add walkelem }0 /walk deff
_ code [ {
indent [ "\"" -102 "\"\n" ] |out each
} {
indent _ sym _ out
"{" streq { 0 =cont |lol } { - } ? *
"\n" out
} {
blk |walk each
} ] * *
} * } loop
} /codewalk defq
{ f "t" g h { a b { c d } e } codewalk } *
|