-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathis_fs
47 lines (33 loc) · 1.21 KB
/
is_fs
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
\ is_fs
\ This file is part of Sfera, a library for SuperForth
\ http://programandala.net/en.program.sfera.html
\ Author: Marcos Cruz (programandala.net), 2016
\ ==============================================================
\ License
\ You may do whatever you want with this work, so long as you
\ retain the copyright/authorship/acknowledgment/credit
\ notice(s) and this license in all redistributed copies and
\ derived works. There is no warranty.
\ ==============================================================
\ Description
\ This file defines standard Forth's `is`, and Gforth's `[is]`
\ and `<is>`.
\
\ These words are compatible with words created by Superforth
\ `exvec:`.
\ ==============================================================
\ History
\ 2016-01-25: Adapted from Solo Forth
\ (http://en.program.solo_forth.html).
\
\ 2016-02-08: Removed `end-of-file`.
\
\ 2016-02-11: Added description.
\ ==============================================================
require defer_fs
: <is> ( xt "name" -- ) ' defer! ;
: [is] ( xt "name" -- )
?comp postpone ['] postpone defer! ; immediate
: is ( xt "name" -- )
compiling? if postpone [is] else <is> then ; immediate
\ vim: filetype=superforthsfera