Mercurial > yakumo_izuru > aya
comparison vendor/github.com/alecthomas/chroma/v2/lexers/embedded/perl.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>Perl</name> | |
4 <alias>perl</alias> | |
5 <alias>pl</alias> | |
6 <filename>*.pl</filename> | |
7 <filename>*.pm</filename> | |
8 <filename>*.t</filename> | |
9 <mime_type>text/x-perl</mime_type> | |
10 <mime_type>application/x-perl</mime_type> | |
11 <dot_all>true</dot_all> | |
12 </config> | |
13 <rules> | |
14 <state name="root"> | |
15 <rule pattern="\A\#!.+?$"> | |
16 <token type="CommentHashbang"/> | |
17 </rule> | |
18 <rule pattern="\#.*?$"> | |
19 <token type="CommentSingle"/> | |
20 </rule> | |
21 <rule pattern="^=[a-zA-Z0-9]+\s+.*?\n=cut"> | |
22 <token type="CommentMultiline"/> | |
23 </rule> | |
24 <rule pattern="(continue|foreach|unless|return|elsif|CHECK|while|BEGIN|reset|print|until|next|else|INIT|then|last|redo|case|our|new|for|END|if|do|my)\b"> | |
25 <token type="Keyword"/> | |
26 </rule> | |
27 <rule pattern="(format)(\s+)(\w+)(\s*)(=)(\s*\n)"> | |
28 <bygroups> | |
29 <token type="Keyword"/> | |
30 <token type="Text"/> | |
31 <token type="Name"/> | |
32 <token type="Text"/> | |
33 <token type="Punctuation"/> | |
34 <token type="Text"/> | |
35 </bygroups> | |
36 <push state="format"/> | |
37 </rule> | |
38 <rule pattern="(eq|lt|gt|le|ge|ne|not|and|or|cmp)\b"> | |
39 <token type="OperatorWord"/> | |
40 </rule> | |
41 <rule pattern="s/(\\\\|\\[^\\]|[^\\/])*/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*"> | |
42 <token type="LiteralStringRegex"/> | |
43 </rule> | |
44 <rule pattern="s!(\\\\|\\!|[^!])*!(\\\\|\\!|[^!])*![egimosx]*"> | |
45 <token type="LiteralStringRegex"/> | |
46 </rule> | |
47 <rule pattern="s\\(\\\\|[^\\])*\\(\\\\|[^\\])*\\[egimosx]*"> | |
48 <token type="LiteralStringRegex"/> | |
49 </rule> | |
50 <rule pattern="s@(\\\\|\\[^\\]|[^\\@])*@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*"> | |
51 <token type="LiteralStringRegex"/> | |
52 </rule> | |
53 <rule pattern="s%(\\\\|\\[^\\]|[^\\%])*%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*"> | |
54 <token type="LiteralStringRegex"/> | |
55 </rule> | |
56 <rule pattern="s\{(\\\\|\\[^\\]|[^\\}])*\}\s*"> | |
57 <token type="LiteralStringRegex"/> | |
58 <push state="balanced-regex"/> | |
59 </rule> | |
60 <rule pattern="s<(\\\\|\\[^\\]|[^\\>])*>\s*"> | |
61 <token type="LiteralStringRegex"/> | |
62 <push state="balanced-regex"/> | |
63 </rule> | |
64 <rule pattern="s\[(\\\\|\\[^\\]|[^\\\]])*\]\s*"> | |
65 <token type="LiteralStringRegex"/> | |
66 <push state="balanced-regex"/> | |
67 </rule> | |
68 <rule pattern="s\((\\\\|\\[^\\]|[^\\)])*\)\s*"> | |
69 <token type="LiteralStringRegex"/> | |
70 <push state="balanced-regex"/> | |
71 </rule> | |
72 <rule pattern="m?/(\\\\|\\[^\\]|[^\\/\n])*/[gcimosx]*"> | |
73 <token type="LiteralStringRegex"/> | |
74 </rule> | |
75 <rule pattern="m(?=[/!\\{<\[(@%$])"> | |
76 <token type="LiteralStringRegex"/> | |
77 <push state="balanced-regex"/> | |
78 </rule> | |
79 <rule pattern="((?<==~)|(?<=\())\s*/(\\\\|\\[^\\]|[^\\/])*/[gcimosx]*"> | |
80 <token type="LiteralStringRegex"/> | |
81 </rule> | |
82 <rule pattern="\s+"> | |
83 <token type="Text"/> | |
84 </rule> | |
85 <rule pattern="(getprotobynumber|getprotobyname|getservbyport|getservbyname|gethostbyname|gethostbyaddr|getnetbyaddr|getnetbyname|setprotoent|setpriority|getsockname|getprotoent|getpriority|getpeername|endprotoent|setsockopt|endhostent|setservent|socketpair|getsockopt|endservent|sethostent|getservent|gethostent|getnetent|wantarray|localtime|quotemeta|setnetent|prototype|endnetent|rewinddir|endpwent|endgrent|getpwent|getpwnam|getgrgid|dbmclose|continue|closedir|shutdown|setpwent|shmwrite|syswrite|truncate|formline|setgrent|getgrent|readpipe|getgrnam|readlink|readline|getpwuid|getlogin|telldir|opendir|shmread|readdir|getpgrp|getppid|waitpid|binmode|reverse|sprintf|unshift|symlink|seekdir|sysopen|defined|dbmopen|sysread|sysseek|connect|lcfirst|ucfirst|setpgrp|syscall|import|chroot|system|gmtime|unlink|unpack|semget|semctl|select|msgrcv|length|printf|listen|scalar|caller|rindex|substr|splice|rename|msgctl|msgget|delete|msgsnd|exists|values|socket|fileno|format|accept|shmget|shmctl|ioctl|alarm|atan2|utime|untie|bless|chdir|chmod|undef|umask|chomp|times|close|crypt|srand|split|mkdir|sleep|lstat|study|rmdir|local|fcntl|flock|write|shift|index|semop|chown|tell|join|send|warn|kill|wait|grep|glob|bind|last|pack|getc|fork|link|seek|push|rand|read|exit|sort|exec|open|eval|sqrt|redo|stat|chop|next|each|dump|time|recv|tied|goto|keys|pipe|map|tie|cos|die|eof|pop|sin|pos|oct|ref|exp|int|ord|log|our|hex|abs|vec|chr|uc|tr|my|lc)\b"> | |
86 <token type="NameBuiltin"/> | |
87 </rule> | |
88 <rule pattern="((__(DATA|DIE|WARN)__)|(STD(IN|OUT|ERR)))\b"> | |
89 <token type="NameBuiltinPseudo"/> | |
90 </rule> | |
91 <rule pattern="(<<)([\'"]?)([a-zA-Z_]\w*)(\2;?\n.*?\n)(\3)(\n)"> | |
92 <bygroups> | |
93 <token type="LiteralString"/> | |
94 <token type="LiteralString"/> | |
95 <token type="LiteralStringDelimiter"/> | |
96 <token type="LiteralString"/> | |
97 <token type="LiteralStringDelimiter"/> | |
98 <token type="Text"/> | |
99 </bygroups> | |
100 </rule> | |
101 <rule pattern="__END__"> | |
102 <token type="CommentPreproc"/> | |
103 <push state="end-part"/> | |
104 </rule> | |
105 <rule pattern="\$\^[ADEFHILMOPSTWX]"> | |
106 <token type="NameVariableGlobal"/> | |
107 </rule> | |
108 <rule pattern="\$[\\\"\[\]'&`+*.,;=%~?@$!<>(^|/-](?!\w)"> | |
109 <token type="NameVariableGlobal"/> | |
110 </rule> | |
111 <rule pattern="[$@%#]+"> | |
112 <token type="NameVariable"/> | |
113 <push state="varname"/> | |
114 </rule> | |
115 <rule pattern="0_?[0-7]+(_[0-7]+)*"> | |
116 <token type="LiteralNumberOct"/> | |
117 </rule> | |
118 <rule pattern="0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*"> | |
119 <token type="LiteralNumberHex"/> | |
120 </rule> | |
121 <rule pattern="0b[01]+(_[01]+)*"> | |
122 <token type="LiteralNumberBin"/> | |
123 </rule> | |
124 <rule pattern="(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?"> | |
125 <token type="LiteralNumberFloat"/> | |
126 </rule> | |
127 <rule pattern="(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*"> | |
128 <token type="LiteralNumberFloat"/> | |
129 </rule> | |
130 <rule pattern="\d+(_\d+)*"> | |
131 <token type="LiteralNumberInteger"/> | |
132 </rule> | |
133 <rule pattern="'(\\\\|\\[^\\]|[^'\\])*'"> | |
134 <token type="LiteralString"/> | |
135 </rule> | |
136 <rule pattern=""(\\\\|\\[^\\]|[^"\\])*""> | |
137 <token type="LiteralString"/> | |
138 </rule> | |
139 <rule pattern="`(\\\\|\\[^\\]|[^`\\])*`"> | |
140 <token type="LiteralStringBacktick"/> | |
141 </rule> | |
142 <rule pattern="<([^\s>]+)>"> | |
143 <token type="LiteralStringRegex"/> | |
144 </rule> | |
145 <rule pattern="(q|qq|qw|qr|qx)\{"> | |
146 <token type="LiteralStringOther"/> | |
147 <push state="cb-string"/> | |
148 </rule> | |
149 <rule pattern="(q|qq|qw|qr|qx)\("> | |
150 <token type="LiteralStringOther"/> | |
151 <push state="rb-string"/> | |
152 </rule> | |
153 <rule pattern="(q|qq|qw|qr|qx)\["> | |
154 <token type="LiteralStringOther"/> | |
155 <push state="sb-string"/> | |
156 </rule> | |
157 <rule pattern="(q|qq|qw|qr|qx)\<"> | |
158 <token type="LiteralStringOther"/> | |
159 <push state="lt-string"/> | |
160 </rule> | |
161 <rule pattern="(q|qq|qw|qr|qx)([\W_])(.|\n)*?\2"> | |
162 <token type="LiteralStringOther"/> | |
163 </rule> | |
164 <rule pattern="(package)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)"> | |
165 <bygroups> | |
166 <token type="Keyword"/> | |
167 <token type="Text"/> | |
168 <token type="NameNamespace"/> | |
169 </bygroups> | |
170 </rule> | |
171 <rule pattern="(use|require|no)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)"> | |
172 <bygroups> | |
173 <token type="Keyword"/> | |
174 <token type="Text"/> | |
175 <token type="NameNamespace"/> | |
176 </bygroups> | |
177 </rule> | |
178 <rule pattern="(sub)(\s+)"> | |
179 <bygroups> | |
180 <token type="Keyword"/> | |
181 <token type="Text"/> | |
182 </bygroups> | |
183 <push state="funcname"/> | |
184 </rule> | |
185 <rule pattern="(package|require|use|no)\b"> | |
186 <token type="Keyword"/> | |
187 </rule> | |
188 <rule pattern="(\[\]|\*\*|::|<<|>>|>=|<=>|<=|={3}|!=|=~|!~|&&?|\|\||\.{1,3})"> | |
189 <token type="Operator"/> | |
190 </rule> | |
191 <rule pattern="[-+/*%=<>&^|!\\~]=?"> | |
192 <token type="Operator"/> | |
193 </rule> | |
194 <rule pattern="[()\[\]:;,<>/?{}]"> | |
195 <token type="Punctuation"/> | |
196 </rule> | |
197 <rule pattern="(?=\w)"> | |
198 <token type="Name"/> | |
199 <push state="name"/> | |
200 </rule> | |
201 </state> | |
202 <state name="cb-string"> | |
203 <rule pattern="\\[{}\\]"> | |
204 <token type="LiteralStringOther"/> | |
205 </rule> | |
206 <rule pattern="\\"> | |
207 <token type="LiteralStringOther"/> | |
208 </rule> | |
209 <rule pattern="\{"> | |
210 <token type="LiteralStringOther"/> | |
211 <push state="cb-string"/> | |
212 </rule> | |
213 <rule pattern="\}"> | |
214 <token type="LiteralStringOther"/> | |
215 <pop depth="1"/> | |
216 </rule> | |
217 <rule pattern="[^{}\\]+"> | |
218 <token type="LiteralStringOther"/> | |
219 </rule> | |
220 </state> | |
221 <state name="balanced-regex"> | |
222 <rule pattern="/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*"> | |
223 <token type="LiteralStringRegex"/> | |
224 <pop depth="1"/> | |
225 </rule> | |
226 <rule pattern="!(\\\\|\\[^\\]|[^\\!])*![egimosx]*"> | |
227 <token type="LiteralStringRegex"/> | |
228 <pop depth="1"/> | |
229 </rule> | |
230 <rule pattern="\\(\\\\|[^\\])*\\[egimosx]*"> | |
231 <token type="LiteralStringRegex"/> | |
232 <pop depth="1"/> | |
233 </rule> | |
234 <rule pattern="\{(\\\\|\\[^\\]|[^\\}])*\}[egimosx]*"> | |
235 <token type="LiteralStringRegex"/> | |
236 <pop depth="1"/> | |
237 </rule> | |
238 <rule pattern="<(\\\\|\\[^\\]|[^\\>])*>[egimosx]*"> | |
239 <token type="LiteralStringRegex"/> | |
240 <pop depth="1"/> | |
241 </rule> | |
242 <rule pattern="\[(\\\\|\\[^\\]|[^\\\]])*\][egimosx]*"> | |
243 <token type="LiteralStringRegex"/> | |
244 <pop depth="1"/> | |
245 </rule> | |
246 <rule pattern="\((\\\\|\\[^\\]|[^\\)])*\)[egimosx]*"> | |
247 <token type="LiteralStringRegex"/> | |
248 <pop depth="1"/> | |
249 </rule> | |
250 <rule pattern="@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*"> | |
251 <token type="LiteralStringRegex"/> | |
252 <pop depth="1"/> | |
253 </rule> | |
254 <rule pattern="%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*"> | |
255 <token type="LiteralStringRegex"/> | |
256 <pop depth="1"/> | |
257 </rule> | |
258 <rule pattern="\$(\\\\|\\[^\\]|[^\\$])*\$[egimosx]*"> | |
259 <token type="LiteralStringRegex"/> | |
260 <pop depth="1"/> | |
261 </rule> | |
262 </state> | |
263 <state name="lt-string"> | |
264 <rule pattern="\\[<>\\]"> | |
265 <token type="LiteralStringOther"/> | |
266 </rule> | |
267 <rule pattern="\\"> | |
268 <token type="LiteralStringOther"/> | |
269 </rule> | |
270 <rule pattern="\<"> | |
271 <token type="LiteralStringOther"/> | |
272 <push state="lt-string"/> | |
273 </rule> | |
274 <rule pattern="\>"> | |
275 <token type="LiteralStringOther"/> | |
276 <pop depth="1"/> | |
277 </rule> | |
278 <rule pattern="[^<>]+"> | |
279 <token type="LiteralStringOther"/> | |
280 </rule> | |
281 </state> | |
282 <state name="format"> | |
283 <rule pattern="\.\n"> | |
284 <token type="LiteralStringInterpol"/> | |
285 <pop depth="1"/> | |
286 </rule> | |
287 <rule pattern="[^\n]*\n"> | |
288 <token type="LiteralStringInterpol"/> | |
289 </rule> | |
290 </state> | |
291 <state name="funcname"> | |
292 <rule pattern="[a-zA-Z_]\w*[!?]?"> | |
293 <token type="NameFunction"/> | |
294 </rule> | |
295 <rule pattern="\s+"> | |
296 <token type="Text"/> | |
297 </rule> | |
298 <rule pattern="(\([$@%]*\))(\s*)"> | |
299 <bygroups> | |
300 <token type="Punctuation"/> | |
301 <token type="Text"/> | |
302 </bygroups> | |
303 </rule> | |
304 <rule pattern=";"> | |
305 <token type="Punctuation"/> | |
306 <pop depth="1"/> | |
307 </rule> | |
308 <rule pattern=".*?\{"> | |
309 <token type="Punctuation"/> | |
310 <pop depth="1"/> | |
311 </rule> | |
312 </state> | |
313 <state name="end-part"> | |
314 <rule pattern=".+"> | |
315 <token type="CommentPreproc"/> | |
316 <pop depth="1"/> | |
317 </rule> | |
318 </state> | |
319 <state name="varname"> | |
320 <rule pattern="\s+"> | |
321 <token type="Text"/> | |
322 </rule> | |
323 <rule pattern="\{"> | |
324 <token type="Punctuation"/> | |
325 <pop depth="1"/> | |
326 </rule> | |
327 <rule pattern="\)|,"> | |
328 <token type="Punctuation"/> | |
329 <pop depth="1"/> | |
330 </rule> | |
331 <rule pattern="\w+::"> | |
332 <token type="NameNamespace"/> | |
333 </rule> | |
334 <rule pattern="[\w:]+"> | |
335 <token type="NameVariable"/> | |
336 <pop depth="1"/> | |
337 </rule> | |
338 </state> | |
339 <state name="name"> | |
340 <rule pattern="[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*(::)?(?=\s*->)"> | |
341 <token type="NameNamespace"/> | |
342 <pop depth="1"/> | |
343 </rule> | |
344 <rule pattern="[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*::"> | |
345 <token type="NameNamespace"/> | |
346 <pop depth="1"/> | |
347 </rule> | |
348 <rule pattern="[\w:]+"> | |
349 <token type="Name"/> | |
350 <pop depth="1"/> | |
351 </rule> | |
352 <rule pattern="[A-Z_]+(?=\W)"> | |
353 <token type="NameConstant"/> | |
354 <pop depth="1"/> | |
355 </rule> | |
356 <rule pattern="(?=\W)"> | |
357 <token type="Text"/> | |
358 <pop depth="1"/> | |
359 </rule> | |
360 </state> | |
361 <state name="rb-string"> | |
362 <rule pattern="\\[()\\]"> | |
363 <token type="LiteralStringOther"/> | |
364 </rule> | |
365 <rule pattern="\\"> | |
366 <token type="LiteralStringOther"/> | |
367 </rule> | |
368 <rule pattern="\("> | |
369 <token type="LiteralStringOther"/> | |
370 <push state="rb-string"/> | |
371 </rule> | |
372 <rule pattern="\)"> | |
373 <token type="LiteralStringOther"/> | |
374 <pop depth="1"/> | |
375 </rule> | |
376 <rule pattern="[^()]+"> | |
377 <token type="LiteralStringOther"/> | |
378 </rule> | |
379 </state> | |
380 <state name="sb-string"> | |
381 <rule pattern="\\[\[\]\\]"> | |
382 <token type="LiteralStringOther"/> | |
383 </rule> | |
384 <rule pattern="\\"> | |
385 <token type="LiteralStringOther"/> | |
386 </rule> | |
387 <rule pattern="\["> | |
388 <token type="LiteralStringOther"/> | |
389 <push state="sb-string"/> | |
390 </rule> | |
391 <rule pattern="\]"> | |
392 <token type="LiteralStringOther"/> | |
393 <pop depth="1"/> | |
394 </rule> | |
395 <rule pattern="[^\[\]]+"> | |
396 <token type="LiteralStringOther"/> | |
397 </rule> | |
398 </state> | |
399 </rules> | |
400 </lexer> |