-
Notifications
You must be signed in to change notification settings - Fork 2
/
post4.syn
584 lines (575 loc) · 5.57 KB
/
post4.syn
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
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
; Syntax file for Forth 200x draft 19-1
;
; from Carl Vogt, March 4, 2002
;
; 2024-09-15 Anthony Howe revised for Post4 (Forth 2019)
;
; ANS Forth standard. Forth also has many 'common use' keywords,
; which are included.
; The keywords are broken into a few groups: ANS Core words, Floating point,
; Miscellaneous words, tools, and a fifth group for common usage and
; user-defined, words.
; Forth uses very radical grammer rules which are very taxing on Textpad,
; this template won't catch errors due to missing white-space delimiters.
;
; Word list reference: Conklin, Edward K. and Rather, Elizabeth D.
; "Forth Programmers Handbook" Forth, Inc , 1998
;
; To install this syntax file:
; Search for "syntax" in the Textpad help index and display it.
; Choose: How to Customize Syntax Highlighting
; Follow instructions outlined there.
;
; Recommended colors:
; (First install syntax file as explained above.)
; Go into configure->preferences->document classes->
; {your Forth setup}->colors:
; Keywords 1: Light Blue
; Keywords 2: Purple
; Keywords 3: Dark Blue
; Keywords 4: Red
; Keywords 5: Yellow on Black
;
; Visit www.forth.org for more info about Forth.
C=1
[Syntax]
Namespace1 = 6
IgnoreCase = Yes
KeyWordLength = 0
BracketChars = :;[]
OperatorChars =
PreprocStart =
HexPrefix = $
SyntaxStart =
SyntaxEnd =
CommentStart = (
CommentEnd = )
CommentStartAlt =
CommentEndAlt =
SingleComment = \
SingleCommentCol =
SingleCommentAlt =
SingleCommentColAlt =
SingleCommentEsc =
StringsSpanLines = No
StringStart = "
StringEnd = "
StringAlt =
StringEsc = \
CharEsc = \
CharStart = '
CharEnd = '
; Operators & Stack words
[Keywords 1]
!
*
*/
*/MOD
+
+!
-
/
/MOD
0<
0<>
0=
0>
1+
1-
2!
2*
2/
2>R
2@
2DROP
2DUP
2OVER
2R>
2R@
2ROT
2SWAP
<
<>
=
>
>R
?DUP
@
AND
C!
C,
C@
CELL+
CELLS
CHAR+
CHARS
CS-PICK
CS-ROLL
D+
D-
D0<
D0=
D2*
D2/
D<
D=
DNEGATE
DROP
DU<
DUP
FALSE
FM/MOD
I
INVERT
J
LSHIFT
M*
M*/
M+
MOD
N>R
NEGATE
NIP
NR>
OR
OVER
PICK
R>
R@
ROLL
ROT
RSHIFT
S>D
SM/REM
SWAP
TRUE
TUCK
U<
U>
UM*
UM/MOD
WITHIN
XOR
; Control structure words
[Keywords 2]
+LOOP
?DO
2CONSTANT
2LITERAL
2VARIABLE
2VALUE
AHEAD
ABORT
ABORT"
BEGIN
BYE
CATCH
CONSTANT
CREATE
DEPTH
DO
DOES>
ELSE
THROW
BEGIN-STRUCTURE
END-STRUCTURE
+FIELD
CFIELD:
FIELD:
IF
EVALUATE
EXECUTE
EXIT
LEAVE
?LEAVE
LOOP
POSTPONE
QUIT
RECURSE
REPEAT
THEN
UNLOOP
UNTIL
VARIABLE
WHILE
:NONAME
AGAIN
CASE
ENDCASE
ENDOF
OF
VALUE
TO
[Keywords 3]
#
#>
#S
'
,
-TRAILING
.
."
.R
/STRING
<#
>BODY
>IN
>NUMBER
[']
[CHAR]
ABS
ACCEPT
ACTION-OF
ALIGN
ALIGNED
ALLOCATE
ALLOT
AT-XY
BASE
BIN
BL
BLANK
BLK
BLOCK
BUFFER
BUFFER:
C"
CHAR
CLOSE-FILE
CMOVE
CMOVE>
COMPARE
COMPILE,
COUNT
CR
CREATE-FILE
D.
D.R
D>S
DABS
DECIMAL
DEFER
DEFER!
DEFER@
DELETE-FILE
DMAX
DMIN
EKEY
EKEY>CHAR
EKEY?
EMIT
EMIT?
EMPTY-BUFFERS
ENVIRONMENT?
ERASE
FILE-POSITION
FILE-SIZE
FILE-STATUS
FILL
FIND
FIND-NAME
FIND-NAME-IN
FLUSH
FLUSH-FILE
FREE
HERE
HEX
HOLD
HOLDS
IS
IMMEDIATE
INCLUDE
INCLUDE-FILE
INCLUDED
KEY
KEY?
LIST
LIT
LITERAL
LOAD
MARKER
MAX
MIN
MOVE
MS
NAME>COMPILE
NAME>INTERPRET
NAME>STRING
OPEN-FILE
PAD
PAGE
PARSE
PARSE-NAME
R/O
R/W
READ-FILE
READ-LINE
REFILL
RENAME-FILE
REPOSITION-FILE
REQUIRE
REQUIRED
RESIZE
RESIZE-FILE
RESTORE-INPUT
S"
S\"
SAVE-BUFFERS
SAVE-INPUT
SCR
SEARCH
SIGN
SLITERAL
SOURCE
SOURCE-ID
SPACE
SPACES
STATE
SYNONYM
THRU
TIME&DATE
TYPE
U.
U.R
UNUSED
UPDATE
W/O
WORD
WRITE-FILE
WRITE-LINE
.S
?
DUMP
EDITOR
SEE
WORDS
ALSO
DEFINITIONS
FORTH-WORDLIST
GET-CURRENT
GET-ORDER
SEARCH-WORDLIST
TRAVERSE-WORDLIST
SET-CURRENT
SET-ORDER
WORDLIST
WORDLISTS
FORTH
ONLY
ORDER
PREVIOUS
XCHAR-ENCODING
MAX-XCHAR
XCHAR-MAXMEM
; Floating-Point
[Keywords 4]
>FLOAT
D>F
DF!
DF@
DFALIGN
DFALIGNED
DFFIELD:
DFLOAT+
DFLOATS
F!
F*
F**
F+
f,
F-
F.
F/
F0<
F0=
F<
F=
F>D
F@
FABS
FACOS
FACOSH
FALIGN
FALIGNED
FALOG
FASIN
FASINH
FATAN
FATAN2
FATANH
FCONSTANT
FCOS
FCOSH
FDEPTH
FDROP
FDUP
FE.
FEXP
FEXPM1
FFIELD:
FLITERAL
FLN
FLNP1
FLOAT+
FLOATS
FLOG
FLOOR
FMAX
FMIN
FNEGATE
FOVER
FPICK
FROT
FROUND
FS.
FSIN
FSINCOS
FSINH
FSQRT
FSWAP
FTAN
FTANH
FVALUE
FVARIABLE
F~
PRECISION
REPRESENT
SET-PRECISION
SF!
SF@
SFALIGN
SFALIGNED
SFFIELD:
SFLOAT+
SFLOATS
; Post4 words.
[Keywords 5]
-rot
.\"
.ds
.fs
.rs
/cell
/char
/counted-string
/hold
/hold
/pad
<=
>here
_bp
_branch
_branchnz
_branchz
_call
_ctx
_ds
_fs
_longjmp
_nop
_parse
_rs
_seext
_stack_check
_stack_dump
_window
address-unit-bits
alias
args
binary
block-close
block-open
blocks
bye-status
c?
c\"
catch_frame
cell-
cell-bits
char-
clit
compile-only
compile-only?
cputs
ctx
d>u
dropn
dropall
>f
dsp!
dsp@
epoch-seconds
flit
flit,
floored
f>
f>r
floating-stack
fsp!
fsp@
getenv
immediate?
include-path
included-path
list+
lit
lit,
MAX-CHAR
MAX-D
MAX-N
MAX-U
MAX-UD
MIN-D
MIN-N
mu/mod
n!
n,
n@
not
octal
parse-escape
puts
require-path
required-path
required-wordlist
reserve
return-stack-cells
rise
rdrop
2rdrop
rpick
fr>
rsp!
rsp@
slit
spin
stack-cells
stow
strcmp
strlen
strncpy
strrev
trace
u>d
ut*
ut/
whilst
assert
assert_not
assert_skip
assert_not_skip
test_suite
test_suite_end
test_group
test_group_end
->
T{
}T
TS{
[Keywords 6]
[Preprocessor keywords]
[ELSE]
[IF]
[THEN]
[DEFINED]
[UNDEFINED]