Diff for /gforth/kernel/recognizer.fs between versions 1.15 and 1.16

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}.

Removed from v.1.15  
changed lines
  Added in v.1.16


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