[gforth] / gforth / kernel / recognizer.fs  

gforth: gforth/kernel/recognizer.fs

Diff for /gforth/kernel/recognizer.fs between version 1.1 and 1.3

version 1.1, Wed Oct 5 20:48:16 2011 UTC version 1.3, Wed Oct 5 21:02:09 2011 UTC
Line 17 
Line 17 
   
 : recognizer: ( xt1 xt2 xt3 xt4 -- ) Create 2swap swap 2, swap 2, ;  : recognizer: ( xt1 xt2 xt3 xt4 -- ) Create 2swap swap 2, swap 2, ;
   
 : r>int     ( r-addr -- )  @ ;  (field) r>int     ( r-addr -- addr )  0 cells ,
 : r>compint ( r-addr -- )  cell+ @ ;  (field) r>compint ( r-addr -- )       1 cells ,
 : r>comp    ( r-addr -- )  cell+ cell+ @ ;  (field) r>comp    ( r-addr -- )       2 cells ,
 : r>lit     ( r-addr -- )  cell+ cell+ cell+ @ ;  (field) r>lit     ( r-addr -- )       3 cells ,
   
 :noname ( ... nt -- ) name>int execute ;  :noname ( ... nt -- ) name>int execute ;
 :noname ( ... nt -- ) name>int compile, ;  :noname ( ... nt -- ) name>int compile, ;
Line 53 
Line 53 
     THEN      THEN
     drop 2r> false ; Constant num-recognizer      drop 2r> false ; Constant num-recognizer
   
   ' no.extensions dup 2dup recognizer: r:fail
   
 \ recognizer stack  \ recognizer stack
   
 $10 Constant max-rec#  $10 Constant max-rec#
Line 77 
Line 79 
     dup cell+ swap @ cells bounds ?DO      dup cell+ swap @ cells bounds ?DO
         I perform IF  UNLOOP  EXIT  THEN          I perform IF  UNLOOP  EXIT  THEN
     cell +LOOP      cell +LOOP
     no.extensions ;      r:fail ;
   
 : interpreter-r ( addr u -- ... xt )  : interpreter-r ( addr u -- ... xt )
     forth-recognizer do-recognizer r>int ;      forth-recognizer do-recognizer r>int @ ;
   
 : compiler-r ( addr u -- ... xt )  : compiler-r ( addr u -- ... xt )
     forth-recognizer do-recognizer r>comp ;      forth-recognizer do-recognizer r>comp @ ;
   
 : [ ( -- ) \  core      left-bracket  : [ ( -- ) \  core      left-bracket
     \G Enter interpretation state. Immediate word.      \G Enter interpretation state. Immediate word.


Generate output suitable for use with a patch program
Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help