-
Notifications
You must be signed in to change notification settings - Fork 2
/
standard.fs
367 lines (362 loc) · 7.3 KB
/
standard.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
\ --STANDARD-- \ Wil Baden 2003-02-22
\ *******************************************************************
\ * *
\ * ONLY STANDARD DEFINITIONS *
\ * *
\ *******************************************************************
WORDLIST CONSTANT STANDARD
STANDARD SET-CURRENT
\ Standard-Clone
: ! ! ;
: # # ;
: #> #> ;
: #S #S ;
: ' ' ;
: ( POSTPONE ( ; IMMEDIATE
: (LOCAL) POSTPONE (LOCAL) ; IMMEDIATE
: * * ;
: */ */ ;
: */MOD */MOD ;
: + + ;
: +! +! ;
: +LOOP POSTPONE +LOOP ; IMMEDIATE
: , , ;
: - - ;
: -TRAILING -TRAILING ;
: . . ;
: ." POSTPONE ." ; IMMEDIATE
: .( POSTPONE .( ; IMMEDIATE
: .R .R ;
: .S .S ;
: / / ;
: /MOD /MOD ;
: /STRING /STRING ;
: 0< 0< ;
: 0<> 0<> ;
: 0= 0= ;
: 0> 0> ;
: 1+ 1+ ;
: 1- 1- ;
: 2! 2! ;
: 2* 2* ;
: 2/ 2/ ;
: 2>R POSTPONE 2>R ; IMMEDIATE
: 2@ 2@ ;
: 2CONSTANT 2CONSTANT ;
: 2DROP 2DROP ;
: 2DUP 2DUP ;
: 2LITERAL POSTPONE 2LITERAL ; IMMEDIATE
: 2OVER 2OVER ;
: 2R> POSTPONE 2R> ; IMMEDIATE
: 2R@ POSTPONE 2R@ ; IMMEDIATE
: 2ROT 2ROT ;
: 2SWAP 2SWAP ;
: 2VARIABLE 2VARIABLE ;
: : : ;
: :NONAME :NONAME ;
: ; POSTPONE ; ; IMMEDIATE
: ;CODE POSTPONE ;CODE ; IMMEDIATE
: < < ;
: <# <# ;
: <> <> ;
: = = ;
: > > ;
: >BODY >BODY ;
: >FLOAT >FLOAT ;
: >IN >IN ;
: >NUMBER >NUMBER ;
: >R POSTPONE >R ; IMMEDIATE
: ? POSTPONE ? ; IMMEDIATE
: ?DO POSTPONE ?DO ; IMMEDIATE
: ?DUP ?DUP ;
: @ @ ;
: ABORT ABORT ;
: ABORT" POSTPONE ABORT" ; IMMEDIATE
: ABS ABS ;
: ACCEPT ACCEPT ;
: AGAIN POSTPONE AGAIN ; IMMEDIATE
: AHEAD POSTPONE AHEAD ; IMMEDIATE
: ALIGN ALIGN ;
: ALIGNED ALIGNED ;
: ALLOCATE ALLOCATE ;
: ALLOT ALLOT ;
: ALSO ALSO ;
: AND AND ;
: ASSEMBLER ASSEMBLER ;
: AT-XY AT-XY ;
: BASE BASE ;
: BEGIN POSTPONE BEGIN ; IMMEDIATE
: BIN BIN ;
: BL BL ;
: BLANK BLANK ;
: BLK BLK ;
: BLOCK BLOCK ;
\ BUFFER
: BYE BYE ;
: C! C! ;
: C" POSTPONE C" ; IMMEDIATE
: C, C, ;
: C@ C@ ;
: CASE POSTPONE CASE ; IMMEDIATE
: CATCH CATCH ;
: CELL+ CELL+ ;
: CELLS CELLS ;
: CHAR CHAR ;
: CHAR+ CHAR+ ;
: CHARS CHARS ;
: CLOSE-FILE CLOSE-FILE ;
: CMOVE CMOVE ;
: CMOVE> CMOVE> ;
: CODE CODE ;
: COMPARE COMPARE ;
: COMPILE, COMPILE, ;
: CONSTANT CONSTANT ;
: COUNT COUNT ;
: CR CR ;
: CREATE CREATE ;
: CREATE-FILE CREATE-FILE ;
: CS-PICK CS-PICK ;
: CS-ROLL CS-ROLL ;
: D+ D+ ;
: D- D- ;
: D. D. ;
: D.R D.R ;
: D0< D0< ;
: D0= D0= ;
: D2* D2* ;
: D2/ D2/ ;
: D< D< ;
: D= D= ;
: D>F D>F ;
: D>S D>S ;
: DABS DABS ;
: DECIMAL DECIMAL ;
: DEFINITIONS DEFINITIONS ;
: DELETE-FILE DELETE-FILE ;
: DEPTH DEPTH ;
: DF! DF! ;
: DF@ DF@ ;
: DFALIGN DFALIGN ;
: DFALIGNED DFALIGNED ;
: DFLOAT+ DFLOAT+ ;
: DFLOATS DFLOATS ;
: DMAX DMAX ;
: DMIN DMIN ;
: DNEGATE DNEGATE ;
: DO POSTPONE DO ; IMMEDIATE
: DOES> POSTPONE DOES> ; IMMEDIATE
: DROP DROP ;
: DU< DU< ;
: DUMP DUMP ;
: DUP DUP ;
\ : EDITOR EDITOR ;
: EKEY EKEY ;
: EKEY>CHAR EKEY>CHAR ;
: EKEY? EKEY? ;
: ELSE POSTPONE ELSE ; IMMEDIATE
: EMIT EMIT ;
\ : EMIT? EMIT? ;
\ EMPTY-BUFFERS
: ENDCASE POSTPONE ENDCASE ; IMMEDIATE
: ENDOF POSTPONE ENDOF ; IMMEDIATE
: ENVIRONMENT? ENVIRONMENT? ;
: ERASE ERASE ;
: EVALUATE EVALUATE ;
: EXECUTE EXECUTE ;
: EXIT POSTPONE EXIT ; IMMEDIATE
: F! F! ;
: F* F* ;
: F** F** ;
: F+ F+ ;
: F- F- ;
: F. F. ;
: F/ F/ ;
: F0< F0< ;
: F0= F0= ;
: F< F< ;
: F>D F>D ;
: F@ F@ ;
: FABS FABS ;
: FACOS FACOS ;
: FACOSH FACOSH ;
: FALIGN FALIGN ;
: FALIGNED FALIGNED ;
: FALOG FALOG ;
: FALSE FALSE ;
: FASIN FASIN ;
: FASINH FASINH ;
: FATAN FATAN ;
: FATAN2 FATAN2 ;
: FATANH FATANH ;
: FCONSTANT FCONSTANT ;
: FCOS FCOS ;
: FCOSH FCOSH ;
: FDEPTH FDEPTH ;
: FDROP FDROP ;
: FDUP FDUP ;
: FE. FE. ;
: FEXP FEXP ;
: FEXPM1 FEXPM1 ;
: FILE-POSITION FILE-POSITION ;
: FILE-SIZE FILE-SIZE ;
: FILE-STATUS FILE-STATUS ;
: FILL FILL ;
: FIND FIND ;
: FLITERAL POSTPONE FLITERAL ; IMMEDIATE
: FLN FLN ;
: FLNP1 FLNP1 ;
: FLOAT+ FLOAT+ ;
: FLOATS FLOATS ;
: FLOG FLOG ;
: FLOOR FLOOR ;
\ FLUSH
: FLUSH-FILE FLUSH-FILE ;
: FM/MOD FM/MOD ;
: FMAX FMAX ;
: FMIN FMIN ;
: FNEGATE FNEGATE ;
: FORTH GET-ORDER NIP STANDARD SWAP SET-ORDER ;
: FORTH-WORDLIST STANDARD ;
: FOVER FOVER ;
: FREE FREE ;
: FROT FROT ;
: FROUND FROUND ;
: FS. FS. ;
: FSIN FSIN ;
: FSINCOS FSINCOS ;
: FSINH FSINH ;
: FSQRT FSQRT ;
: FSWAP FSWAP ;
: FTAN FTAN ;
: FTANH FTANH ;
: FVARIABLE FVARIABLE ;
: F~ F~ ;
: GET-CURRENT GET-CURRENT ;
: GET-ORDER GET-ORDER ;
: HERE HERE ;
: HEX HEX ;
: HOLD HOLD ;
: I POSTPONE I ; IMMEDIATE
: IF POSTPONE IF ; IMMEDIATE
: IMMEDIATE IMMEDIATE ;
: INCLUDE-FILE INCLUDE-FILE ;
: INCLUDED INCLUDED ;
: INVERT INVERT ;
: J POSTPONE J ; IMMEDIATE
: KEY KEY ;
: KEY? KEY? ;
: LEAVE POSTPONE LEAVE ; IMMEDIATE
\ LIST
: LITERAL POSTPONE LITERAL ; IMMEDIATE
\ LOAD
: LOCALS| POSTPONE LOCALS| ; IMMEDIATE
: LOOP POSTPONE LOOP ; IMMEDIATE
: LSHIFT LSHIFT ;
: M* M* ;
: M*/ M*/ ;
: M+ M+ ;
: MARKER MARKER ;
: MAX MAX ;
: MIN MIN ;
: MOD MOD ;
: MOVE MOVE ;
: MS MS ;
: NEGATE NEGATE ;
: NIP NIP ;
: OF POSTPONE OF ; IMMEDIATE
: ONLY STANDARD 1 SET-ORDER ;
: OPEN-FILE OPEN-FILE ;
: OR OR ;
: ORDER ORDER ;
: OVER OVER ;
: PAD PAD ;
: PAGE PAGE ;
: PARSE PARSE ;
: PICK PICK ;
: POSTPONE POSTPONE POSTPONE ; IMMEDIATE
: PRECISION PRECISION ;
: PREVIOUS PREVIOUS ;
: QUIT QUIT ;
: R/O R/O ;
: R/W R/W ;
: R> POSTPONE R> ; IMMEDIATE
: R@ POSTPONE R@ ; IMMEDIATE
: READ-FILE READ-FILE ;
: READ-LINE READ-LINE ;
: RECURSE POSTPONE RECURSE ; IMMEDIATE
: REFILL REFILL ;
: RENAME-FILE RENAME-FILE ;
: REPEAT POSTPONE REPEAT ; IMMEDIATE
: REPOSITION-FILE REPOSITION-FILE ;
: REPRESENT REPRESENT ;
: RESIZE RESIZE ;
: RESIZE-FILE RESIZE-FILE ;
: RESTORE-INPUT RESTORE-INPUT ;
: ROLL ROLL ;
: ROT ROT ;
: RSHIFT RSHIFT ;
: S" STATE @ IF POSTPONE S" ELSE ['] S" EXECUTE THEN ; IMMEDIATE
: S>D S>D ;
\ SAVE-BUFFERS
: SAVE-INPUT SAVE-INPUT ;
\ SCR
: SEARCH SEARCH ;
: SEARCH-WORDLIST SEARCH-WORDLIST ;
: SEE SEE ;
: SET-CURRENT SET-CURRENT ;
: SET-ORDER SET-ORDER ;
: SET-PRECISION SET-PRECISION ;
: SF! SF! ;
: SF@ SF@ ;
: SFALIGN SFALIGN ;
: SFALIGNED SFALIGNED ;
: SFLOAT+ SFLOAT+ ;
: SFLOATS SFLOATS ;
: SIGN SIGN ;
: SLITERAL POSTPONE SLITERAL ; IMMEDIATE
: SM/REM SM/REM ;
: SOURCE SOURCE ;
: SOURCE-ID SOURCE-ID ;
: SPACE SPACE ;
: SPACES SPACES ;
: STATE STATE ;
: SWAP SWAP ;
: THEN POSTPONE THEN ; IMMEDIATE
: THROW THROW ;
\ THRU
: TIME&DATE TIME&DATE ;
: TO STATE @ IF POSTPONE TO ELSE ['] TO EXECUTE THEN ; IMMEDIATE
: TRUE TRUE ;
: TUCK TUCK ;
: TYPE TYPE ;
: U. U. ;
: U.R U.R ;
: U< U< ;
: U> U> ;
: UM* UM* ;
: UM/MOD UM/MOD ;
: UNLOOP POSTPONE UNLOOP ; IMMEDIATE
: UNTIL POSTPONE UNTIL ; IMMEDIATE
: UNUSED UNUSED ;
\ UPDATE
: VALUE VALUE ;
: VARIABLE VARIABLE ;
: W/O W/O ;
: WHILE POSTPONE WHILE ; IMMEDIATE
: WITHIN WITHIN ;
: WORD WORD ;
: WORDLIST WORDLIST ;
: WORDS WORDS ;
: WRITE-FILE WRITE-FILE ;
: WRITE-LINE WRITE-LINE ;
: XOR XOR ;
: [ POSTPONE [ ; IMMEDIATE
: ['] POSTPONE ['] ; IMMEDIATE
: [CHAR] POSTPONE [CHAR] ; IMMEDIATE
: [COMPILE] POSTPONE [COMPILE] ; IMMEDIATE
: [ELSE] POSTPONE [ELSE] ; IMMEDIATE
: [IF] POSTPONE [IF] ; IMMEDIATE
: [THEN] POSTPONE [THEN] ; IMMEDIATE
: \ POSTPONE \ ; IMMEDIATE
: ] ] ;
STANDARD 1 SET-ORDER