Mercurial > yakumo_izuru > aya
comparison vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c++.xml @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 <lexer> | |
2 <config> | |
3 <name>C++</name> | |
4 <alias>cpp</alias> | |
5 <alias>c++</alias> | |
6 <filename>*.cpp</filename> | |
7 <filename>*.hpp</filename> | |
8 <filename>*.c++</filename> | |
9 <filename>*.h++</filename> | |
10 <filename>*.cc</filename> | |
11 <filename>*.hh</filename> | |
12 <filename>*.cxx</filename> | |
13 <filename>*.hxx</filename> | |
14 <filename>*.C</filename> | |
15 <filename>*.H</filename> | |
16 <filename>*.cp</filename> | |
17 <filename>*.CPP</filename> | |
18 <mime_type>text/x-c++hdr</mime_type> | |
19 <mime_type>text/x-c++src</mime_type> | |
20 <ensure_nl>true</ensure_nl> | |
21 </config> | |
22 <rules> | |
23 <state name="classname"> | |
24 <rule pattern="(\[\[.+\]\])(\s*)"> | |
25 <bygroups> | |
26 <token type="NameAttribute"/> | |
27 <token type="Text"/> | |
28 </bygroups> | |
29 </rule> | |
30 <rule pattern="[a-zA-Z_]\w*"> | |
31 <token type="NameClass"/> | |
32 <pop depth="1"/> | |
33 </rule> | |
34 <rule pattern="\s*(?=[>{])"> | |
35 <token type="Text"/> | |
36 <pop depth="1"/> | |
37 </rule> | |
38 </state> | |
39 <state name="whitespace"> | |
40 <rule pattern="^#if\s+0"> | |
41 <token type="CommentPreproc"/> | |
42 <push state="if0"/> | |
43 </rule> | |
44 <rule pattern="^#"> | |
45 <token type="CommentPreproc"/> | |
46 <push state="macro"/> | |
47 </rule> | |
48 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)"> | |
49 <bygroups> | |
50 <usingself state="root"/> | |
51 <token type="CommentPreproc"/> | |
52 </bygroups> | |
53 <push state="if0"/> | |
54 </rule> | |
55 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)"> | |
56 <bygroups> | |
57 <usingself state="root"/> | |
58 <token type="CommentPreproc"/> | |
59 </bygroups> | |
60 <push state="macro"/> | |
61 </rule> | |
62 <rule pattern="\n"> | |
63 <token type="Text"/> | |
64 </rule> | |
65 <rule pattern="\s+"> | |
66 <token type="Text"/> | |
67 </rule> | |
68 <rule pattern="\\\n"> | |
69 <token type="Text"/> | |
70 </rule> | |
71 <rule pattern="//(\n|[\w\W]*?[^\\]\n)"> | |
72 <token type="CommentSingle"/> | |
73 </rule> | |
74 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/"> | |
75 <token type="CommentMultiline"/> | |
76 </rule> | |
77 <rule pattern="/(\\\n)?[*][\w\W]*"> | |
78 <token type="CommentMultiline"/> | |
79 </rule> | |
80 </state> | |
81 <state name="macro"> | |
82 <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)"> | |
83 <bygroups> | |
84 <token type="CommentPreproc"/> | |
85 <token type="Text"/> | |
86 <token type="CommentPreprocFile"/> | |
87 </bygroups> | |
88 </rule> | |
89 <rule pattern="[^/\n]+"> | |
90 <token type="CommentPreproc"/> | |
91 </rule> | |
92 <rule pattern="/[*](.|\n)*?[*]/"> | |
93 <token type="CommentMultiline"/> | |
94 </rule> | |
95 <rule pattern="//.*?\n"> | |
96 <token type="CommentSingle"/> | |
97 <pop depth="1"/> | |
98 </rule> | |
99 <rule pattern="/"> | |
100 <token type="CommentPreproc"/> | |
101 </rule> | |
102 <rule pattern="(?<=\\)\n"> | |
103 <token type="CommentPreproc"/> | |
104 </rule> | |
105 <rule pattern="\n"> | |
106 <token type="CommentPreproc"/> | |
107 <pop depth="1"/> | |
108 </rule> | |
109 </state> | |
110 <state name="statements"> | |
111 <rule pattern="(reinterpret_cast|static_assert|thread_local|dynamic_cast|static_cast|const_cast|co_return|protected|namespace|consteval|constexpr|typename|co_await|co_yield|operator|restrict|explicit|template|override|noexcept|requires|decltype|alignof|private|alignas|virtual|mutable|nullptr|concept|export|friend|typeid|throws|public|delete|final|throw|catch|using|this|new|try)\b"> | |
112 <token type="Keyword"/> | |
113 </rule> | |
114 <rule pattern="(enum)\b(\s+)(class)\b(\s*)"> | |
115 <bygroups> | |
116 <token type="Keyword"/> | |
117 <token type="Text"/> | |
118 <token type="Keyword"/> | |
119 <token type="Text"/> | |
120 </bygroups> | |
121 <push state="classname"/> | |
122 </rule> | |
123 <rule pattern="(class|struct|enum|union)\b(\s*)"> | |
124 <bygroups> | |
125 <token type="Keyword"/> | |
126 <token type="Text"/> | |
127 </bygroups> | |
128 <push state="classname"/> | |
129 </rule> | |
130 <rule pattern="\[\[.+\]\]"> | |
131 <token type="NameAttribute"/> | |
132 </rule> | |
133 <rule pattern="(R)(")([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(")"> | |
134 <bygroups> | |
135 <token type="LiteralStringAffix"/> | |
136 <token type="LiteralString"/> | |
137 <token type="LiteralStringDelimiter"/> | |
138 <token type="LiteralStringDelimiter"/> | |
139 <token type="LiteralString"/> | |
140 <token type="LiteralStringDelimiter"/> | |
141 <token type="LiteralString"/> | |
142 </bygroups> | |
143 </rule> | |
144 <rule pattern="(u8|u|U)(")"> | |
145 <bygroups> | |
146 <token type="LiteralStringAffix"/> | |
147 <token type="LiteralString"/> | |
148 </bygroups> | |
149 <push state="string"/> | |
150 </rule> | |
151 <rule pattern="(L?)(")"> | |
152 <bygroups> | |
153 <token type="LiteralStringAffix"/> | |
154 <token type="LiteralString"/> | |
155 </bygroups> | |
156 <push state="string"/> | |
157 </rule> | |
158 <rule pattern="(L?)(')(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])(')"> | |
159 <bygroups> | |
160 <token type="LiteralStringAffix"/> | |
161 <token type="LiteralStringChar"/> | |
162 <token type="LiteralStringChar"/> | |
163 <token type="LiteralStringChar"/> | |
164 </bygroups> | |
165 </rule> | |
166 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*"> | |
167 <token type="LiteralNumberFloat"/> | |
168 </rule> | |
169 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?"> | |
170 <token type="LiteralNumberFloat"/> | |
171 </rule> | |
172 <rule pattern="0[xX]([0-9A-Fa-f]('?[0-9A-Fa-f]+)*)[LlUu]*"> | |
173 <token type="LiteralNumberHex"/> | |
174 </rule> | |
175 <rule pattern="0('?[0-7]+)+[LlUu]*"> | |
176 <token type="LiteralNumberOct"/> | |
177 </rule> | |
178 <rule pattern="0[Bb][01]('?[01]+)*[LlUu]*"> | |
179 <token type="LiteralNumberBin"/> | |
180 </rule> | |
181 <rule pattern="[0-9]('?[0-9]+)*[LlUu]*"> | |
182 <token type="LiteralNumberInteger"/> | |
183 </rule> | |
184 <rule pattern="\*/"> | |
185 <token type="Error"/> | |
186 </rule> | |
187 <rule pattern="[~!%^&*+=|?:<>/-]"> | |
188 <token type="Operator"/> | |
189 </rule> | |
190 <rule pattern="[()\[\],.]"> | |
191 <token type="Punctuation"/> | |
192 </rule> | |
193 <rule pattern="(restricted|volatile|continue|register|default|typedef|struct|extern|switch|sizeof|static|return|union|while|const|break|goto|enum|else|case|auto|for|asm|if|do)\b"> | |
194 <token type="Keyword"/> | |
195 </rule> | |
196 <rule pattern="(bool|int|long|float|short|double|char((8|16|32)_t)?|wchar_t|unsigned|signed|void|u?int(_fast|_least|)(8|16|32|64)_t)\b"> | |
197 <token type="KeywordType"/> | |
198 </rule> | |
199 <rule pattern="(typename|__inline|restrict|_inline|thread|inline|naked)\b"> | |
200 <token type="KeywordReserved"/> | |
201 </rule> | |
202 <rule pattern="(__m(128i|128d|128|64))\b"> | |
203 <token type="KeywordReserved"/> | |
204 </rule> | |
205 <rule pattern="__(forceinline|identifier|unaligned|declspec|fastcall|stdcall|finally|except|assume|int32|cdecl|int64|based|leave|int16|raise|noop|int8|w64|try|asm)\b"> | |
206 <token type="KeywordReserved"/> | |
207 </rule> | |
208 <rule pattern="(true|false|NULL)\b"> | |
209 <token type="NameBuiltin"/> | |
210 </rule> | |
211 <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)"> | |
212 <bygroups> | |
213 <token type="NameLabel"/> | |
214 <token type="Text"/> | |
215 <token type="Punctuation"/> | |
216 </bygroups> | |
217 </rule> | |
218 <rule pattern="[a-zA-Z_]\w*"> | |
219 <token type="Name"/> | |
220 </rule> | |
221 </state> | |
222 <state name="function"> | |
223 <rule> | |
224 <include state="whitespace"/> | |
225 </rule> | |
226 <rule> | |
227 <include state="statements"/> | |
228 </rule> | |
229 <rule pattern=";"> | |
230 <token type="Punctuation"/> | |
231 </rule> | |
232 <rule pattern="\{"> | |
233 <token type="Punctuation"/> | |
234 <push/> | |
235 </rule> | |
236 <rule pattern="\}"> | |
237 <token type="Punctuation"/> | |
238 <pop depth="1"/> | |
239 </rule> | |
240 </state> | |
241 <state name="string"> | |
242 <rule pattern="""> | |
243 <token type="LiteralString"/> | |
244 <pop depth="1"/> | |
245 </rule> | |
246 <rule pattern="\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})"> | |
247 <token type="LiteralStringEscape"/> | |
248 </rule> | |
249 <rule pattern="[^\\"\n]+"> | |
250 <token type="LiteralString"/> | |
251 </rule> | |
252 <rule pattern="\\\n"> | |
253 <token type="LiteralString"/> | |
254 </rule> | |
255 <rule pattern="\\"> | |
256 <token type="LiteralString"/> | |
257 </rule> | |
258 </state> | |
259 <state name="if0"> | |
260 <rule pattern="^\s*#if.*?(?<!\\)\n"> | |
261 <token type="CommentPreproc"/> | |
262 <push/> | |
263 </rule> | |
264 <rule pattern="^\s*#el(?:se|if).*\n"> | |
265 <token type="CommentPreproc"/> | |
266 <pop depth="1"/> | |
267 </rule> | |
268 <rule pattern="^\s*#endif.*?(?<!\\)\n"> | |
269 <token type="CommentPreproc"/> | |
270 <pop depth="1"/> | |
271 </rule> | |
272 <rule pattern=".*?\n"> | |
273 <token type="Comment"/> | |
274 </rule> | |
275 </state> | |
276 <state name="root"> | |
277 <rule> | |
278 <include state="whitespace"/> | |
279 </rule> | |
280 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)"> | |
281 <bygroups> | |
282 <usingself state="root"/> | |
283 <token type="NameFunction"/> | |
284 <usingself state="root"/> | |
285 <usingself state="root"/> | |
286 <token type="Punctuation"/> | |
287 </bygroups> | |
288 <push state="function"/> | |
289 </rule> | |
290 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)"> | |
291 <bygroups> | |
292 <usingself state="root"/> | |
293 <token type="NameFunction"/> | |
294 <usingself state="root"/> | |
295 <usingself state="root"/> | |
296 <token type="Punctuation"/> | |
297 </bygroups> | |
298 </rule> | |
299 <rule> | |
300 <push state="statement"/> | |
301 </rule> | |
302 <rule pattern="__(multiple_inheritance|virtual_inheritance|single_inheritance|interface|uuidof|super|event)\b"> | |
303 <token type="KeywordReserved"/> | |
304 </rule> | |
305 <rule pattern="__(offload|blockingoffload|outer)\b"> | |
306 <token type="KeywordPseudo"/> | |
307 </rule> | |
308 </state> | |
309 <state name="statement"> | |
310 <rule> | |
311 <include state="whitespace"/> | |
312 </rule> | |
313 <rule> | |
314 <include state="statements"/> | |
315 </rule> | |
316 <rule pattern="[{]"> | |
317 <token type="Punctuation"/> | |
318 <push state="root"/> | |
319 </rule> | |
320 <rule pattern="[;}]"> | |
321 <token type="Punctuation"/> | |
322 <pop depth="1"/> | |
323 </rule> | |
324 </state> | |
325 </rules> | |
326 </lexer> |