Diff for /gforth/locals-test.fs between versions 1.2 and 1.12

version 1.2, 1994/06/17 12:35:08 version 1.12, 2003/03/09 15:16:50
Line 1 Line 1
 include glocals.fs  \ test gforth locals
   
   \ Copyright (C) 1995,1996,1997,2000 Free Software Foundation, Inc.
   
   \ This file is part of Gforth.
   
   \ Gforth is free software; you can redistribute it and/or
   \ modify it under the terms of the GNU General Public License
   \ as published by the Free Software Foundation; either version 2
   \ of the License, or (at your option) any later version.
   
   \ This program is distributed in the hope that it will be useful,
   \ but WITHOUT ANY WARRANTY; without even the implied warranty of
   \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   \ GNU General Public License for more details.
   
   \ You should have received a copy of the GNU General Public License
   \ along with this program; if not, write to the Free Software
   \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
   
   require glocals.fs
   require debugs.fs
   
 : localsinfo \ !! only debugging  : localsinfo \ !! only debugging
  ." stack: " .s ." locals-size: " locals-size ? ." locals-list"   ." stack: " .s ." locals-size: " locals-size ? ." locals-list"
Line 28  depth . cr Line 50  depth . cr
 ." testing part 2" cr  ." testing part 2" cr
   
 : xxxx  : xxxx
     [ ." starting xxxx" .s cr ]     [ ." starting xxxx" .s cr ]
 { f } f  { f } f
 if  if
   { a b }   { a b }
   b a   b a
 [ ." before else" .s cr ]  [ ." before else" .s cr ]
 else  else
 [ ." after else" .s cr ]  [ ." after else" .s cr ]
   { c d }   { c d }
   c d   c d
 then  then
 [ ." locals-size after then:" locals-size @ . cr ]  [ ." locals-size after then:" locals-size @ . cr ]
 f drop  ~~ f ~~ drop
     [ ." ending xxxx" .s cr ]  [ ." ending xxxx" .s cr ]
 ;  ;
   
 2 3 1 xxxx . . cr  2 3 1 xxxx . . cr
Line 64  begin Line 86  begin
 [ ." after { a }" .s cr ]  [ ." after { a }" .s cr ]
 1 while  1 while
 [ ." after while" .s cr ]  [ ." after while" .s cr ]
   { b }   { b }
   a b   a b
 [ ." after a" .s cr ]  [ ." after a" .s cr ]
 repeat  repeat
 [ ." after repeat" .s cr  [ ." after repeat" .s cr
Line 93  until Line 115  until
   
 : xxx5  : xxx5
 { a }  { a }
   a drop    
 ahead  ahead
   assume-live
 begin  begin
 [ ." after begin" localsinfo ]  [ ." after begin" localsinfo ]
   a drop    
 [ 1 cs-roll ]  [ 1 cs-roll ]
 then  then
 [ ." after then" localsinfo ]  [ ." after then" localsinfo ]
Line 244  until Line 269  until
     [ ." after xexit" localsinfo ]      [ ." after xexit" localsinfo ]
     else      else
     { b }      { b }
     [ ." before xthen" localsinfo      [ ." before xthen" localsinfo ]
     then      then
     [ ." after xthen" localsinfo ]      [ ." after xthen" localsinfo ]
 ;  ;
   
   ." strcmp1 coming up" cr
   : strcmp1 { addr1 u1 addr2 u2 -- n }
    u1 u2 min 0 ?do
      addr1 c@ addr2 c@ - ?dup if
        unloop exit
      then
      addr1 char+ TO addr1
      addr2 char+ TO addr2
    loop
    u1 u2 - ;
   
   : teststrcmp1
   ." lp@:" lp@ . cr
   s" xxx" s" yyy" strcmp1 . cr
   ." lp@:" lp@ . cr
   s" xxx" s" xxx" strcmp1 . cr
   ." lp@:" lp@ . cr
   s" xxx" s" xxxx" strcmp1 . cr
   ." lp@:" lp@ . cr
   s" xxx3" s" xxx2" strcmp1 . cr
   ." lp@:" lp@ . cr
   s" " s" " strcmp1 . cr
   ." lp@:" lp@ . cr
   ." lp@:" lp@ . cr
   ." stack:" .s cr
   ;
   teststrcmp1
   
   ." testing the abominable locals-ext wordset" cr
   : puke locals| this read you can |
       you read this can ;
   
   1 2 3 4 puke . . . . cr
   
   \ just some other stuff
   
   : life1 { b0 b1 b23 old -- new }
       b23 invert old b1 b0 xor and old invert b1 and b0 and or and ;
   
   : life2 { b0 b1 b23 old -- new }
       b0 b1 or old b0 xor b1 xor b23 or invert and ;
   
   $5555 $3333 $0f0f $00ff life1 .
   $5555 $3333 $0f0f $00ff life2 .
   .s
   cr
   
   : test
       1 { a }  ." after }" cr
       2 { b -- }  ." after --" cr
   ;
   test
   .s cr
   
 bye  bye

Removed from v.1.2  
changed lines
  Added in v.1.12


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