Diff for /gforth/kernel/recognizer.fs between versions 1.9 and 1.10

version 1.9, 2011/10/06 20:47:38 version 1.10, 2011/10/06 21:02:57
Line 24 Line 24
 :noname ( ... nt -- ) name>int execute ;  :noname ( ... nt -- ) name>int execute ;
 :noname ( ... nt -- ) name>comp execute ;  :noname ( ... nt -- ) name>comp execute ;
 :noname ( ... nt -- ) postpone Literal ;  :noname ( ... nt -- ) postpone Literal ;
 Create r:interpreter rot A, swap A, A,  Create r:word rot A, swap A, A,
   
 : int-recognizer ( addr u -- nt int-table true | addr u false )  : word-recognizer ( addr u -- nt int-table true | addr u false )
     2dup find-name [ [IFDEF] prelude-mask ] run-prelude [ [THEN] ] dup      2dup find-name [ [IFDEF] prelude-mask ] run-prelude [ [THEN] ] dup
     IF      IF
         nip nip r:interpreter true  EXIT          nip nip r:word true  EXIT
     THEN ;      THEN ;
   
 ' noop  ' noop
 :noname  postpone Literal ;  :noname  postpone Literal ;
 dup  dup
 Create r:number rot A, swap A, A,  Create r:num rot A, swap A, A,
   
 ' noop  ' noop
 :noname  postpone 2Literal ;  :noname  postpone 2Literal ;
 dup  dup
 Create r:2number rot A, swap A, A,  Create r:2num rot A, swap A, A,
   
 \ snumber? should be implemented as recognizer stack  \ snumber? should be implemented as recognizer stack
   
 : num-recognizer ( addr u -- n/d int-table true | addr u false )  : num-recognizer ( addr u -- n/d int-table true | addr u false )
     2dup 2>r snumber?  dup      2dup 2>r snumber?  dup
     IF      IF
         2rdrop 0> IF  r:2number   ELSE  r:number  THEN  true  EXIT          2rdrop 0> IF  r:2num   ELSE  r:num  THEN  true  EXIT
     THEN      THEN
     drop 2r> false ;      drop 2r> false ;
   
Line 70  $10 Constant max-rec# Line 70  $10 Constant max-rec#
   
 Variable forth-recognizer  Variable forth-recognizer
   
 ' int-recognizer A, ' num-recognizer A, max-rec# 2 - cells allot  ' word-recognizer A, ' num-recognizer A, max-rec# 2 - cells allot
 2 forth-recognizer !  2 forth-recognizer !
 \ ' num-recognizer ' int-recognizer 2 forth-recognizer set-recognizers  \ ' num-recognizer ' word-recognizer 2 forth-recognizer set-recognizers
   
 \ recognizer loop  \ recognizer loop
   

Removed from v.1.9  
changed lines
  Added in v.1.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>