[gforth] / gforth / Attic / interpretation.fs  

gforth: gforth/Attic/interpretation.fs


1 : anton 1.1 \ Interpretation semantics
2 :    
3 :     \ Copyright (C) 1996 Free Software Foundation, Inc.
4 :    
5 :     \ This file is part of Gforth.
6 :    
7 :     \ Gforth is free software; you can redistribute it and/or
8 :     \ modify it under the terms of the GNU General Public License
9 :     \ as published by the Free Software Foundation; either version 2
10 :     \ of the License, or (at your option) any later version.
11 :    
12 :     \ This program is distributed in the hope that it will be useful,
13 :     \ but WITHOUT ANY WARRANTY; without even the implied warranty of
14 :     \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 :     \ GNU General Public License for more details.
16 :    
17 :     \ You should have received a copy of the GNU General Public License
18 :     \ along with this program; if not, write to the Free Software
19 :     \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 :    
21 :    
22 :     \ This file defines a mechanism for specifying special interpretation
23 :     \ semantics as well as the interpretation semantics of several words.
24 :    
25 :     table constant interpretation-semantics
26 :    
27 :     :noname ( c-addr u word-ident -- )
28 :     \ word-ident is currently an xt, but it might be the nfa
29 :     sp@ cell interpretation-semantics search-wordlist
30 :     if ( c-addr u word-ident xt )
31 :     nip nip nip execute
32 :     else
33 :     defers interpret-special
34 :     endif ;
35 :     IS interpret-special
36 :    
37 :     : interpretation: ( -- colon-sys ) \ gforth
38 :     \G make the last word one with special interpretation semantics and
39 :     \G start the (colon) definition of these semantics.
40 :     \ !! fix reveal such that it is not necessary to do it before the
41 :     \ set-current
42 :     restrict
43 :     lastcfa cell nextname \ !! use nfa instead of cfa
44 :     get-current >r
45 :     interpretation-semantics set-current : reveal
46 :     r> set-current ;
47 :    
48 :     \ : foo
49 :     \ ." compilation semantics" ; immediate
50 :     \ interpretation:
51 :     \ ." interpretation semantics" ;
52 :    
53 :     \ foo \ interpretation semantics ok
54 :     \ : xxx foo ; \ compilation semantics ok
55 :     \ : yyy postpone foo ; \ ok
56 :     \ yyy \ compilation semantics ok

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help