Diff for /gforth/prims2x.fs between versions 1.130 and 1.135

version 1.130, 2003/01/30 16:14:31 version 1.135, 2003/03/22 10:04:07
Line 1 Line 1
 \ converts primitives to, e.g., C code   \ converts primitives to, e.g., C code 
   
 \ Copyright (C) 1995,1996,1997,1998,2000 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 63  warnings off Line 63  warnings off
 \ warnings on  \ warnings on
   
 include ./gray.fs  include ./gray.fs
 32 constant max-effect \ number of things on one side of a stack effect  128 constant max-effect \ number of things on one side of a stack effect
 4 constant max-stacks  \ the max. number of stacks (including inst-stream).  4 constant max-stacks  \ the max. number of stacks (including inst-stream).
 255 constant maxchar  255 constant maxchar
 maxchar 1+ constant eof-char  maxchar 1+ constant eof-char
Line 608  wordlist constant type-names \ this is h Line 608  wordlist constant type-names \ this is h
     get-current type-names set-current      get-current type-names set-current
     stack-type 2dup nextname stack-type-name      stack-type 2dup nextname stack-type-name
     set-current      set-current
     stack-pointer lastxt >body stack-name nextname make-stack ;      stack-pointer latestxt >body stack-name nextname make-stack ;
   
 stack inst-stream IP Cell  stack inst-stream IP Cell
 ' inst-in-index inst-stream stack-in-index-xt !  ' inst-in-index inst-stream stack-in-index-xt !
Line 631  stack inst-stream IP Cell Line 631  stack inst-stream IP Cell
 : compute-offset-out ( addr1 addr2 -- )  : compute-offset-out ( addr1 addr2 -- )
     ['] stack-out compute-offset ;      ['] stack-out compute-offset ;
   
 : clear-stack ( stack -- )  
     dup stack-in off stack-out off ;  
   
 : compute-offsets ( -- )  : compute-offsets ( -- )
     ['] clear-stack map-stacks      prim prim-stacks-in  max-stacks cells erase
       prim prim-stacks-out max-stacks cells erase
     prim prim-effect-in  prim prim-effect-in-end  @ ['] compute-offset-in  map-items      prim prim-effect-in  prim prim-effect-in-end  @ ['] compute-offset-in  map-items
     prim prim-effect-out prim prim-effect-out-end @ ['] compute-offset-out map-items      prim prim-effect-out prim prim-effect-out-end @ ['] compute-offset-out map-items
     inst-stream stack-out @ 0= s" # can only be on the input side" ?print-error ;      inst-stream stack-out @ 0= s" # can only be on the input side" ?print-error ;
Line 1331  print-token ! Line 1329  print-token !
 : checksynclines ( -- )  : checksynclines ( -- )
     \ when input points to a newline, check if the next line is a      \ when input points to a newline, check if the next line is a
     \ sync line.  If it is, perform the appropriate actions.      \ sync line.  If it is, perform the appropriate actions.
     begin      rawinput @ begin >r
         rawinput @ >r  
         s" #line " r@ over compare if          s" #line " r@ over compare if
             rdrop 1 line +! EXIT              rdrop 1 line +! EXIT
         endif          endif
Line 1344  print-token ! Line 1341  print-token !
         endif          endif
         dup c@ nl-char <> 0= s" sync line syntax" ?print-error          dup c@ nl-char <> 0= s" sync line syntax" ?print-error
         skipsynclines @ if          skipsynclines @ if
             dup char+ rawinput !              char+ dup rawinput !
             rawinput @ c@ cookedinput @ c!              rawinput @ c@ cookedinput @ c!
         endif          endif
         drop  
     again ;      again ;
   
 : ?nextchar ( f -- )  : ?nextchar ( f -- )

Removed from v.1.130  
changed lines
  Added in v.1.135


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