blob: f09a7ded312dd633f9e1a462e12d852830f8b48a (
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 { } { * } ? *
} "}_" defq
5 { { dump }_ } * /dumpfive deff
5 { dump }_ /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 }_ /indent deff
{ 2 add walkelem }_ /walk deff
_ code [ {
indent [ "\"" -102 "\"\n" ] |out each
} {
indent _ sym _ out
"{" eq { 0 =cont |lol } { -- } ? *
"\n" out
} {
blk |walk each
} ] * *
} * } loop
} /codewalk defq
{ f "t" g h { a b { c d } e } codewalk } *
|