version 1.15, 2011/12/28 13:39:49
|
version 1.16, 2012/05/26 12:11:43
|
Line 24
|
Line 24
|
' no.extensions dup dup Create r:fail A, A, A, |
' no.extensions dup dup Create r:fail A, A, A, |
|
|
: lit, ( n -- ) postpone Literal ; |
: lit, ( n -- ) postpone Literal ; |
: 2lit, ( n -- ) postpone 2Literal ; |
|
: nt, ( nt -- ) name>comp execute ; |
: nt, ( nt -- ) name>comp execute ; |
|
Variable nt-ex-r |
|
: nt-ex ( nt -- ) r> nt-ex-r ! name>int execute nt-ex-r @ >r ; |
|
|
' name>int |
' nt-ex |
:noname ( ... nt -- ... xt ) ['] nt, ; |
' nt, |
:noname ( ... nt -- xt ) ['] lit, ; |
' lit, |
Create r:word rot A, swap A, A, |
Create r:word rot A, swap A, A, |
|
|
: word-recognizer ( addr u -- nt r:word | addr u r:fail ) |
: word-recognizer ( addr u -- nt r:word | addr u r:fail ) |
2dup find-name [ [IFDEF] prelude-mask ] run-prelude [ [THEN] ] dup |
2dup find-name [ [IFDEF] prelude-mask ] run-prelude [ [THEN] ] dup |
IF nip nip r:word ELSE drop r:fail THEN ; |
IF nip nip r:word ELSE drop r:fail THEN ; |
|
|
:noname ['] noop ; |
' noop |
:noname ['] lit, ; |
' lit, |
dup |
dup |
Create r:num rot A, swap A, A, |
Create r:num rot A, swap A, A, |
|
|
:noname ['] noop ; |
' noop |
:noname ['] 2lit, ; |
:noname ( n -- ) postpone 2Literal ; |
dup |
dup |
Create r:2num rot A, swap A, A, |
Create r:2num rot A, swap A, A, |
|
|
Line 90 Variable forth-recognizer
|
Line 91 Variable forth-recognizer
|
\ xxx-recognizer do-recognizer ; |
\ xxx-recognizer do-recognizer ; |
|
|
: interpreter-r ( addr u -- ... xt ) |
: interpreter-r ( addr u -- ... xt ) |
forth-recognizer do-recognizer r>int perform ; |
forth-recognizer do-recognizer r>int @ ; |
|
|
' interpreter-r IS parser1 |
' interpreter-r IS parser1 |
|
|
: compiler-r ( addr u -- ... xt ) |
: compiler-r ( addr u -- ... xt ) |
forth-recognizer do-recognizer r>comp perform ; |
forth-recognizer do-recognizer r>comp @ ; |
|
|
: [ ( -- ) \ core left-bracket |
: [ ( -- ) \ core left-bracket |
\G Enter interpretation state. Immediate word. |
\G Enter interpretation state. Immediate word. |
Line 105 Variable forth-recognizer
|
Line 106 Variable forth-recognizer
|
\G Enter compilation state. |
\G Enter compilation state. |
['] compiler-r IS parser1 state on ; |
['] compiler-r IS parser1 state on ; |
|
|
: >int ( token table -- ) r>int perform execute ; |
: >int ( token table -- ) r>int perform ; |
: >comp ( token table -- ) r>comp perform execute ; |
: >comp ( token table -- ) r>comp perform ; |
: >postpone ( token table -- ) |
: >postpone ( token table -- ) |
>r r@ r>lit perform execute r> r>comp perform compile, ; |
>r r@ r>lit perform r> r>comp @ compile, ; |
|
|
: postpone ( "name" -- ) \ core |
: postpone ( "name" -- ) \ core |
\g Compiles the compilation semantics of @i{name}. |
\g Compiles the compilation semantics of @i{name}. |