aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/quotations.frt
blob: 7f7659bbc636a63f5854fd457578bbbb3da401f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
\ anonymous definitions in a definition
\ typical usage
\ : foo ... [: some words ;] ... ;
\
\ is equivalent to
\
\ :noname some words ; Constant #temp#
\ : foo ... #temp# ... ;
\
\ #require 2-fetch.frt
\ #require 2-store.frt

: [: ( -- quotation-sys )
     postpone ahead 
     latest @ newest 2@ \ save definition state
     :noname  \ defines quotation-sys as ( -- latest newest XT ) ( 4 cells)
; immediate

: ;] ( compile-time: quotation-sys -- ; run-time: -- xt )
    postpone ;  >r
    newest 2! latest ! \ restore definiion state
    postpone then
    r>
    postpone literal 
    ]
; immediate