summaryrefslogtreecommitdiffstats
path: root/misc/syntax/opencl.syntax
blob: 9ff98651eb83506de267d06b70e69963f9f4d6ba (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
# Syntax rules for the C and the C++ programming languages
#
# List of keywords is based on opencl-mode.el from
# Salmane Bah <salmane.bah@u-bordeaux.fr>

context default
    keyword whole auto yellow
    keyword whole break yellow
    keyword whole case yellow
    keyword whole char yellow
    keyword whole const yellow
    keyword whole continue yellow
    keyword whole do yellow
    keyword whole double yellow
    keyword whole else yellow
    keyword whole enum yellow
    keyword whole extern yellow
    keyword whole float yellow
    keyword whole for yellow
    keyword whole goto yellow
    keyword whole if yellow
    keyword whole int yellow
    keyword whole long yellow
    keyword whole register yellow
    keyword whole return yellow
    keyword whole short yellow
    keyword whole signed yellow
    keyword whole sizeof yellow
    keyword whole static yellow
    keyword whole struct yellow
    keyword whole switch yellow
    keyword whole typedef yellow
    keyword whole union yellow
    keyword whole unsigned yellow
    keyword whole void yellow
    keyword whole volatile yellow
    keyword whole while yellow
    keyword whole asm yellow
    keyword whole inline yellow
    keyword whole wchar_t yellow
    keyword whole ... yellow
    keyword whole linestart \{\s\t\}\[\s\t\]#*\n brightmagenta
    keyword whole \[\s\t\]default yellow
    keyword whole linestart \[\s\t\]\{ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\}\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\]: cyan

# Function type qualifiers
    keyword whole __kernel white

# Variable type qualifiers
    keyword whole __global white
    keyword whole __local white
    keyword whole __constant white
    keyword whole __private white
    keyword whole __read_only white
    keyword whole __write_only white
    keyword whole __read_write white
    keyword whole __enable white
    keyword whole __disable white
    keyword whole global white
    keyword whole local white
    keyword whole constant white
    keyword whole private white
    keyword whole read_only white
    keyword whole write_only white
    keyword whole read_write white
    keyword whole enable white
    keyword whole disable white

# Built-in functions
    keyword whole get_group_id brightmagenta
    keyword whole get_local_id brightmagenta
    keyword whole get_global_id brightmagenta
    keyword whole get_local_size brightmagenta
    keyword whole get_global_size brightmagenta
    keyword whole get_work_dim brightmagenta
    keyword whole get_num_groups brightmagenta
    keyword whole get_global_offset brightmagenta
    keyword whole barrier brightmagenta

# Constants
    keyword whole CLK_LOCAL_MEM_FENCE white
    keyword whole CLK_GLOBAL_MEM_FENCE white
    keyword whole MAXFLOAT white
    keyword whole HUGE_VAL white
    keyword whole HUGE_VALF white
    keyword whole INFINITY white
    keyword whole NAN white

# Built-in types
    keyword whole half yellow
    keyword whole uchar yellow
    keyword whole ushort yellow
    keyword whole uint yellow
    keyword whole ulong yellow
    keyword whole bool yellow
    keyword whole size_t yellow
    keyword whole ptrdiff_t yellow
    keyword whole intptr_t yellow
    keyword whole uintptr_t yellow

    keyword whole image2d_t yellow
    keyword whole image3d_t yellow
    keyword whole image2d_array_t yellow
    keyword whole image3d_array_t yellow
    keyword whole image1d_array_t yellow
    keyword whole image1d_t yellow
    keyword whole image1d_buffer_t yellow
    keyword whole sampler_t yellow
    keyword whole event_t yellow

    keyword whole cl_khr_\{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\}\{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_\}+ brightgreen

    keyword /\* brown
    keyword \*/ brown
    keyword // brown

    keyword '\\\{"abtnvfr\}' brightgreen
    keyword '\\\{0123\}\{01234567\}\{01234567\}' brightgreen
    keyword '\\'' brightgreen
    keyword '\\\\' brightgreen
    keyword '\\0' brightgreen
    keyword '\{\s!"#$%&()\*\+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~������������������������������������������������������������������������������������������������\}' brightgreen

# punctuation characters, sorted by ASCII code
    keyword ! yellow
    keyword % yellow
    keyword && yellow
    keyword & brightmagenta
    keyword ( brightcyan
    keyword ) brightcyan
    keyword \* yellow
    keyword \+ yellow
    keyword , brightcyan
    keyword - yellow
    keyword / yellow
    keyword : brightcyan
    keyword ; brightmagenta
    keyword < yellow
    keyword = yellow
    keyword > yellow
    keyword ? brightcyan
    keyword [ brightcyan
    keyword ] brightcyan
    keyword ^ brightmagenta
    keyword { brightcyan
    keyword || yellow
    keyword | brightmagenta
    keyword } brightcyan
    keyword ~ brightmagenta

context exclusive /\* \*/ brown
    spellcheck

context exclusive // \n brown
    spellcheck

context linestart # \n brightred
    keyword \\\n yellow
    keyword /\**\*/ brown
    keyword //*\n brown
    keyword "+" red
    keyword <+> red

context " " green
    spellcheck
    keyword \\" brightgreen
    keyword %% brightgreen
    keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} brightgreen
    keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} brightgreen
    keyword %\[hl\]n brightgreen
    keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s brightgreen
    keyword %[*] brightgreen
    keyword %c brightgreen
    keyword %p brightgreen
    keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen
    keyword \\\\ brightgreen
    keyword \\' brightgreen
    keyword \\\{abtnvfr\} brightgreen