version 1.14, 1995/10/16 18:33:10
|
version 1.18, 1996/01/25 16:45:52
|
Line 1
|
Line 1
|
|
\ A powerful locals implementation |
|
|
|
\ Copyright (C) 1995 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., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
|
|
|
|
\ More documentation can be found in the manual and in |
|
\ http://www.complang.tuwien.ac.at/papers/ertl94l.ps.gz |
|
|
\ Local variables are quite important for writing readable programs, but |
\ Local variables are quite important for writing readable programs, but |
\ IMO (anton) they are the worst part of the standard. There they are very |
\ IMO (anton) they are the worst part of the standard. There they are very |
\ restricted and have an ugly interface. |
\ restricted and have an ugly interface. |
Line 464 forth definitions
|
Line 488 forth definitions
|
\ this gives a unique identifier for the way the xt was defined |
\ this gives a unique identifier for the way the xt was defined |
\ words defined with different does>-codes have different definers |
\ words defined with different does>-codes have different definers |
\ the definer can be used for comparison and in definer! |
\ the definer can be used for comparison and in definer! |
dup >code-address [ ' bits >code-address ] Literal = |
dup >code-address [ ' spaces >code-address ] Literal = |
\ !! this definition will not work on some implementations for `bits' |
\ !! this definition will not work on some implementations for `bits' |
if \ if >code-address delivers the same value for all does>-def'd words |
if \ if >code-address delivers the same value for all does>-def'd words |
>does-code 1 or \ bit 0 marks special treatment for does codes |
>does-code 1 or \ bit 0 marks special treatment for does codes |
Line 480 forth definitions
|
Line 504 forth definitions
|
code-address! |
code-address! |
then ; |
then ; |
|
|
\ !! untested |
|
: TO ( c|w|d|r "name" -- ) \ core-ext,local |
: TO ( c|w|d|r "name" -- ) \ core-ext,local |
\ !! state smart |
\ !! state smart |
0 0 0. 0.0e0 { c: clocal w: wlocal d: dlocal f: flocal } |
0 0 0. 0.0e0 { c: clocal w: wlocal d: dlocal f: flocal } |