File:  [gforth] / gforth / Attic / special.fs
Revision 1.3: download - view: text, annotated - select for diffs
Mon Aug 26 10:07:21 1996 UTC (27 years, 7 months ago) by anton
Branches: MAIN
CVS tags: v0-2-1, v0-2-0, HEAD
' and ['] now deliver an error for compile-only words.
renamed special- words into interpret/compile- words.
refactored some of the recent changes.
adapted see to the changes
added way to make a word that defines words with differring
 interpretation and compilation code.

\ words with non-default and non-immediate compilation semantics

\ Copyright (C) 1996 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.

\ this file comes last, because these words override cross' words.

create s"-buffer /line chars allot
:noname    [char] " parse
    /line min >r s"-buffer r@ cmove
    s"-buffer r> ;
:noname    [char] " parse postpone SLiteral ;
interpret/compile: S" ( compilation 'ccc"' -- ; run-time -- c-addr u )	\ core,file	s-quote

:noname    ' >body ! ;
:noname    ' >body postpone ALiteral postpone ! ;
interpret/compile: IS ( addr "name" -- ) \ gforth

' IS Alias TO ( addr "name" -- ) \ core-ext
immediate

:noname    ' >body @ ;
:noname    ' >body postpone ALiteral postpone @ ;
interpret/compile: What's ( "name" -- addr ) \ gforth

:noname    [char] " parse type ;
:noname    postpone (.") ,"  align ;
interpret/compile: ." ( compilation 'ccc"' -- ; run-time -- )  \ core	dot-quote

\ DOES>                                                17mar93py

:noname
    align dodoes, here !does ]
    defstart :-hook ;
:noname
    ;-hook postpone (does>) ?struc dodoes,
    defstart :-hook ;
interpret/compile: DOES>  ( compilation colon-sys1 -- colon-sys2 ; run-time nest-sys -- ) \ core	does
    


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