diff options
Diffstat (limited to 'jefs.fs')
| -rw-r--r-- | jefs.fs | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -2,6 +2,7 @@ \ things TODO: \ better error handling \ :noname +\ asciiz strings (for syscalls) \ DO LOOP \ s\" \ <builds does> @@ -192,12 +193,12 @@ variable hld \ FUCK is BYE but it takes an error code. its called that because you call it when shit is fucked. : fuck ( code -- ) 60 syscall1 ; \ TODO broken as shit -: (handler) error @ dup case +: (handler) >s0 error @ dup case 1 of ." stack underflow" endof 2 of ." word not found" endof ." unknown error" endcase cr fuck ; -\ : _ ' (handler) handler ! ; _ \ so broken that it breaks Seer +: _ ' (handler) handler ! ; _ \ i should do immediate ' at some point : >ffa ( lfa -- ffa ) 8 + ; : >nfa ( lfa -- nfa ) 9 + ; @@ -207,10 +208,15 @@ variable hld : (evaluate) ( c-addr u -- ) 0 >in ! ( u ) #tib ! ( c-addr ) tib ! interpret ; : evaluate ( c-addr u -- ) tib @ >r #tib @ >r >in @ >r (evaluate) r> >in ! r> #tib ! r> tib ! ; -: teststr3 s" 1 2 3 2drop drop" ; -teststr3 evaluate - \ FILE I/O {{{ +\ for syswrite see the top of the file +0 constant stdin +1 constant stdout +2 constant stderr \ }}} +: teststr3 s" 1 2 3 2drop drop" ; +teststr3 evaluate + +drop .free bye |
