blob: 7cd91a0a8f45a8294def8b78913407abc9554a12 (
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
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
|
# B language keywords
# by Gyorgy Rotter
#
# For the proper syntax highlight the order of the keywords are
# important. This is why the related keywords are not listed in a block.
# To create semantic relationship between the keywords I used groups.
# Some keywords are in a group (the name of the group is
# indicated in a commented line above the keyword definition)
#
# With the one-liner for example we could replace
# the color of the keywords which are the members of the
# "Sequences" group from "yellow" to "red"...
#
# echo Sequences yellow red | xargs -l bash -c 'sed -z "s/\(# $0\n[^\n]*\)$1/\1$2/g" b.syntax'
# ^ ^ ^
# | | |
# | | -- new_color
# | -- actual_color
# -- groupname
#
#
# Usable groups:
# Relations, Sequences, Logical, Arithmetic, Sets, Substitutions
#
# Usable colors:
# described in the Syntax file
#
context default
keyword whole ABSTRACT_CONSTANTS yellow
keyword whole ABSTRACT_VARIABLES yellow
keyword whole CONCRETE_CONSTANTS yellow
keyword whole CONCRETE_VARIABLES yellow
keyword whole LOCAL_OPERATIONS yellow
keyword whole IMPLEMENTATION yellow
keyword whole INITIALISATION yellow
keyword whole CONSTRAINTS yellow
keyword whole DEFINITIONS yellow
keyword whole ASSERTIONS yellow
keyword whole OPERATIONS yellow
keyword whole PROPERTIES yellow
keyword whole REFINEMENT yellow
keyword whole CONSTANTS yellow
keyword whole INVARIANT yellow
keyword whole sequences yellow
keyword whole VARIABLES yellow
keyword whole Cardinal yellow
# Relations
keyword whole closure1 white
keyword whole INCLUDES yellow
# Arithmetic
keyword whole NATURAL1 yellow
keyword whole PROMOTES yellow
keyword whole Boolean yellow
keyword whole EXTENDS yellow
keyword whole IMPORTS yellow
# Arithmetic
keyword whole INTEGER yellow
keyword whole iterate yellow
keyword whole MACHINE yellow
# Arithmetic
keyword whole NATURAL yellow
keyword whole postfix yellow
keyword whole REFINES yellow
keyword whole subtree yellow
keyword whole VARIANT yellow
keyword whole ASSERT yellow
keyword whole CHOICE yellow
# Relations
keyword whole closure white
keyword whole EITHER yellow
keyword whole father yellow
keyword whole MAXINT yellow
keyword whole MININT yellow
keyword whole mirror yellow
keyword whole modulo yellow
keyword whole prefix yellow
keyword whole SELECT yellow
keyword whole STRING yellow
keyword whole struct yellow
keyword whole VALUES yellow
keyword whole arity yellow
keyword whole BEGIN yellow
keyword whole btree yellow
keyword whole const yellow
keyword whole ELSIF yellow
keyword whole FALSE yellow
keyword whole first yellow
keyword whole front yellow
keyword whole infix yellow
# Sets
keyword whole INTER yellow
keyword whole inter yellow
keyword whole iseq1 yellow
keyword whole right yellow
# Arithmetic
keyword whole SIGMA yellow
keyword whole sizet yellow
# Sets
keyword whole UNION yellow
keyword whole union yellow
keyword whole WHERE yellow
keyword whole WHILE yellow
keyword whole bool yellow
keyword whole BOOL yellow
keyword whole card yellow
keyword whole CASE yellow
keyword whole conc yellow
keyword whole ELSE yellow
# Sets
keyword whole FIN1 yellow
keyword whole iseq yellow
keyword whole last yellow
keyword whole left yellow
keyword whole NAT1 yellow
# Sets
keyword whole POW1 yellow
keyword whole perm yellow
keyword whole pred yellow
keyword whole prj1 yellow
keyword whole prj2 yellow
keyword whole rank yellow
keyword whole SEES yellow
keyword whole seq1 yellow
keyword whole SETS yellow
keyword whole size yellow
keyword whole skip yellow
keyword whole sons yellow
keyword whole succ yellow
keyword whole tail yellow
keyword whole THEN yellow
keyword whole tree yellow
keyword whole TRUE yellow
keyword whole USES yellow
keyword whole WHEN yellow
keyword whole ANY yellow
keyword whole bin yellow
keyword whole dom yellow
keyword whole END yellow
# Sets
keyword whole FIN yellow
keyword whole fnc yellow
keyword whole INT yellow
keyword whole LET yellow
keyword whole max yellow
keyword whole min yellow
keyword whole mod yellow
keyword whole NAT yellow
# Logical
keyword whole not cyan
# Sets
keyword whole POW yellow
keyword whole PRE yellow
keyword whole ran yellow
keyword whole rec yellow
keyword whole rel yellow
keyword whole rev yellow
keyword whole seq yellow
keyword whole Set yellow
keyword whole son yellow
keyword whole top yellow
keyword whole VAR yellow
keyword whole BE yellow
keyword whole DO yellow
keyword whole id yellow
keyword whole IF yellow
keyword whole IN yellow
keyword whole OF yellow
keyword whole OR yellow
# Logical
keyword whole or cyan
# Arithmetic
keyword whole PI yellow
# prevents - keyword from interfering with comment
keyword /\* green
keyword \*/ green
keyword // green
keyword <-- yellow
keyword := yellow
# Relations
keyword \+->> white
# Relations
keyword -->> white
# Sets
keyword /<<: yellow
# Sequences
keyword /|\\ magenta
# Relations
keyword >->> white
# Relations
keyword >\+> white
# Arithmetic
keyword \*\* yellow
# Relations
keyword \+-> white
# Sequences
keyword \\|/ magenta
# Relations
keyword --> white
# Sets
keyword /<: yellow
# Sets
keyword /\\ yellow
# Relations
keyword <-> white
# Sets
keyword <<: yellow
# Relations
keyword <<| white
# Logical
keyword <=> cyan
# Relations
keyword <\+ white
# Relations
keyword >-> white
# Sets
keyword \\/ yellow
# Relations
keyword |-> white
# Relations
keyword |>> white
keyword != yellow
# Sequences
keyword -> magenta
# Sets
keyword /: yellow
# Logical
keyword /= cyan
# Substitutions
keyword :: yellow
# Sequences
keyword <- magenta
# Sets
keyword <: yellow
# Arithmetic
keyword <= yellow
# Relations
keyword <| white
keyword == yellow
# Logical
keyword => cyan
# Relations
keyword >< white
# Arithmetic
keyword >= yellow
# Arithmetic
keyword \* yellow
# Arithmetic
keyword \+ yellow
# Sets
keyword {} yellow
# Relations
keyword |> white
# Logical
keyword ! cyan
# Logical
keyword # cyan
# Relations
keyword % white
# Logical
keyword & cyan
keyword ( yellow
keyword ) yellow
keyword , yellow
# Arithmetic
keyword - yellow
# Arithmetic
keyword / yellow
# Sets
keyword : yellow
keyword ; yellow
# Arithmetic
keyword < yellow
# Logical
keyword = cyan
# Arithmetic
keyword > yellow
keyword ? yellow
keyword [ yellow
keyword ] yellow
# Sequences
keyword ^ magenta
keyword { yellow
keyword } yellow
keyword | yellow
# Relations
keyword ~ white
context exclusive /\* \*/ green
spellcheck
context exclusive // \n green
spellcheck
context " " brightgreen
|