Diff for /gforth/prims2x.fs between versions 1.57 and 1.61

version 1.57, 2000/12/26 19:31:56 version 1.61, 2001/01/04 15:35:08
Line 323  Variable c-flag Line 323  Variable c-flag
            (( {{ start }}  c-ident {{ end c-name 2! }} )) ??             (( {{ start }}  c-ident {{ end c-name 2! }} )) ??
         )) ??  nl          )) ??  nl
    ))     ))
    (( ` " ` "  {{ start }} (( noquote ++ ` " )) ++ {{ end 1- doc 2! }} ` " nl )) ??     (( ` " ` "  {{ start }} (( noquote ++ ` " )) ++ {{ end 1- doc 2! }} ` " white ** nl )) ??
    {{ skipsynclines off line @ c-line ! filename 2@ c-filename 2! start }} (( nocolonnl nonl **  nl )) ** {{ end c-code 2! skipsynclines on }}     {{ skipsynclines off line @ c-line ! filename 2@ c-filename 2! start }} (( nocolonnl nonl **  nl white ** )) ** {{ end c-code 2! skipsynclines on }}
    (( ` :  nl     (( ` :  white ** nl
       {{ start }} (( nonl ++  nl )) ++ {{ end forth-code 2! }}        {{ start }} (( nonl ++  nl white ** )) ++ {{ end forth-code 2! }}
    )) ?? {{ printprim }}     )) ?? {{ printprim }}
    (( nl || eof ))     (( nl || eof ))
 )) <- primitive ( -- )  )) <- primitive ( -- )
   
 (( (( comment || primitive || nl )) ** eof ))  (( (( comment || primitive || nl white ** )) ** eof ))
 parser primitives2something  parser primitives2something
 warnings @ [IF]  warnings @ [IF]
 .( parser generated ok ) cr  .( parser generated ok ) cr
Line 383  warnings @ [IF] Line 383  warnings @ [IF]
  >r   >r
  ." FETCH_DCELL("   ." FETCH_DCELL("
  r@ item-name 2@ type ." , "   r@ item-name 2@ type ." , "
  r@ item-in-index r@ item-stack @ 2dup stack-access   r@ item-in-index r@ item-stack @ 2dup ." (Cell)" stack-access
  ." , "                      -1 under+ stack-access   ." , "                      -1 under+ ." (Cell)" stack-access
  ." );" cr   ." );" cr
  rdrop ;   rdrop ;
   
Line 672  does> ( item -- ) Line 672  does> ( item -- )
     ." } else "      ." } else "
     1 function-number +! ;      1 function-number +! ;
   
   
   
   
   : gen-arg-parm { item -- }
       item item-stack @ inst-stream = if
           ." , " item item-type @ type-c-name 2@ type space
           item item-name 2@ type
       endif ;
   
   : gen-args-parm ( -- )
    effect-in-end @ effect-in ?do
      i gen-arg-parm
    item% %size +loop ; 
   
   : gen-arg-gen { item -- }
       item item-stack @ inst-stream = if
           ."   genarg_" item item-type @ print-type-prefix
           ." (ctp, " item item-name 2@ type ." );" cr
       endif ;
   
   : gen-args-gen ( -- )
    effect-in-end @ effect-in ?do
      i gen-arg-gen
    item% %size +loop ; 
   
   : output-gen ( -- )
       \ generate C code for generating VM instructions
       ." /* " declarations ." */" cr
       compute-offsets
       ." void gen_" c-name 2@ type ." (Inst **ctp" gen-args-parm ." )" cr
       ." {" cr
       ."   gen_inst(ctp, vm_prim[" function-number @ 0 .r ." ]);" cr
       gen-args-gen
       ." }" cr
       1 function-number +! ;
   
 : stack-used? { stack -- f }  : stack-used? { stack -- f }
     stack stack-in @ stack stack-out @ or 0<> ;      stack stack-in @ stack stack-out @ or 0<> ;
   
Line 762  does> ( item -- ) Line 798  does> ( item -- )
   
 : process-file ( addr u xt -- )  : process-file ( addr u xt -- )
     >r      >r
     2dup filename 2!      save-mem 2dup filename 2!
     0 function-number !      0 function-number !
     r/o open-file abort" cannot open file"      r/o open-file abort" cannot open file"
     warnings @ if      warnings @ if

Removed from v.1.57  
changed lines
  Added in v.1.61


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