Minor optimization of memory allocation for string copy.
[midnight-commander.git] / misc / syntax / d.syntax
blob97e8e02d36f72f72892e57193361de2e91222701
1 # -------------------------------
3 # D programming language syntax highlighting
4 # for CoolEdit
6 # Homepage of D: http://www.digitalmars.com/d/
8 # Author: Witold Baryluk < baryluk at smp if uj edu pl >
9 # Date: 23-08-2007
11 # -------------------------------
13 context default
15 # sh bang
16     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/bin/dmd brightcyan black
17     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/bin/dmd brightcyan black
18     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/bin/dmd brightcyan black
19     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/bin/dmd brightcyan black
20     keyword whole linestart #!\[\s\]/bin/dmd brightcyan black
21     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
22     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
23     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
24     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
25     keyword whole linestart #!\[\s\]/dmd brightcyan black
26     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/gdmd brightcyan black
27     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/gdmd brightcyan black
28     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/gdmd brightcyan black
29     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
30     keyword whole linestart #!\[\s\]/gdmd brightcyan black
32 # keywords
33     keyword whole abstract yellow
34     keyword whole alias yellow
35     keyword whole align yellow
36     keyword whole assert yellow
37     keyword whole body yellow
38     keyword whole bool yellow
39     keyword whole byte yellow
40     keyword whole cast yellow
41     keyword whole catch yellow
42     keyword whole cdouble yellow
43     keyword whole cent yellow
44     keyword whole cfloat yellow
45     keyword whole class yellow
46     keyword whole creal yellow
47     keyword whole dchar yellow
48     keyword whole debug yellow
49     keyword whole delegate yellow
50     keyword whole delete yellow
51     keyword whole deprecated yellow
52     keyword whole dstring yellow
53     keyword whole false brightred
54     keyword whole finally yellow
55     keyword whole final yellow
56     keyword whole foreach_reverse yellow
57     keyword whole function yellow
58     keyword whole idouble yellow
59     keyword whole ifloat yellow
60     keyword whole inout yellow
61     keyword whole interface yellow
62     keyword whole invariant yellow
63     keyword whole in yellow
64     keyword whole is yellow
65     keyword whole ireal yellow
66     keyword whole lazy yellow
67     keyword whole long yellow
68     keyword whole macro yellow
69     keyword whole mixin yellow
70     keyword whole module yellow
71     keyword whole new yellow
72     keyword whole null brightred
73     keyword whole out yellow
74     keyword whole override yellow
75     keyword whole package yellow
76     keyword whole pragma yellow
77     keyword whole private yellow
78     keyword whole protected yellow
79     keyword whole public yellow
80     keyword whole real yellow
81     keyword whole ref yellow
82     keyword whole scope yellow
83     keyword whole string yellow
84     keyword whole super brightred
85     keyword whole synchronized yellow
86     keyword whole template yellow
87     keyword whole this brightred
88     keyword whole throw yellow
89     keyword whole true brightred
90     keyword whole try yellow
91     keyword whole typedef yellow
92     keyword whole typeid yellow
93     keyword whole typeof yellow
94     keyword whole ubyte yellow
95     keyword whole ucent yellow
96     keyword whole ulong yellow
97     keyword whole unittest yellow
98     keyword whole ushort yellow
99     keyword whole version yellow
100     keyword whole volatile yellow
101     keyword whole wchar yellow
102     keyword whole with yellow
103     keyword whole wstring yellow
104     keyword whole asm yellow
105     keyword whole auto yellow
106     keyword whole break yellow
107     keyword whole case yellow
108     keyword whole char yellow
109     keyword whole const yellow
110     keyword whole continue yellow
111     keyword whole default yellow
112     keyword whole double yellow
113     keyword whole do yellow
114     keyword whole else yellow
115     keyword whole enum yellow
116     keyword whole export yellow
117     keyword whole extern yellow
118     keyword whole float yellow
119     keyword whole foreach yellow
120     keyword whole for yellow
121     keyword whole goto yellow
122     keyword whole if yellow
123     keyword whole import magenta
124     keyword whole inline yellow
125     keyword whole int yellow
126     keyword whole return yellow
127     keyword whole short yellow
128     keyword whole signed yellow
129     keyword whole sizeof yellow
130     keyword whole static yellow
131     keyword whole struct yellow
132     keyword whole switch yellow
133     keyword whole typedef yellow
134     keyword whole uint yellow
135     keyword whole union yellow
136     keyword whole unsigned yellow
137     keyword whole void yellow
138     keyword whole while yellow
140 # predefined aliases (deprecated)
141     keyword whole bit yellow
142 # predefined aliases (2.0)
143     keyword whole string yellow
144     keyword whole dstring yellow
145     keyword whole wstring yellow
147 # D array atributes
148     keyword wholeright .sizeof yellow
149     keyword wholeright .length yellow
150     keyword wholeright .ptr yellow
151     keyword wholeright .dup yellow
152     keyword wholeright .reverse yellow
153     keyword wholeright .sort yellow
154     keyword wholeright .keys yellow
155     keyword wholeright .values yellow
156     keyword wholeright .rehash yellow
157 # D types atributes
158     keyword wholeright .init yellow
159     keyword wholeright .alignof yellow
160     keyword wholeright .mangleof yellow
161     keyword wholeright .stringof yellow
162 # +integer
163     keyword wholeright .min yellow
164     keyword wholeright .max yellow
165 # +floating point
166     keyword wholeright .infinity yellow
167     keyword wholeright .nan yellow
168     keyword wholeright .dig yellow
169     keyword wholeright .epsilon yellow
170     keyword wholeright .mant_dig yellow
171     keyword wholeright .max_10_exp yellow
172     keyword wholeright .max_exp yellow
173     keyword wholeright .min_10_exp yellow
174     keyword wholeright .min_exp yellow
175     keyword wholeright .re yellow
176     keyword wholeright .im yellow
177     keyword wholeright .im yellow
178 # union
179     keyword wholeright .offsetof yellow
181 # D 2.0 atributes
182     keyword wholeright .idup yellow
184 # unary operators
185     keyword whole opNeg gray
186     keyword whole opPos gray
187     keyword whole opCom gray
188     keyword whole opPostInc gray
189     keyword whole opPostDec gray
190     keyword whole opCast gray
192 # binary operators
193     keyword whole opAdd gray
194     keyword whole opAdd_r gray
195     keyword whole opSub gray
196     keyword whole opSub_r gray
197     keyword whole opMul gray
198     keyword whole opMul_r gray
199     keyword whole opDiv gray
200     keyword whole opDiv_r gray
201     keyword whole opMod gray
202     keyword whole opMod_r gray
203     keyword whole opAnd gray
204     keyword whole opAnd_r gray
205     keyword whole opOr gray
206     keyword whole opOr_r gray
207     keyword whole opXor gray
208     keyword whole opXor_r gray
209     keyword whole opShl gray
210     keyword whole opShl_r gray
211     keyword whole opShr gray
212     keyword whole opShr_r gray
213     keyword whole opUShr gray
214     keyword whole opUShr_r gray
215     keyword whole opCat gray
216     keyword whole opCat_r gray
217     keyword whole opEquals gray
218     keyword whole opCmp gray
219     keyword whole opAssign gray
220     keyword whole opAddAssign gray
221     keyword whole opSubAssign gray
222     keyword whole opMulAssign gray
223     keyword whole opDivAssign gray
224     keyword whole opModAssign gray
225     keyword whole opAndAssign gray
226     keyword whole opOrAssign gray
227     keyword whole opXorAssign gray
228     keyword whole opShlAssign gray
229     keyword whole opShrAssign gray
230     keyword whole opUShrAssign gray
231     keyword whole opCatAssign gray
232     keyword whole opIn gray
233     keyword whole opIn_r gray
235 # special operators
236     keyword whole opCall gray
237     keyword whole opIndex gray
238     keyword whole opIndexAssign gray
239     keyword whole opSlice gray
240     keyword whole opSliceAssign gray
241     keyword whole opAssign gray
242     keyword whole opApply gray
244     keyword whole ... yellow
245     keyword whole .. yellow
246 #    keyword whole linestart \{\s\t\}\[\s\t\]#*\n brightmagenta # C preprocesor
248 # special objects
250 # hidden argument of variadic functions
251     keyword whole _argptr brightred
252     keyword whole _arguments brightred
254 # object
255     keyword whole Object brightmagenta
256     keyword whole Interface brightmagenta
257     keyword whole ClassInfo brightmagenta
258     keyword whole OffsetTypeInfo brightmagenta
259     keyword whole TypeInfo brightmagenta
260     keyword whole Exception brightmagenta
261     keyword whole Error brightmagenta
263 # common functions
265 # object methods
266     keyword whole toString cyan
267     keyword whole toHash cyan
268 # std.stdio
269     keyword whole writefln cyan
270     keyword whole writef cyan
271 # std.gc
272     keyword whole addRoot cyan
273     keyword whole removeRoot cyan
274     keyword whole addRange cyan
275     keyword whole hasPointers cyan
276     keyword whole hasNoPointers cyan
277     keyword whole setTypeInfo cyan
278     keyword whole malloc cyan
279     keyword whole realoc cyan
280     keyword whole extend cyan
281     keyword whole capacity cyan
282     keyword whole setV1_0 cyan
283     keyword whole fullCollect cyan
284     keyword whole genCollect cyan
285 # std.string
286     keyword whole iswhite cyan
287     keyword whole atoi cyan
288     keyword whole atof cyan
289     keyword whole toStringz cyan
290     keyword whole tolower cyan
291     keyword whole toupper cyan
292     keyword whole repeat cyan
293     keyword whole join cyan
294     keyword whole split cyan
295     keyword whole stripl cyan
296     keyword whole stripr cyan
297     keyword whole strip cyan
298     keyword whole chomp cyan
299     keyword whole chop cyan
300     keyword whole isNumeric cyan
301     keyword whole isEmail cyan
302     keyword whole isURL cyan
303 # std.math
304     keyword whole abs cyan
305     keyword whole conj cyan
306     keyword whole cos cyan
307     keyword whole sin cyan
308     keyword whole tan cyan
309     keyword whole acos cyan
310     keyword whole asin cyan
311     keyword whole atan cyan
312     keyword whole atan2 cyan
313     keyword whole cosh cyan
314     keyword whole sinh cyan
315     keyword whole tanh cyan
316     keyword whole acosh cyan
317     keyword whole asinh cyan
318     keyword whole atanh cyan
319     keyword whole rndtol cyan
320     keyword whole rndtonl cyan
321     keyword whole sqrt cyan
322     keyword whole exp cyan
323     keyword whole exp2 cyan
324     keyword whole expm1 cyan
325     keyword whole frexp cyan
326     keyword whole ilogb cyan
327     keyword whole ldexp cyan
328     keyword whole log cyan
329     keyword whole log10 cyan
330     keyword whole log1p cyan
331     keyword whole log2 cyan
332     keyword whole logb cyan
333     keyword whole modf cyan
334     keyword whole scalbn cyan
335     keyword whole cbrt cyan
336     keyword whole fabs cyan
337     keyword whole hypot cyan
338     keyword whole erf cyan
339     keyword whole erfc cyan
340     keyword whole lgamma cyan
341     keyword whole tgamma cyan
342     keyword whole ceil cyan
343     keyword whole floor cyan
344     keyword whole nearbyint cyan
345     keyword whole rint cyan
346     keyword whole lrint cyan
347     keyword whole round cyan
348     keyword whole lround cyan
349     keyword whole trunc cyan
350     keyword whole remainder cyan
351     keyword whole remquo cyan
352     keyword whole isnan cyan
353     keyword whole isfinite cyan
354     keyword whole isnormal cyan
355     keyword whole issubnormal cyan
356     keyword whole isinf cyan
357     keyword whole signbit cyan
358     keyword whole copysign cyan
359     keyword whole nan cyan
360     keyword whole nextafter cyan
361     keyword whole fdim cyan
362     keyword whole fmax cyan
363     keyword whole fmin cyan
364     keyword whole fma cyan
365     keyword whole pow cyan
366     keyword whole feqrel cyan
367     keyword whole poly cyan
369 # comments
370     keyword /\*\* brown
371     keyword /\* brown
372     keyword \*/ brown
373     keyword // brown
375     keyword /\+\+\+\+\+\+\+\+\+\+ brown
376     keyword /\+\+\+\+\+\+\+\+\+ brown
377     keyword /\+\+\+\+\+\+\+\+ brown
378     keyword /\+\+\+\+\+\+\+ brown
379     keyword /\+\+\+\+\+\+ brown
380     keyword /\+\+\+\+\+ brown
381     keyword /\+\+\+\+ brown
382     keyword /\+\+\+ brown
383     keyword /\+\+ brown
384     keyword /\+ brown
385     keyword \+\+\+\+\+\+\+\+\+\+/ brown
386     keyword \+\+\+\+\+\+\+\+\+/ brown
387     keyword \+\+\+\+\+\+\+\+/ brown
388     keyword \+\+\+\+\+\+\+/ brown
389     keyword \+\+\+\+\+\+/ brown
390     keyword \+\+\+\+\+/ brown
391     keyword \+\+\+\+/ brown
392     keyword \+\+\+/ brown
393     keyword \+\+/ brown
394     keyword \+/ brown
396 # chars, 'x' and entities
397     keyword '\\\{"abtnvfr\}' brightgreen
398     keyword \\\{"abtnvfr\} brightmagenta
399     keyword '\\\{0123\}\{01234567\}\{01234567\}' brightgreen
400     keyword \\\{0123\}\{01234567\}\{01234567\} brightmagenta
401     keyword '\\\{01234567\}\{01234567\}' brightgreen
402     keyword \\\{01234567\}\{01234567\} brightmagenta
403     keyword '\\\{01234567\}' brightgreen
404     keyword \\\{01234567\} brightmagenta
405     keyword '\\'' brightgreen
406     keyword '\\\\' brightgreen
407     keyword '\\0' brightgreen
408     keyword '\{\s!"#$%&()\*\+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\}' brightgreen
409     keyword '\\&*;' brightgreen
410     keyword \\&*; brightmagenta
411     keyword '\\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}' brightgreen
412     keyword \\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightmagenta
413     keyword '\\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}' brightgreen
414     keyword \\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightmagenta
415     keyword '\\u\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}' brightgreen
416     keyword \\u\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightmagenta
417     keyword '\\U\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}' brightgreen
418     keyword \\U\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightmagenta
420 # hexstring
421     keyword x"\[0123456789abcdefABCDEF\t\s\]"\{cwd\} brightgreen
422     keyword x"\[0123456789abcdefABCDEF\t\s\]" brightgreen
424 # start of wyswig string
425 #    keyword "\{cwd\} green  # imposible in cooledit
426     keyword " green
427     keyword r" green
428 #    keyword `\{cwd\} green  # imposible in cooledit
429     keyword ` green
431 # operators
432     keyword !<>= yellow
433     keyword !<> yellow
434     keyword !>= yellow
435     keyword !> yellow
436     keyword !<= yellow
437     keyword !< yellow
438     keyword != yellow
439     keyword ! yellow
440     keyword %= yellow
441     keyword % yellow
442     keyword && yellow
443     keyword &= yellow
444     keyword & yellow
445     keyword ( brightcyan
446     keyword ) brightcyan
447     keyword \+\+ yellow
448     keyword -- yellow
449     keyword \*= yellow
450     keyword \* yellow
451     keyword \+= yellow
452     keyword \+ yellow
453     keyword , brightcyan
454     keyword -= yellow
455     keyword - yellow
456     keyword /= yellow
457     keyword / yellow
458     keyword : brightcyan
459     keyword ; brightmagenta
460     keyword <>= yellow
461     keyword <> yellow
462     keyword <<= yellow
463     keyword << yellow
464     keyword <= yellow
465     keyword < yellow
466     keyword = yellow
467     keyword >>>= yellow
468     keyword >>> yellow
469     keyword >>= yellow
470     keyword >> yellow
471     keyword >= yellow
472     keyword > yellow
473     keyword ? brightcyan
474     keyword [ brightcyan
475     keyword ] brightcyan
476     keyword ^= yellow
477     keyword ^ yellow
478     keyword || yellow
479     keyword |= yellow
480     keyword | yellow
481     keyword { brightcyan
482     keyword } brightcyan
483     keyword $ brightcyan
484     keyword ~= yellow
485     keyword ~ yellow
487 # predefined lexer entities
488     keyword whole __FILE__ red
489     keyword whole __LINE__ red
490     keyword whole __DATE__ red
491     keyword whole __TIME__ red
492     keyword whole __TIMESTAMP__ red
493 # 1.017 ?
494     keyword whole __VENDOR__ red
495     keyword whole __VERSION__ red
497     keyword #line*"*" red
499 context exclusive /\*\* \*/ brown
500     keyword \*/ brown
501     spellcheck
502 # ddoc
503     keyword Authors: red
504     keyword Author: red
505     keyword BUGS: red
506     keyword Bugs: red
507     keyword Date: red
508     keyword Deprecated: red
509     keyword Examples: red
510     keyword History: red
511     keyword License: red
512     keyword Returns: red
513     keyword See_Also: red
514     keyword Standards: red
515     keyword Throws: red
516     keyword Version: red
517 # sections
518     keyword Copyright: red
519     keyword Params: red
520     keyword Macros: red
521 # non standard
522     keyword TODO: red
523     keyword FIXME: red
524     keyword Note: red
526 context exclusive /\+\+\+\+\+\+\+\+\+ \+\+\+\+\+\+\+\+\+/ brown
527 context exclusive /\+\+\+\+\+\+\+\+ \+\+\+\+\+\+\+\+/ brown
528 context exclusive /\+\+\+\+\+\+\+ \+\+\+\+\+\+\+/ brown
529 context exclusive /\+\+\+\+\+\+ \+\+\+\+\+\+/ brown
530 context exclusive /\+\+\+\+\+ \+\+\+\+\+/ brown
531 context exclusive /\+\+\+\+ \+\+\+\+/ brown
532 context exclusive /\+\+\+ \+\+\+/ brown
533 context exclusive /\+\+ \+\+/ brown
534 context exclusive /\+ \+/ brown
536 context exclusive /\* \*/ brown
537     spellcheck
539 context exclusive // \n brown
540     spellcheck
542 context exclusive ` ` green
544 context exclusive r" " green
546 context exclusive " " green
547     spellcheck
548     keyword \\" brightgreen
549     keyword %% brightgreen
550     keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} brightgreen
551     keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} brightgreen
552     keyword %\[hl\]n brightgreen
553     keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s brightgreen
554     keyword %[*] brightgreen
555     keyword %c brightgreen
556     keyword %p brightgreen
557     keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen
558     keyword \\\\ brightgreen
559     keyword \\' brightgreen
560     keyword \\\{abtnvfr\} brightgreen
561     keyword \\&*; brightgreen