-
Notifications
You must be signed in to change notification settings - Fork 2
/
rexx.kld
168 lines (165 loc) · 3.6 KB
/
rexx.kld
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
* REXX.KLD - KEDIT Language Definition for classic (ANSI) REXX
* and classic ooRexx features, mostly identical to the KeditW32
* built-in REXX.KLD (Version 1.1 - May 2007).
:case
ignore
:option
rexx
:number
rexx
:identifier
* experimental . at begin for .RS etc.
[a-zA-Z.!?_] [a-zA-Z0-9.!?_]
:string
single
double
:comment
paired /* */ nest
* for ooRexx:
line -- any
:header
* for ooRexx directives:
line :: firstnonblank
* (in)famous line 1 hacks:
line  column 1
line #! column 1
:label
delimiter : any
:match
( )
* loop and [] added for ooRexx:
[ ]
do,loop,select end case,when,otherwise
:keyword
address type 5
arg type 7
by type 2
call type 5
caseless type 2
digits type 2
do type 5
drop type 1
else type 1
end type 1
engineering type 2
exit type 1
* for ooRexx:
*expose type 2
expose type 3
for type 2
forever type 2
form type 2
fuzz type 2
if type 1
interpret type 1
iterate type 1
label type 2
leave type 1
linein type 2
name type 2
nop type 1
numeric type 5
off type 2
on type 2
options type 1
otherwise type 1
parse type 5
procedure type 5
pull type 7
push type 1
queue type 1
return type 1
say type 1
scientific type 2
select type 1
signal type 5
source type 2
to type 2
then type 1
trace type 5
until type 2
upper type 2
value type 2
var type 2
version type 2
* for ooRexx guard:
*when type 1
when type 5
while type 2
with type 2
* REXX conditions:
error type 2
failure type 2
halt type 2
lostdigits type 2
notready type 2
novalue type 2
syntax type 2
* disabled sub-keywords of 'address'
*append type 2
*input type 2
*normal type 2
*output type 2
*path type 2
*replace type 2
*stem type 2
*stream type 2
*system type 2
* ooRexx keywords:
additional type 2
any type 2
arguments type 2
array type 2
case type 2
class type 2
continue type 2
counter type 2
description type 2
forward type 5
guard type 5
index type 2
item type 2
local type 2
loop type 5
message type 2
nomethod type 2
nostring type 2
over type 2
propagate type 2
raise type 5
reply type 1
strict type 2
use type 5
user type 2
* ANSI REXX special:
rc type 1
result type 1
sigl type 1
.MN type 1
.RC type 1
.RESULT type 1
.RS type 1
* Common special:
.ENDOFLINE type 1
.LINE type 1
* Regina special:
.DIRSEP type 1
.FILE type 1
* ooRexx special:
self type 1
super type 1
.FALSE type 1
.NIL type 1
.TRUE type 1
:postcompare
*See 'ecolor': 9 blue (like keywords), 8 black, 6 dark cyan (strings), 1 red.
*The sort order is significant, anything already handled above does not work,
*e.g., most strings, identifiers, keywords, and comments are already colored.
* logical NOT U+00AC is valid (assuming Latin-1 or similar here, not UTF-8):
text ¬ alternate 8
* red for comma, tricky at the end of a line
text , alternate 1
* red for backtick + obsolete:
class [`^@#$] alternate 1
* red controls and non-ASCII (outside of strings and comments)
class [~!-~] alternate 1