| 2swap |
2swap |
| 2dup s" -e" compare 0= >r |
2dup s" -e" compare 0= >r |
| 2dup s" --evaluate" compare 0= r> or |
2dup s" --evaluate" compare 0= r> or |
| IF 2drop dup >r ['] evaluate catch |
IF 2drop dup >r evaluate |
| ?dup IF dup >r DoError r> negate (bye) THEN |
|
| r> >tib +! 2 EXIT THEN |
r> >tib +! 2 EXIT THEN |
| |
2dup s" -h" compare 0= >r |
| |
2dup s" --help" compare 0= r> or |
| |
IF ." Image Options:" cr |
| |
." FILE load FILE (with `require')" cr |
| |
." -e STRING, --evaluate STRING interpret STRING (with `EVALUATE')" cr |
| |
." Report bugs to <bug-gforth@gnu.ai.mit.edu>" cr |
| |
bye |
| |
THEN |
| ." Unknown option: " type cr 2drop 1 ; |
." Unknown option: " type cr 2drop 1 ; |
| |
|
| : (process-args) ( -- ) |
: (process-args) ( -- ) |
| true to script? |
true to script? |
| >tib @ >r |
>tib @ >r #tib @ >r >in @ >r |
| argc @ 1 |
argc @ 1 |
| ?DO |
?DO |
| I arg over c@ [char] - <> |
I arg over c@ [char] - <> |
| IF |
IF |
| |
2dup dup #tib ! >in ! >tib ! |
| required 1 |
required 1 |
| ELSE |
ELSE |
| I 1+ argc @ = IF s" " ELSE I 1+ arg THEN |
I 1+ argc @ = IF s" " ELSE I 1+ arg THEN |
| do-option |
do-option |
| THEN |
THEN |
| +LOOP |
+LOOP |
| r> >tib ! |
r> >in ! r> #tib ! r> >tib ! |
| false to script? |
false to script? |
| ; |
; |
| |
|