root/trunk/thune/boot.c

Revision 540, 5.2 kB (checked in by krobillard, 5 months ago)

Thune

  • Implemented date!. Added ur_arrayExpand(), save.

ThuneGL

  • Added line-edit widget, blit, move-glyphs.
  • Can now make font from texture & binary.
  • Optimized renderGlyphXY() a bit.
  • twidget close event handler works again.
  • Updated thune-gl.spec for renamed glv RPM.
Line 
1/* Generated by mkboot.t */
2
3static char _bootScript[] =
4  "context! [\n"
5  "  logic! 1 make :true\n"
6  "  logic! 0 make :false\n"
7  "  opcode!  0 'nop     make :nop\n"
8  "  opcode!  3 'drop    make :drop\n"
9  "  opcode!  4 'dup     make :dup\n"
10  "  opcode!  5 'dup2    make :dup2\n"
11  "  opcode!  6 'over    make :over\n"
12  "  opcode!  7 'swap    make :swap\n"
13  "  opcode!  8 'nip     make :nip\n"
14  "  opcode!  9 'tuck    make :tuck\n"
15  "  opcode! 10 'rot     make :rot\n"
16  "  opcode! 11 'rot.r   make :rot.r\n"
17  "  opcode! 12 'do      make :do\n"
18  "  opcode! 13 'proc    make :proc\n"
19  "  opcode! 14 'iter    make :iter\n"
20  "  opcode! 15 'each    make :each\n"
21  "  opcode! 16 'recurse make :recurse\n"
22  "  opcode! 17 'return  make :return\n"
23  "  opcode! 18 'throw   make :throw\n"
24  "  opcode! 19 'try     make :try\n"
25  "  opcode! 20 'ift     make :ift\n"
26  "  opcode! 21 'if-some make :if-some\n"
27  "  opcode! 22 'iff     make :iff\n"
28  "  opcode! 23 'or-else make :or-else\n"
29  "  opcode! 24 'if      make :if\n"
30  "  opcode! 25 'halt    make :halt\n"
31  "  opcode! 26 'quit    make :quit\n"
32  "  opcode! 27 'inc     make :inc\n"
33  "  opcode! 28 'dec     make :dec\n"
34  "  opcode! 29 '++      make :++\n"
35  "  opcode! 30 '--      make :--\n"
36  "  opcode! 31 'verify  make :verify\n"
37  "  opcode! 32 'forever make :forever\n"
38  "  opcode! 33 'loop    make :loop\n"
39  "  int!/decimal! :number!\n"
40  "  word!/set-word!/get-word!/lit-word! :any-word!\n"
41  "  binary!/string!/block!/paren! :series!\n"
42  "] make :kernel-ops\n"
43;
44
45static char _envScript[] =
46  "logic! 1 make dup :yes :on\n"
47  "logic! 0 make dup :no :off\n"
48  "char!  9 make :tab\n"
49  "char! 10 make :eol\n"
50  "3.14159265358979323846 :pi\n"
51  "tail?: :empty?\n"
52  "[quit] proc :q\n"
53  "[block!  swap make] proc :to-block\n"
54  "[string! to] proc :to-string\n"
55  "[context! swap make] proc :context\n"
56  "[\n"
57  "  read\n"
58  "  dup \"#!\" match ift (eol find)\n"
59  "  to-block kernel-ops infuse\n"
60  "] proc :load    ;(filename -- block)\n"
61  "[open swap string! to write close] proc :save    ;(value filename -- )\n"
62  "[select if-some do] proc :case\n"
63  "['break throw] proc :break\n"
64  "[\n"
65  "  [dup do iff break over do] forever\n"
66  "  drop drop\n"
67  "]\n"
68  "'loop proc :while  ;(block cond -- )\n"
69  "[body  n number!  limit number!] [\n"
70  "  n\n"
71  "  [[dup limit lt? iff break  dup body do  inc]\n"
72  "   [dup limit gt? iff break  dup body do  dec]]\n"
73  "  over limit lt? pick\n"
74  "  forever drop\n"
75  "] 'loop func :loop.to\n"
76  "[ser words block! body block!]\n"
77  "[\n"
78  "  ser [words set body do] words length? iter\n"
79  "]\n"
80  "'loop func :each.set    ;(ser words body -- )\n"
81  "[ser comb] [\n"
82  "  ser [dup first comb do 1 poke drop] iter\n"
83  "] 'loop func :map       ;(ser comb -- )\n"
84  "[[do if-some return] each false] proc :any    ; (blk -- logic)\n"
85  "[[do dup iff return drop] each true] proc :all    ; (blk -- logic)\n"
86  "[ser old new | len] [\n"
87  "  old length? :len\n"
88  "  ser old find if-some (new len change :ser recurse)\n"
89  "  ser\n"
90  "] func :replace.all     ;(ser old new -- ser)\n"
91  "[reduce to-text console.out] proc :prin  ;(val -- )\n"
92  "[reduce [first to-text console.out] iter] proc :prin.pack  ;(val -- )\n"
93  "[reduce to-text console.out eol console.out] proc :print   ;(val -- )\n"
94  "[error! swap make throw] proc :error\n"
95  "[swap context bind proc] proc :proc.env      ;(env body -- proc)\n"
96  "[rot  context bind func] proc :func.env      ;(env sig body -- func)\n"
97  "[\n"
98  "  [some none] copy swap 2 poke\n"
99  "  parse\n"
100  "  dup tail? iff (\n"
101  "    \"parse.some failed at -^/\" copy\n"
102  "      swap string! as 80 copy.part\n"
103  "      append\n"
104  "    error\n"
105  "  ) drop\n"
106  "]\n"
107  "proc :parse.some  ;(data rules -- )\n"
108  "[\n"
109  "  0,0,5 :version\n"
110  "  none :os\n"
111  "  [] :devices\n"
112  "]\n"
113  "context :script-env\n"
114  "[swap copy swap append head] proc :join   ; (base addition -- new)\n"
115  "[val block!]\n"
116  "[\n"
117  "  val dup empty? ift return\n"
118  "  reduce\n"
119  "  dup first\n"
120  "    dup series! is-type? [copy] [to-text] either :val\n"
121  "  next [\n"
122  "    first val swap append drop\n"
123  "  ] iter\n"
124  "  val\n"
125  "] func :rejoin  ; (block -- string)\n"
126  "[ser pat rep]\n"
127  "[\n"
128  "  ser [dup first pat if/eq (rep 1 poke) drop] iter\n"
129  "  ser\n"
130  "]\n"
131  "func :replace   ; (ser pat rep -- ser)\n"
132  "[bind [dup second swap first set] iter/2] proc :set-key-values ; (blk ctx -- )\n"
133  "[now swap do now swap sub] proc :time-blk\n"
134  "[\n"
135  "  dup [\n"
136  "    \".\"   [drop \"./\"  none]\n"
137  "    \"..\"  [drop \"../\"  none]\n"
138  "    [\n"
139  "      dup last '/' eq? ift (none return)\n"
140  "      dup '/' find.last dup iff (swap return)\n"
141  "      ; fullpath file\n"
142  "      next\n"
143  "      dup2 slice\n"
144  "      rot.r nip\n"
145  "    ]\n"
146  "  ] case\n"
147  "] proc :split-path    ; (fullpath -- path file)\n"
148  "[\n"
149  "  dup last dup '/' if/eq (drop return)\n"
150  "    '\\' if/eq return\n"
151  "  '/' append head\n"
152  "] proc :dirize    ; (path -- path)\n"
153  "[0 swap add] proc :to-dec\n"
154  "[rot minimum maximum] proc :limit   ; (n min max -- n)\n"
155  "[blk | ctx num word]\n"
156  "[\n"
157  "  [] context :ctx\n"
158  "  blk [num word][\n"
159  "    opcode! num word make word ctx set\n"
160  "  ] each.set\n"
161  "  ctx\n"
162  "] func :make-opcodes    ; (block -- ctx)\n"
163;
Note: See TracBrowser for help on using the browser.