Changeset 79 for trunk/orca/boot.c
- Timestamp:
- 03/08/06 16:17:33 (3 years ago)
- Files:
-
- 1 modified
-
trunk/orca/boot.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/orca/boot.c
r77 r79 2 2 3 3 static char _natives[] = 4 "sizeof: native [] \n"5 "comment: native [value] \n"4 "sizeof: native []\n" 5 "comment: native [value]\n" 6 6 "set: native [\n" 7 " word \n"8 " value\n" 9 "] \n"7 " word\n" 8 " value\n" 9 "]\n" 10 10 "unset: native [\n" 11 11 " word [word! block!]\n" 12 "] \n"13 "value?: native [val] \n"14 "any-word?: native [val] \n"12 "]\n" 13 "value?: native [val]\n" 14 "any-word?: native [val]\n" 15 15 "get: native [\n" 16 16 " word\n" 17 "] \n"17 "]\n" 18 18 "do: native [\n" 19 " \"Evaluates a block or any other value.\" \n"20 " value \n"19 " \"Evaluates a block or any other value.\"\n" 20 " value\n" 21 21 " /args arg\n" 22 "] \n"22 "]\n" 23 23 "make: native [\n" 24 " \"Construct new value\" \n"25 " type \n"24 " \"Construct new value\"\n" 25 " type\n" 26 26 " spec\n" 27 "] \n"27 "]\n" 28 28 "bind: native [\n" 29 " words [block! word!] \n"30 " known-word [word! object!] \n"29 " words [block! word!]\n" 30 " known-word [word! object!]\n" 31 31 " /copy\n" 32 "] \n"32 "]\n" 33 33 "in: native [\n" 34 " object [object!] \n"34 " object [object!]\n" 35 35 " word [word!]\n" 36 "] \n"36 "]\n" 37 37 "use: native [\n" 38 " words [block! word!] \n"39 " body [block!]\n" 40 "] \n"38 " words [block! word!]\n" 39 " body [block!]\n" 40 "]\n" 41 41 "copy: native [\n" 42 " value [series! bitset! matrix!] \n"43 " /part \n"44 " range [integer! series!] \n"42 " value [series! bitset! matrix!]\n" 43 " /part\n" 44 " range [integer! series!]\n" 45 45 " /deep\n" 46 "] \n"46 "]\n" 47 47 "change: native [\n" 48 " series [series!] \n"49 " value \n"50 " /part \n"51 " range [integer! series!] \n"48 " series [series!]\n" 49 " value\n" 50 " /part\n" 51 " range [integer! series!]\n" 52 52 " /only\n" 53 "] \n"53 "]\n" 54 54 "find: native [\n" 55 " series [series!] \n"56 " value \n"57 " /match \n"55 " series [series!]\n" 56 " value\n" 57 " /match\n" 58 58 " /last\n" 59 "] \n"59 "]\n" 60 60 "reduce: native [\n" 61 61 " value\n" 62 "] \n"62 "]\n" 63 63 "compose: native [\n" 64 " value \n"64 " value\n" 65 65 " /deep\n" 66 "] \n"66 "]\n" 67 67 "form: native [\n" 68 68 " value\n" 69 "] \n"69 "]\n" 70 70 "mold: native [\n" 71 71 " value\n" 72 "] \n"73 "not: native [value] \n"74 "print: native [value] \n"75 "prin: native [value] \n"72 "]\n" 73 "not: native [value]\n" 74 "print: native [value]\n" 75 "prin: native [value]\n" 76 76 "clear: native [\n" 77 77 " series [series! none!]\n" 78 "] \n"78 "]\n" 79 79 "skip: native [\n" 80 " series [series!] \n"80 " series [series!]\n" 81 81 " offset [number! logic!]\n" 82 "] \n"82 "]\n" 83 83 "at: native [\n" 84 " series [series!] \n"84 " series [series!]\n" 85 85 " index [number! logic!]\n" 86 "] \n"86 "]\n" 87 87 "pick: native [\n" 88 " series [series! tuple! matrix!] \n"88 " series [series! tuple! matrix!]\n" 89 89 " index [number! logic!]\n" 90 "] \n"90 "]\n" 91 91 "poke: native [\n" 92 " value \n"93 " index [number! logic!] \n"92 " value\n" 93 " index [number! logic!]\n" 94 94 " data\n" 95 "] \n"95 "]\n" 96 96 "select: native [\n" 97 " series [series!] \n"98 " value\n" 99 "] \n"100 "first: native [value] \n"101 "second: native [value] \n"102 "third: native [value] \n"103 "last: native [value [series! tuple!]] \n"97 " series [series!]\n" 98 " value\n" 99 "]\n" 100 "first: native [value]\n" 101 "second: native [value]\n" 102 "third: native [value]\n" 103 "last: native [value [series! tuple!]]\n" 104 104 "reverse: native [\n" 105 " value [series! tuple! pair!] \n"106 " /part \n"105 " value [series! tuple! pair!]\n" 106 " /part\n" 107 107 " range [integer! series!]\n" 108 "] \n"108 "]\n" 109 109 "parse: native [\n" 110 " input [series!] \n"111 " rules [block! string! none!] \n"112 " /all \n"110 " input [series!]\n" 111 " rules [block! string! none!]\n" 112 " /all\n" 113 113 " /case\n" 114 "] \n"115 "type?: native [value /word] \n"116 "length?: native [value [series! tuple!]] \n"117 "any-string?: native [value] \n"118 "any-block?: native [value] \n"119 "binary?: \n"120 "bitset?: \n"121 "block?: \n"122 "char?: \n"123 "datatype?: \n"124 "decimal?: \n"125 "error?: \n"126 "file?: \n"127 "function?: \n"128 "getword?: \n"129 "hash?: \n"130 "integer?: \n"131 "issue?: \n"132 "list?: \n"133 "litpath?: \n"134 "litword?: \n"135 "logic?: \n"136 "native?: \n"137 "none?: \n"138 "number?: \n"139 "object?: \n"140 "op?: \n"141 "pair?: \n"142 "paren?: \n"143 "path?: \n"144 "refinement?: \n"145 "series?: \n"146 "setpath?: \n"147 "setword?: \n"148 "string?: \n"149 "tag?: \n"150 "time?: \n"151 "tuple?: \n"152 "unset?: \n"153 "word?: native [value] \n"114 "]\n" 115 "type?: native [value /word]\n" 116 "length?: native [value [series! tuple!]]\n" 117 "any-string?: native [value]\n" 118 "any-block?: native [value]\n" 119 "binary?:\n" 120 "bitset?:\n" 121 "block?:\n" 122 "char?:\n" 123 "datatype?:\n" 124 "decimal?:\n" 125 "error?:\n" 126 "file?:\n" 127 "function?:\n" 128 "getword?:\n" 129 "hash?:\n" 130 "integer?:\n" 131 "issue?:\n" 132 "list?:\n" 133 "litpath?:\n" 134 "litword?:\n" 135 "logic?:\n" 136 "native?:\n" 137 "none?:\n" 138 "number?:\n" 139 "object?:\n" 140 "op?:\n" 141 "pair?:\n" 142 "paren?:\n" 143 "path?:\n" 144 "refinement?:\n" 145 "series?:\n" 146 "setpath?:\n" 147 "setword?:\n" 148 "string?:\n" 149 "tag?:\n" 150 "time?:\n" 151 "tuple?:\n" 152 "unset?:\n" 153 "word?: native [value]\n" 154 154 "to: native [\n" 155 " type \n"156 " value\n" 157 "] \n"158 "disarm: native [error [error!]] \n"159 "try: native [block [block!]] \n"155 " type\n" 156 " value\n" 157 "]\n" 158 "disarm: native [error [error!]]\n" 159 "try: native [block [block!]]\n" 160 160 "catch: native [\n" 161 " block [block!] \n"161 " block [block!]\n" 162 162 " /name word [word!]\n" 163 "] \n"164 "throw: native [value /name word [word!]] \n"165 "does: native [value] \n"163 "]\n" 164 "throw: native [value /name word [word!]]\n" 165 "does: native [value]\n" 166 166 "func: native [\n" 167 " spec [block!] \n"168 " body [block!]\n" 169 "] \n"167 " spec [block!]\n" 168 " body [block!]\n" 169 "]\n" 170 170 "if: native [\n" 171 " condition \n"171 " condition\n" 172 172 " then-block [block!]\n" 173 "] \n"173 "]\n" 174 174 "unless: native [\n" 175 " condition \n"175 " condition\n" 176 176 " then-block [block!]\n" 177 "] \n"177 "]\n" 178 178 "either: native [\n" 179 " condition \n"180 " then-block [block!] \n"179 " condition\n" 180 " then-block [block!]\n" 181 181 " else-block [block!]\n" 182 "] \n"182 "]\n" 183 183 "any: native [\n" 184 184 " block [block!]\n" 185 "] \n"185 "]\n" 186 186 "all: native [\n" 187 187 " block [block!]\n" 188 "] \n"188 "]\n" 189 189 "loop: native [\n" 190 " count [integer!] \n"190 " count [integer!]\n" 191 191 " block [block!]\n" 192 "] \n"192 "]\n" 193 193 "repeat: native [\n" 194 " 'word [word!] \n"195 " value [integer! series!] \n"194 " 'word [word!]\n" 195 " value [integer! series!]\n" 196 196 " block [block!]\n" 197 "] \n"197 "]\n" 198 198 "foreach: native [\n" 199 " 'word [word! block!] \n"200 " data [series!] \n"201 " body [block!]\n" 202 "] \n"199 " 'word [word! block!]\n" 200 " data [series!]\n" 201 " body [block!]\n" 202 "]\n" 203 203 "remove-each: native [\n" 204 " 'word [word! block!] \n"205 " data [series!] \n"206 " body [block!]\n" 207 "] \n"204 " 'word [word! block!]\n" 205 " data [series!]\n" 206 " body [block!]\n" 207 "]\n" 208 208 "while: native [\n" 209 " cond [block!] \n"210 " body [block!]\n" 211 "] \n"209 " cond [block!]\n" 210 " body [block!]\n" 211 "]\n" 212 212 "until: native [\n" 213 213 " cond [block!]\n" 214 "] \n"214 "]\n" 215 215 "break: native [\n" 216 " /return \n"217 " value\n" 218 "] \n"216 " /return\n" 217 " value\n" 218 "]\n" 219 219 "return: native [\n" 220 220 " value\n" 221 "] \n"222 "exit: native [] \n"221 "]\n" 222 "exit: native []\n" 223 223 "back: native [\n" 224 224 " series [series!]\n" 225 "] \n"225 "]\n" 226 226 "next: native [\n" 227 227 " series [series!]\n" 228 "] \n"228 "]\n" 229 229 "head: native [\n" 230 230 " series [series!]\n" 231 "] \n"231 "]\n" 232 232 "tail: native [\n" 233 233 " series [series!]\n" 234 "] \n"234 "]\n" 235 235 "index?: native [\n" 236 236 " series [series!]\n" 237 "] \n"237 "]\n" 238 238 "head?: native [\n" 239 239 " series [series!]\n" 240 "] \n"240 "]\n" 241 241 "tail?: native [\n" 242 242 " series [series!]\n" 243 "] \n"243 "]\n" 244 244 "insert: native [\n" 245 " series [series!] \n"246 " value \n"247 " /part \n"248 " range [integer! series!] \n"245 " series [series!]\n" 246 " value\n" 247 " /part\n" 248 " range [integer! series!]\n" 249 249 " /only\n" 250 "] \n"250 "]\n" 251 251 "remove: native [\n" 252 " series [series! none!] \n"253 " /part \n"252 " series [series! none!]\n" 253 " /part\n" 254 254 " range [integer! series! pair!]\n" 255 "] \n"255 "]\n" 256 256 "lowercase: native [\n" 257 " string [string! file!] \n"257 " string [string! file!]\n" 258 258 " /part range [integer!]\n" 259 "] \n"259 "]\n" 260 260 "uppercase: native [\n" 261 " string [string! file!] \n"261 " string [string! file!]\n" 262 262 " /part range [integer!]\n" 263 "] \n"263 "]\n" 264 264 "load: native [\n" 265 265 " source [file! string!]\n" 266 "] \n"267 "open: native [what] \n"268 "close: native [port [port!]] \n"266 "]\n" 267 "open: native [what]\n" 268 "close: native [port [port!]]\n" 269 269 "read: native [\n" 270 " source [file! port!] \n"271 " /binary \n"272 " /lines \n"273 " /skip length [number!] \n"270 " source [file! port!]\n" 271 " /binary\n" 272 " /lines\n" 273 " /skip length [number!]\n" 274 274 " /part size [number!]\n" 275 "] \n"275 "]\n" 276 276 "write: native [\n" 277 " dest [file! port! object! block!] \n"278 " value \n"279 " /binary \n"277 " dest [file! port! object! block!]\n" 278 " value\n" 279 " /binary\n" 280 280 " /append\n" 281 "] \n"281 "]\n" 282 282 "rename: native [\n" 283 " old [file!] \n"283 " old [file!]\n" 284 284 " new [file! string!]\n" 285 "] \n"285 "]\n" 286 286 "delete: native [\n" 287 287 " what [file!]\n" 288 "] \n"288 "]\n" 289 289 "exists?: native [\n" 290 290 " target [file!]\n" 291 "] \n"291 "]\n" 292 292 "size?: native [\n" 293 293 " target [file!]\n" 294 "] \n"294 "]\n" 295 295 "dir?: native [\n" 296 296 " target [file!]\n" 297 "] \n"297 "]\n" 298 298 "modified?: native [\n" 299 299 " target [file!]\n" 300 "] \n"301 "getenv: native [name [string!]] \n"300 "]\n" 301 "getenv: native [name [string!]]\n" 302 302 "call: native [\n" 303 " command [string! block!] \n"304 " /output \n"305 " out [string! file! none!] \n"303 " command [string! block!]\n" 304 " /output\n" 305 " out [string! file! none!]\n" 306 306 " /wait\n" 307 "] \n"308 "change-dir: native [value] \n"309 "what-dir: native [] \n"310 "make-dir: native [path [file!]] \n"311 "clean-path: native [path [file!]] \n"312 "recycle: native [/off /on] \n"313 "halt: native [] \n"314 "quit: native [] \n"307 "]\n" 308 "change-dir: native [value]\n" 309 "what-dir: native []\n" 310 "make-dir: native [path [file!]]\n" 311 "clean-path: native [path [file!]]\n" 312 "recycle: native [/off /on]\n" 313 "halt: native []\n" 314 "quit: native []\n" 315 315 "protect: native [\n" 316 316 " value [word! block!]\n" 317 "] \n"317 "]\n" 318 318 "now: native [\n" 319 319 " /time\n" 320 "] \n"320 "]\n" 321 321 "trim: native [\n" 322 " string [string! series!] \n"323 " /auto \n"324 " /head \n"322 " string [string! series!]\n" 323 " /auto\n" 324 " /head\n" 325 325 " /tail\n" 326 "] \n"327 "dump: native [val] \n"328 "same?: native [v1 v2] \n"329 "equal?: native [v1 v2] \n"330 "strict-equal?: native [v1 v2] \n"331 "greater-or-equal?: native [v1 v2] \n"332 "greater?: native [v1 v2] \n"333 "lesser-or-equal?: native [v1 v2] \n"334 "lesser?: native [v1 v2] \n"335 "odd?: native [number [number! char!]] \n"336 "even?: native [number [number! char!]] \n"337 "abs: native [number [number! pair!]] \n"338 "complement: native [value [logic! integer! bitset!]] \n"339 "negate: native [number [number! pair! bitset! vec3!]] \n"340 "sine: native [value [number!] /radians] \n"341 "cosine: native [value [number!] /radians] \n"342 "arcsine: native [value [number!] /radians] \n"343 "arccosine: native [value [number!] /radians] \n"344 "tangent: native [value [number!] /radians] \n"345 "arctangent: native [value [number!] /radians] \n"346 "square-root: native [value [number!]] \n"347 "random: native [value /seed /only] \n"348 "power: native [x [number!] y [number!]] \n"326 "]\n" 327 "dump: native [val]\n" 328 "same?: native [v1 v2]\n" 329 "equal?: native [v1 v2]\n" 330 "strict-equal?: native [v1 v2]\n" 331 "greater-or-equal?: native [v1 v2]\n" 332 "greater?: native [v1 v2]\n" 333 "lesser-or-equal?: native [v1 v2]\n" 334 "lesser?: native [v1 v2]\n" 335 "odd?: native [number [number! char!]]\n" 336 "even?: native [number [number! char!]]\n" 337 "abs: native [number [number! pair!]]\n" 338 "complement: native [value [logic! integer! bitset!]]\n" 339 "negate: native [number [number! pair! bitset! vec3!]]\n" 340 "sine: native [value [number!] /radians]\n" 341 "cosine: native [value [number!] /radians]\n" 342 "arcsine: native [value [number!] /radians]\n" 343 "arccosine: native [value [number!] /radians]\n" 344 "tangent: native [value [number!] /radians]\n" 345 "arctangent: native [value [number!] /radians]\n" 346 "square-root: native [value [number!]]\n" 347 "random: native [value /seed /only]\n" 348 "power: native [x [number!] y [number!]]\n" 349 349 "remainder: native [\n" 350 " x [number!] \n"350 " x [number!]\n" 351 351 " y [number!]\n" 352 "] \n"353 "compress: native [data [string! binary!]] \n"354 "decompress: native [data [binary!]] \n"355 "dot: native [a [vec3!] b [vec3!]] \n"356 "cross: native [a [vec3!] b [vec3!]] \n"352 "]\n" 353 "compress: native [data [string! binary!]]\n" 354 "decompress: native [data [binary!]]\n" 355 "dot: native [a [vec3!] b [vec3!]]\n" 356 "cross: native [a [vec3!] b [vec3!]]\n" 357 357 "normalize: native [vec [vec3!]]\n" 358 358 ; 359 359 360 360 static char _boot[] = 361 "context: func [blk [block!]] [make object! blk] \n"362 "probe: func [value] [print mold :value :value] \n"361 "context: func [blk [block!]] [make object! blk]\n" 362 "probe: func [value] [print mold :value :value]\n" 363 363 "source: func ['word] [\n" 364 " prin rejoin [word \": \"] \n"364 " prin rejoin [word \": \"]\n" 365 365 " either function? get word [\n" 366 366 " print mold get word\n" 367 367 " ] [\n" 368 " either native? get word \n"369 " [print mold get word] \n"368 " either native? get word\n" 369 " [print mold get word]\n" 370 370 " [print \"is not a function\"]\n" 371 371 " ]\n" 372 "] \n"372 "]\n" 373 373 "function: func [\n" 374 " spec [block!] \n"375 " vars [block!] \n"374 " spec [block!]\n" 375 " vars [block!]\n" 376 376 " body [block!]\n" 377 377 "] [\n" 378 378 " func head insert insert tail copy spec /local vars body\n" 379 "] \n"380 "true: yes: on: make logic! 1 \n"381 "false: no: off: make logic! 0 \n"382 "newline: #\"^/\" \n"383 "empty?: :tail? \n"384 "q: :quit \n"385 "orca: true \n"379 "]\n" 380 "true: yes: on: make logic! 1\n" 381 "false: no: off: make logic! 0\n" 382 "newline: #\"^/\"\n" 383 "empty?: :tail?\n" 384 "q: :quit\n" 385 "orca: true\n" 386 386 "system: context [\n" 387 " version: 0.0.23 \n"388 " os: none \n"387 " version: 0.0.23\n" 388 " os: none\n" 389 389 " error: context [\n" 390 390 " msg: type: id: near: none\n" 391 " ] \n"392 " error-types: ['syntax 'script 'math 'access 'internal] \n"393 " words: none \n"391 " ]\n" 392 " error-types: ['syntax 'script 'math 'access 'internal]\n" 393 " words: none\n" 394 394 " script-proto: context [\n" 395 " args: \n"396 " path: \n"397 " parent: \n"395 " args:\n" 396 " path:\n" 397 " parent:\n" 398 398 " header: none\n" 399 " ] \n"399 " ]\n" 400 400 " script: none\n" 401 "] \n"402 "protect 'system \n"403 "protect 'datatypes \n"404 "to-binary: func [value] [to binary! :value] \n"405 "to-bitset: func [value] [to bitset! :value] \n"406 "to-block: func [value] [to block! :value] \n"407 "to-char: func [value] [to char! :value] \n"408 "to-decimal: func [value] [to decimal! :value] \n"409 "to-file: func [value] [to file! :value] \n"410 "to-get-word: func [value] [to get-word! :value] \n"411 "to-integer: func [value] [to integer! :value] \n"412 "to-issue: func [value] [to issue! :value] \n"413 "to-lit-path: func [value] [to lit-path! :value] \n"414 "to-lit-word: func [value]
