Commit | Line | Data |
3fea05b9 |
1 | # Copyright (c) 2005 - 2006 Hans Jeuken. All rights reserved. |
2 | # This program is free software; you can redistribute it and/or |
3 | # modify it under the same terms as Perl itself. |
4 | |
5 | # This file was generated from the 'mup.xml' file of the syntax highlight |
6 | # engine of the kate text editor (http://www.kate-editor.org |
7 | |
8 | #kate xml version 1.06 |
9 | #kate version 2.4 |
10 | #kate author Wilbert Berendsen (wilbert@kde.nl) |
11 | #generated: Sun Feb 3 22:02:05 2008, localtime |
12 | |
13 | package Syntax::Highlight::Engine::Kate::Music_Publisher; |
14 | |
15 | our $VERSION = '0.06'; |
16 | |
17 | use strict; |
18 | use warnings; |
19 | use base('Syntax::Highlight::Engine::Kate::Template'); |
20 | |
21 | sub new { |
22 | my $proto = shift; |
23 | my $class = ref($proto) || $proto; |
24 | my $self = $class->SUPER::new(@_); |
25 | $self->attributes({ |
26 | 'Barline' => 'DecVal', |
27 | 'Comment' => 'Comment', |
28 | 'Context' => 'Keyword', |
29 | 'Error' => 'Error', |
30 | 'Location' => 'Operator', |
31 | 'Location Probably' => 'Reserved', |
32 | 'Lyrics' => 'BaseN', |
33 | 'Macro' => 'Others', |
34 | 'Newscore' => 'BString', |
35 | 'Normal Text' => 'Normal', |
36 | 'Note' => 'Normal', |
37 | 'Note Attribute' => 'Normal', |
38 | 'Parameter' => 'Char', |
39 | 'Print Command' => 'BaseN', |
40 | 'Special Char' => 'Keyword', |
41 | 'String' => 'String', |
42 | 'String Error' => 'Error', |
43 | 'String Lyrics' => 'String', |
44 | 'String Special' => 'IString', |
45 | 'Tuplet' => 'RegionMarker', |
46 | 'Unset Command' => 'Variable', |
47 | 'Value' => 'Float', |
48 | }); |
49 | $self->listAdd('mupcontexts', |
50 | 'block', |
51 | 'bottom', |
52 | 'bottom2', |
53 | 'footer', |
54 | 'footer2', |
55 | 'grids', |
56 | 'header', |
57 | 'header2', |
58 | 'headshapes', |
59 | 'music', |
60 | 'music', |
61 | 'score', |
62 | 'staff', |
63 | 'top', |
64 | 'top2', |
65 | 'voice', |
66 | ); |
67 | $self->listAdd('mupfontnames', |
68 | 'avantgarde', |
69 | 'bookman', |
70 | 'courier', |
71 | 'helvetica', |
72 | 'newcentury', |
73 | 'palatino', |
74 | 'times', |
75 | ); |
76 | $self->listAdd('mupfontstyles', |
77 | 'bold', |
78 | 'boldital', |
79 | 'ital', |
80 | 'rom', |
81 | ); |
82 | $self->listAdd('mupgraphics', |
83 | 'bulge', |
84 | 'curve', |
85 | 'dashed', |
86 | 'dotted', |
87 | 'down', |
88 | 'line', |
89 | 'medium', |
90 | 'midi', |
91 | 'mussym', |
92 | 'octave', |
93 | 'pedal', |
94 | 'phrase', |
95 | 'roll', |
96 | 'to', |
97 | 'to', |
98 | 'up', |
99 | 'wavy', |
100 | 'wide', |
101 | 'with', |
102 | ); |
103 | $self->listAdd('muplocations', |
104 | 'above', |
105 | 'all', |
106 | 'below', |
107 | 'between', |
108 | ); |
109 | $self->listAdd('mupmacrodirectives', |
110 | 'else', |
111 | 'include', |
112 | 'undef', |
113 | ); |
114 | $self->listAdd('mupmacrodirectives_end', |
115 | '@', |
116 | 'endif', |
117 | ); |
118 | $self->listAdd('mupmacrodirectives_start', |
119 | 'define', |
120 | 'ifdef', |
121 | 'ifndef', |
122 | ); |
123 | $self->listAdd('mupmusicchars', |
124 | '128rest', |
125 | '16rest', |
126 | '1n', |
127 | '1rest', |
128 | '256rest', |
129 | '2n', |
130 | '2rest', |
131 | '32rest', |
132 | '4n', |
133 | '4rest', |
134 | '64rest', |
135 | '8rest', |
136 | 'acc_gt', |
137 | 'acc_hat', |
138 | 'acc_uhat', |
139 | 'begped', |
140 | 'cclef', |
141 | 'coda', |
142 | 'com', |
143 | 'copyright', |
144 | 'cut', |
145 | 'dblflat', |
146 | 'dblsharp', |
147 | 'dblwhole', |
148 | 'diamond', |
149 | 'dim', |
150 | 'dn128n', |
151 | 'dn16n', |
152 | 'dn256n', |
153 | 'dn2n', |
154 | 'dn32n', |
155 | 'dn4n', |
156 | 'dn64n', |
157 | 'dn8n', |
158 | 'dnbow', |
159 | 'dnflag', |
160 | 'dot', |
161 | 'dwhdiamond', |
162 | 'dwhrest', |
163 | 'endped', |
164 | 'fclef', |
165 | 'ferm', |
166 | 'filldiamond', |
167 | 'flat', |
168 | 'gclef', |
169 | 'halfdim', |
170 | 'invmor', |
171 | 'invturn', |
172 | 'leg', |
173 | 'measrpt', |
174 | 'mor', |
175 | 'nat', |
176 | 'pedal', |
177 | 'qwhrest', |
178 | 'rr', |
179 | 'sharp', |
180 | 'sign', |
181 | 'sm128rest', |
182 | 'sm16rest', |
183 | 'sm1n', |
184 | 'sm1rest', |
185 | 'sm256rest', |
186 | 'sm2n', |
187 | 'sm2rest', |
188 | 'sm32rest', |
189 | 'sm4n', |
190 | 'sm4rest', |
191 | 'sm64rest', |
192 | 'sm8rest', |
193 | 'smacc_gt', |
194 | 'smacc_hat', |
195 | 'smacc_uhat', |
196 | 'smbegped', |
197 | 'smcclef', |
198 | 'smcoda', |
199 | 'smcom', |
200 | 'smcopyright', |
201 | 'smcut', |
202 | 'smdblflat', |
203 | 'smdblsharp', |
204 | 'smdblwhole', |
205 | 'smdiamond', |
206 | 'smdim', |
207 | 'smdn128n', |
208 | 'smdn16n', |
209 | 'smdn256n', |
210 | 'smdn2n', |
211 | 'smdn32n', |
212 | 'smdn4n', |
213 | 'smdn64n', |
214 | 'smdn8n', |
215 | 'smdnbow', |
216 | 'smdnflag', |
217 | 'smdot', |
218 | 'smdwhdiamond', |
219 | 'smdwhrest', |
220 | 'smendped', |
221 | 'smfclef', |
222 | 'smferm', |
223 | 'smfilldiamond', |
224 | 'smflat', |
225 | 'smgclef', |
226 | 'smhalfdim', |
227 | 'sminvmor', |
228 | 'sminvturn', |
229 | 'smleg', |
230 | 'smmeasrpt', |
231 | 'smmor', |
232 | 'smnat', |
233 | 'smpedal', |
234 | 'smqwhrest', |
235 | 'smrr', |
236 | 'smsharp', |
237 | 'smsign', |
238 | 'smtr', |
239 | 'smtriangle', |
240 | 'smturn', |
241 | 'smuferm', |
242 | 'smup128n', |
243 | 'smup16n', |
244 | 'smup256n', |
245 | 'smup2n', |
246 | 'smup32n', |
247 | 'smup4n', |
248 | 'smup64n', |
249 | 'smup8n', |
250 | 'smupbow', |
251 | 'smupflag', |
252 | 'smuwedge', |
253 | 'smwedge', |
254 | 'smxnote', |
255 | 'tr', |
256 | 'triangle', |
257 | 'turn', |
258 | 'uferm', |
259 | 'up128n', |
260 | 'up16n', |
261 | 'up256n', |
262 | 'up2n', |
263 | 'up32n', |
264 | 'up4n', |
265 | 'up64n', |
266 | 'up8n', |
267 | 'upbow', |
268 | 'upflag', |
269 | 'uwedge', |
270 | 'wedge', |
271 | 'xnote', |
272 | ); |
273 | $self->listAdd('mupparameters', |
274 | 'aboveorder', |
275 | 'addtranspose', |
276 | 'barstyle', |
277 | 'beamslope', |
278 | 'beamstyle', |
279 | 'beloworder', |
280 | 'betweenorder', |
281 | 'bottommargin', |
282 | 'brace', |
283 | 'bracket', |
284 | 'cancelkey', |
285 | 'chorddist', |
286 | 'clef', |
287 | 'crescdist', |
288 | 'defoct', |
289 | 'dist', |
290 | 'division', |
291 | 'dyndist', |
292 | 'endingstyle', |
293 | 'firstpage', |
294 | 'font', |
295 | 'fontfamily', |
296 | 'gridfret', |
297 | 'gridsatend', |
298 | 'gridscale', |
299 | 'gridswhereused', |
300 | 'key', |
301 | 'label', |
302 | 'label2', |
303 | 'leftmargin', |
304 | 'lyricsalign', |
305 | 'lyricsfont', |
306 | 'lyricsfontfamily', |
307 | 'lyricssize', |
308 | 'measnum', |
309 | 'measnumfont', |
310 | 'measnumfontfamily', |
311 | 'measnumsize', |
312 | 'noteheads', |
313 | 'numbermrpt', |
314 | 'ontheline', |
315 | 'packexp', |
316 | 'packfact', |
317 | 'pad', |
318 | 'pageheight', |
319 | 'pagewidth', |
320 | 'panelsperpage', |
321 | 'pedstyle', |
322 | 'printmultnum', |
323 | 'rehstyle', |
324 | 'release', |
325 | 'restcombine', |
326 | 'restsymmult', |
327 | 'rightmargin', |
328 | 'scale', |
329 | 'scorepad', |
330 | 'scoresep', |
331 | 'size', |
332 | 'stafflines', |
333 | 'staffpad', |
334 | 'staffs', |
335 | 'staffscale', |
336 | 'staffsep', |
337 | 'stemlen', |
338 | 'swingunit', |
339 | 'sylposition', |
340 | 'tabwhitebox', |
341 | 'time', |
342 | 'timeunit', |
343 | 'topmargin', |
344 | 'transpose', |
345 | 'units', |
346 | 'visible', |
347 | 'vscheme', |
348 | 'warn', |
349 | ); |
350 | $self->listAdd('mupprintcommands', |
351 | 'center', |
352 | 'left', |
353 | 'paragraph', |
354 | 'postscript', |
355 | 'print', |
356 | 'right', |
357 | 'title', |
358 | ); |
359 | $self->listAdd('mupprintspecifiers', |
360 | 'analysis', |
361 | 'chord', |
362 | 'dyn', |
363 | 'figbass', |
364 | ); |
365 | $self->listAdd('mupspecialchars', |
366 | '\\\'\\\'', |
367 | '<<', |
368 | '>>', |
369 | 'A\\\'', |
370 | 'A:', |
371 | 'AE', |
372 | 'A^', |
373 | 'A`', |
374 | 'Aacute', |
375 | 'Acircumflex', |
376 | 'Adieresis', |
377 | 'Agrave', |
378 | 'Ao', |
379 | 'Aring', |
380 | 'Atilde', |
381 | 'A~', |
382 | 'C,', |
383 | 'Ccedilla', |
384 | 'E\\\'', |
385 | 'E:', |
386 | 'E^', |
387 | 'E`', |
388 | 'Eacute', |
389 | 'Ecircumflex', |
390 | 'Edieresis', |
391 | 'Egrave', |
392 | 'I\\\'', |
393 | 'I^', |
394 | 'I`', |
395 | 'Iacute', |
396 | 'Icircumflex', |
397 | 'Idieresis', |
398 | 'Igrave', |
399 | 'L/', |
400 | 'Lslash', |
401 | 'Ntilde', |
402 | 'N~', |
403 | 'O\\\'', |
404 | 'O/', |
405 | 'O:', |
406 | 'OE', |
407 | 'O^', |
408 | 'O`', |
409 | 'Oacute', |
410 | 'Ocircumflex', |
411 | 'Odieresis', |
412 | 'Ograve', |
413 | 'Oslash', |
414 | 'Otilde', |
415 | 'O~', |
416 | 'Scaron', |
417 | 'Sv', |
418 | 'U\\\'', |
419 | 'U:', |
420 | 'U^', |
421 | 'U`', |
422 | 'Uacute', |
423 | 'Ucircumflex', |
424 | 'Udieresis', |
425 | 'Ugrave', |
426 | 'Y:', |
427 | 'Ydieresis', |
428 | 'Zcaron', |
429 | 'Zv', |
430 | '``', |
431 | 'a\\\'', |
432 | 'a:', |
433 | 'a^', |
434 | 'a`', |
435 | 'aacute', |
436 | 'acircumflex', |
437 | 'acute', |
438 | 'adieresis', |
439 | 'ae', |
440 | 'agrave', |
441 | 'ao', |
442 | 'aring', |
443 | 'atilde', |
444 | 'a~', |
445 | 'breve', |
446 | 'bullet', |
447 | 'c,', |
448 | 'caron', |
449 | 'ccedilla', |
450 | 'cedilla', |
451 | 'cent', |
452 | 'dagger', |
453 | 'daggerdbl', |
454 | 'dieresis', |
455 | 'dotaccent', |
456 | 'dotlessi', |
457 | 'e\\\'', |
458 | 'e:', |
459 | 'e^', |
460 | 'e`', |
461 | 'eacute', |
462 | 'ecircumflex', |
463 | 'edieresis', |
464 | 'egrave', |
465 | 'emdash', |
466 | 'exclamdown', |
467 | 'germandbls', |
468 | 'grave', |
469 | 'guildsinglleft', |
470 | 'guillemotleft', |
471 | 'guillemotright', |
472 | 'guilsinglright', |
473 | 'hungarumlaut', |
474 | 'i\\\'', |
475 | 'i:', |
476 | 'i:', |
477 | 'i^', |
478 | 'i`', |
479 | 'iacute', |
480 | 'icircumflex', |
481 | 'idieresis', |
482 | 'igrave', |
483 | 'l/', |
484 | 'lslash', |
485 | 'macron', |
486 | 'ntilde', |
487 | 'n~', |
488 | 'o\\\'', |
489 | 'o/', |
490 | 'o:', |
491 | 'o^', |
492 | 'o`', |
493 | 'oacute', |
494 | 'ocircumflex', |
495 | 'odieresis', |
496 | 'oe', |
497 | 'ogonek', |
498 | 'ograve', |
499 | 'ordfeminine', |
500 | 'ordmasculine', |
501 | 'oslash', |
502 | 'otilde', |
503 | 'o~', |
504 | 'questiondown', |
505 | 'quotedblbase', |
506 | 'quotedblleft', |
507 | 'quotedblright', |
508 | 'ring', |
509 | 'scaron', |
510 | 'space', |
511 | 'ss', |
512 | 'sterling', |
513 | 'sv', |
514 | 'u\\\'', |
515 | 'u:', |
516 | 'u^', |
517 | 'u`', |
518 | 'uacute', |
519 | 'ucircumflex', |
520 | 'udieresis', |
521 | 'ugrave', |
522 | 'y:', |
523 | 'ydieresis', |
524 | 'yen', |
525 | 'zcaron', |
526 | 'zv', |
527 | ); |
528 | $self->listAdd('mupvalues', |
529 | '1drum', |
530 | '1n', |
531 | '2f', |
532 | '2o', |
533 | '3f', |
534 | '3o', |
535 | '5drum', |
536 | '5n', |
537 | '8treble', |
538 | 'alt', |
539 | 'alto', |
540 | 'aug', |
541 | 'augmented', |
542 | 'baritone', |
543 | 'barred', |
544 | 'bass', |
545 | 'boxed', |
546 | 'chord', |
547 | 'circled', |
548 | 'cm', |
549 | 'common', |
550 | 'cut', |
551 | 'dim', |
552 | 'diminished', |
553 | 'down', |
554 | 'drum', |
555 | 'dyn', |
556 | 'ending', |
557 | 'frenchviolin', |
558 | 'grouped', |
559 | 'inches', |
560 | 'line', |
561 | 'lyrics', |
562 | 'maj', |
563 | 'major', |
564 | 'mezzosoprano', |
565 | 'min', |
566 | 'minor', |
567 | 'mussym', |
568 | 'n', |
569 | 'octave', |
570 | 'othertext', |
571 | 'pedal', |
572 | 'pedstar', |
573 | 'per', |
574 | 'perfect', |
575 | 'plain', |
576 | 'reh', |
577 | 'soprano', |
578 | 'tab', |
579 | 'tenor', |
580 | 'times', |
581 | 'top', |
582 | 'treble', |
583 | 'treble8', |
584 | 'up', |
585 | 'whereused', |
586 | 'y', |
587 | ); |
588 | $self->contextdata({ |
589 | 'Bar Rehearsal' => { |
590 | callback => \&parseBarRehearsal, |
591 | attribute => 'Barline', |
592 | lineending => '#pop', |
593 | fallthrough => '#pop', |
594 | }, |
595 | 'Barline' => { |
596 | callback => \&parseBarline, |
597 | attribute => 'Barline', |
598 | lineending => '#pop', |
599 | fallthrough => '#pop', |
600 | }, |
601 | 'Bracket' => { |
602 | callback => \&parseBracket, |
603 | attribute => 'Note Attribute', |
604 | lineending => '#pop', |
605 | fallthrough => '#pop', |
606 | }, |
607 | 'Bracket Hs' => { |
608 | callback => \&parseBracketHs, |
609 | attribute => 'Note Attribute', |
610 | lineending => '#pop', |
611 | fallthrough => '#pop', |
612 | }, |
613 | 'Bracket With' => { |
614 | callback => \&parseBracketWith, |
615 | attribute => 'Note Attribute', |
616 | lineending => '#pop', |
617 | fallthrough => '#pop', |
618 | }, |
619 | 'Comment' => { |
620 | callback => \&parseComment, |
621 | attribute => 'Comment', |
622 | lineending => '#pop', |
623 | }, |
624 | 'Font Name' => { |
625 | callback => \&parseFontName, |
626 | attribute => 'String Special', |
627 | fallthrough => '#pop', |
628 | }, |
629 | 'Font Size' => { |
630 | callback => \&parseFontSize, |
631 | attribute => 'String Special', |
632 | fallthrough => '#pop', |
633 | }, |
634 | 'Font Style' => { |
635 | callback => \&parseFontStyle, |
636 | attribute => 'String Special', |
637 | fallthrough => '#pop', |
638 | }, |
639 | 'Location' => { |
640 | callback => \&parseLocation, |
641 | attribute => 'Normal Text', |
642 | lineending => '#pop', |
643 | fallthrough => '#pop', |
644 | }, |
645 | 'Location Probably' => { |
646 | callback => \&parseLocationProbably, |
647 | attribute => 'Location Problably', |
648 | lineending => '#pop', |
649 | fallthrough => '#pop', |
650 | }, |
651 | 'Macro' => { |
652 | callback => \&parseMacro, |
653 | attribute => 'Macro', |
654 | lineending => '#pop', |
655 | }, |
656 | 'Macro Location' => { |
657 | callback => \&parseMacroLocation, |
658 | attribute => 'Location', |
659 | lineending => '#pop', |
660 | fallthrough => '#pop', |
661 | }, |
662 | 'Normal' => { |
663 | callback => \&parseNormal, |
664 | attribute => 'Normal Text', |
665 | }, |
666 | 'Note' => { |
667 | callback => \&parseNote, |
668 | attribute => 'Note', |
669 | lineending => '#pop', |
670 | fallthrough => '#pop', |
671 | }, |
672 | 'Note Probably' => { |
673 | callback => \&parseNoteProbably, |
674 | attribute => 'Note', |
675 | lineending => '#pop', |
676 | fallthrough => '#pop', |
677 | }, |
678 | 'Parameter' => { |
679 | callback => \&parseParameter, |
680 | attribute => 'Parameter', |
681 | lineending => '#pop', |
682 | fallthrough => '#pop', |
683 | }, |
684 | 'Print Command' => { |
685 | callback => \&parsePrintCommand, |
686 | attribute => 'Print Command', |
687 | lineending => '#pop', |
688 | fallthrough => '#pop', |
689 | }, |
690 | 'Special Char' => { |
691 | callback => \&parseSpecialChar, |
692 | attribute => 'String Special', |
693 | fallthrough => '#pop', |
694 | }, |
695 | 'String' => { |
696 | callback => \&parseString, |
697 | attribute => 'String', |
698 | }, |
699 | 'Tuplet' => { |
700 | callback => \&parseTuplet, |
701 | attribute => 'Tuplet', |
702 | lineending => '#pop', |
703 | fallthrough => '#pop', |
704 | }, |
705 | 'Unset' => { |
706 | callback => \&parseUnset, |
707 | attribute => 'Parameter', |
708 | lineending => '#pop', |
709 | fallthrough => '#pop', |
710 | }, |
711 | 'Value' => { |
712 | callback => \&parseValue, |
713 | attribute => 'Value', |
714 | lineending => '#pop', |
715 | fallthrough => '#pop', |
716 | }, |
717 | }); |
718 | $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\'); |
719 | $self->basecontext('Normal'); |
720 | $self->keywordscase(0); |
721 | $self->initialize; |
722 | bless ($self, $class); |
723 | return $self; |
724 | } |
725 | |
726 | sub language { |
727 | return 'Music Publisher'; |
728 | } |
729 | |
730 | sub parseBarRehearsal { |
731 | my ($self, $text) = @_; |
732 | # String => '\s+' |
733 | # attribute => 'Print Command' |
734 | # context => '#stay' |
735 | # type => 'RegExpr' |
736 | if ($self->testRegExpr($text, '\\s+', 0, 0, 0, undef, 0, '#stay', 'Print Command')) { |
737 | return 1 |
738 | } |
739 | # String => 'mupfontnames' |
740 | # attribute => 'Print Command' |
741 | # context => 'Print Command' |
742 | # type => 'keyword' |
743 | if ($self->testKeyword($text, 'mupfontnames', 0, undef, 0, 'Print Command', 'Print Command')) { |
744 | return 1 |
745 | } |
746 | # String => 'mupfontstyles' |
747 | # attribute => 'Print Command' |
748 | # context => 'Print Command' |
749 | # type => 'keyword' |
750 | if ($self->testKeyword($text, 'mupfontstyles', 0, undef, 0, 'Print Command', 'Print Command')) { |
751 | return 1 |
752 | } |
753 | # String => '\b(let|mnum|num)\b' |
754 | # attribute => 'Barline' |
755 | # context => '#pop' |
756 | # type => 'RegExpr' |
757 | if ($self->testRegExpr($text, '\\b(let|mnum|num)\\b', 0, 0, 0, undef, 0, '#pop', 'Barline')) { |
758 | return 1 |
759 | } |
760 | # context => 'Macro' |
761 | # type => 'IncludeRules' |
762 | if ($self->includeRules('Macro', $text)) { |
763 | return 1 |
764 | } |
765 | return 0; |
766 | }; |
767 | |
768 | sub parseBarline { |
769 | my ($self, $text) = @_; |
770 | # type => 'DetectSpaces' |
771 | if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) { |
772 | return 1 |
773 | } |
774 | # String => '\b(ending|endending|hidechanges)\b' |
775 | # attribute => 'Barline' |
776 | # context => '#stay' |
777 | # type => 'RegExpr' |
778 | if ($self->testRegExpr($text, '\\b(ending|endending|hidechanges)\\b', 0, 0, 0, undef, 0, '#stay', 'Barline')) { |
779 | return 1 |
780 | } |
781 | # String => '\breh(earsal)?\b' |
782 | # attribute => 'Barline' |
783 | # context => 'Bar Rehearsal' |
784 | # type => 'RegExpr' |
785 | if ($self->testRegExpr($text, '\\breh(earsal)?\\b', 0, 0, 0, undef, 0, 'Bar Rehearsal', 'Barline')) { |
786 | return 1 |
787 | } |
788 | # String => '\bmnum\s*=\s*[0-9]+' |
789 | # attribute => 'Barline' |
790 | # context => '#stay' |
791 | # type => 'RegExpr' |
792 | if ($self->testRegExpr($text, '\\bmnum\\s*=\\s*[0-9]+', 0, 0, 0, undef, 0, '#stay', 'Barline')) { |
793 | return 1 |
794 | } |
795 | # String => '\bnum\s*=\s*[0-9]+' |
796 | # attribute => 'Barline' |
797 | # context => '#stay' |
798 | # type => 'RegExpr' |
799 | if ($self->testRegExpr($text, '\\bnum\\s*=\\s*[0-9]+', 0, 0, 0, undef, 0, '#stay', 'Barline')) { |
800 | return 1 |
801 | } |
802 | # String => '\blet\s*=\s*("[A-Z]{1,2}")?' |
803 | # attribute => 'Barline' |
804 | # context => '#stay' |
805 | # type => 'RegExpr' |
806 | if ($self->testRegExpr($text, '\\blet\\s*=\\s*("[A-Z]{1,2}")?', 0, 0, 0, undef, 0, '#stay', 'Barline')) { |
807 | return 1 |
808 | } |
809 | # String => '\bpad\s+[0-9]+' |
810 | # attribute => 'Barline' |
811 | # context => '#stay' |
812 | # type => 'RegExpr' |
813 | if ($self->testRegExpr($text, '\\bpad\\s+[0-9]+', 0, 0, 0, undef, 0, '#stay', 'Barline')) { |
814 | return 1 |
815 | } |
816 | # String => '=([a-z]|_[a-z][a-z_0-9]*)\b' |
817 | # attribute => 'Location' |
818 | # context => '#stay' |
819 | # type => 'RegExpr' |
820 | if ($self->testRegExpr($text, '=([a-z]|_[a-z][a-z_0-9]*)\\b', 0, 0, 0, undef, 0, '#stay', 'Location')) { |
821 | return 1 |
822 | } |
823 | # context => 'Macro' |
824 | # type => 'IncludeRules' |
825 | if ($self->includeRules('Macro', $text)) { |
826 | return 1 |
827 | } |
828 | return 0; |
829 | }; |
830 | |
831 | sub parseBracket { |
832 | my ($self, $text) = @_; |
833 | # attribute => 'Special Char' |
834 | # char => ']' |
835 | # context => '#pop' |
836 | # type => 'DetectChar' |
837 | if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop', 'Special Char')) { |
838 | return 1 |
839 | } |
840 | # String => '[\s;,]+' |
841 | # attribute => 'Normal Text' |
842 | # context => '#stay' |
843 | # type => 'RegExpr' |
844 | if ($self->testRegExpr($text, '[\\s;,]+', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) { |
845 | return 1 |
846 | } |
847 | # String => '\b(grace|xnote|cue|diam|up|down)\b' |
848 | # attribute => 'Note Attribute' |
849 | # context => '#stay' |
850 | # type => 'RegExpr' |
851 | if ($self->testRegExpr($text, '\\b(grace|xnote|cue|diam|up|down)\\b', 0, 0, 0, undef, 0, '#stay', 'Note Attribute')) { |
852 | return 1 |
853 | } |
854 | # String => '\b(slash|len|pad|ho|dist)\s*[0-9.+-]*' |
855 | # attribute => 'Note Attribute' |
856 | # context => '#stay' |
857 | # type => 'RegExpr' |
858 | if ($self->testRegExpr($text, '\\b(slash|len|pad|ho|dist)\\s*[0-9.+-]*', 0, 0, 0, undef, 0, '#stay', 'Note Attribute')) { |
859 | return 1 |
860 | } |
861 | # String => '\bwith\s*(?=[A-Z"^>.-])' |
862 | # attribute => 'Note Attribute' |
863 | # context => 'Bracket With' |
864 | # type => 'RegExpr' |
865 | if ($self->testRegExpr($text, '\\bwith\\s*(?=[A-Z"^>.-])', 0, 0, 0, undef, 0, 'Bracket With', 'Note Attribute')) { |
866 | return 1 |
867 | } |
868 | # String => '\bhs\s*(?=[A-Z"])' |
869 | # attribute => 'Note Attribute' |
870 | # context => 'Bracket Hs' |
871 | # type => 'RegExpr' |
872 | if ($self->testRegExpr($text, '\\bhs\\s*(?=[A-Z"])', 0, 0, 0, undef, 0, 'Bracket Hs', 'Note Attribute')) { |
873 | return 1 |
874 | } |
875 | # String => '=([a-z]|_[a-z][a-z_0-9]*)\b' |
876 | # attribute => 'Location' |
877 | # context => '#stay' |
878 | # type => 'RegExpr' |
879 | if ($self->testRegExpr($text, '=([a-z]|_[a-z][a-z_0-9]*)\\b', 0, 0, 0, undef, 0, '#stay', 'Location')) { |
880 | return 1 |
881 | } |
882 | # String => '\bc\b' |
883 | # attribute => 'Normal Text' |
884 | # context => '#stay' |
885 | # type => 'RegExpr' |
886 | if ($self->testRegExpr($text, '\\bc\\b', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) { |
887 | return 1 |
888 | } |
889 | # context => 'Macro' |
890 | # type => 'IncludeRules' |
891 | if ($self->includeRules('Macro', $text)) { |
892 | return 1 |
893 | } |
894 | return 0; |
895 | }; |
896 | |
897 | sub parseBracketHs { |
898 | my ($self, $text) = @_; |
899 | # attribute => 'String' |
900 | # char => '"' |
901 | # context => 'String' |
902 | # type => 'DetectChar' |
903 | if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'String', 'String')) { |
904 | return 1 |
905 | } |
906 | # context => 'Macro' |
907 | # type => 'IncludeRules' |
908 | if ($self->includeRules('Macro', $text)) { |
909 | return 1 |
910 | } |
911 | return 0; |
912 | }; |
913 | |
914 | sub parseBracketWith { |
915 | my ($self, $text) = @_; |
916 | # attribute => 'String' |
917 | # char => '"' |
918 | # context => 'String' |
919 | # type => 'DetectChar' |
920 | if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'String', 'String')) { |
921 | return 1 |
922 | } |
923 | # String => '[>.^-]+' |
924 | # attribute => 'Note Attribute' |
925 | # context => '#stay' |
926 | # type => 'RegExpr' |
927 | if ($self->testRegExpr($text, '[>.^-]+', 0, 0, 0, undef, 0, '#stay', 'Note Attribute')) { |
928 | return 1 |
929 | } |
930 | # String => '[\s,]+' |
931 | # attribute => 'Normal Text' |
932 | # context => '#stay' |
933 | # type => 'RegExpr' |
934 | if ($self->testRegExpr($text, '[\\s,]+', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) { |
935 | return 1 |
936 | } |
937 | # context => 'Macro' |
938 | # type => 'IncludeRules' |
939 | if ($self->includeRules('Macro', $text)) { |
940 | return 1 |
941 | } |
942 | return 0; |
943 | }; |
944 | |
945 | sub parseComment { |
946 | my ($self, $text) = @_; |
947 | # context => '##Alerts' |
948 | # type => 'IncludeRules' |
949 | if ($self->includePlugin('Alerts', $text)) { |
950 | return 1 |
951 | } |
952 | return 0; |
953 | }; |
954 | |
955 | sub parseFontName { |
956 | my ($self, $text) = @_; |
957 | # attribute => 'String Special' |
958 | # char => ')' |
959 | # context => '#pop' |
960 | # type => 'DetectChar' |
961 | if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop', 'String Special')) { |
962 | return 1 |
963 | } |
964 | # String => '[ABCHNPT][RBIX](?=\))' |
965 | # attribute => 'String Special' |
966 | # context => '#stay' |
967 | # type => 'RegExpr' |
968 | if ($self->testRegExpr($text, '[ABCHNPT][RBIX](?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
969 | return 1 |
970 | } |
971 | # String => 'mupfontnames' |
972 | # attribute => 'String Special' |
973 | # context => 'Font Style' |
974 | # type => 'keyword' |
975 | if ($self->testKeyword($text, 'mupfontnames', 0, undef, 0, 'Font Style', 'String Special')) { |
976 | return 1 |
977 | } |
978 | # String => '(PV|previous)(?=\))' |
979 | # attribute => 'String Special' |
980 | # context => '#stay' |
981 | # type => 'RegExpr' |
982 | if ($self->testRegExpr($text, '(PV|previous)(?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
983 | return 1 |
984 | } |
985 | # String => '[^ )"]+' |
986 | # attribute => 'String Error' |
987 | # context => '#stay' |
988 | # type => 'RegExpr' |
989 | if ($self->testRegExpr($text, '[^ )"]+', 0, 0, 0, undef, 0, '#stay', 'String Error')) { |
990 | return 1 |
991 | } |
992 | return 0; |
993 | }; |
994 | |
995 | sub parseFontSize { |
996 | my ($self, $text) = @_; |
997 | # attribute => 'String Special' |
998 | # char => ')' |
999 | # context => '#pop' |
1000 | # type => 'DetectChar' |
1001 | if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop', 'String Special')) { |
1002 | return 1 |
1003 | } |
1004 | # String => '[-+]?[0-9]+(?=\))' |
1005 | # attribute => 'String Special' |
1006 | # context => '#stay' |
1007 | # type => 'RegExpr' |
1008 | if ($self->testRegExpr($text, '[-+]?[0-9]+(?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1009 | return 1 |
1010 | } |
1011 | # String => '(PV|previous)(?=\))' |
1012 | # attribute => 'String Special' |
1013 | # context => '#stay' |
1014 | # type => 'RegExpr' |
1015 | if ($self->testRegExpr($text, '(PV|previous)(?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1016 | return 1 |
1017 | } |
1018 | # String => '[^ )"]+' |
1019 | # attribute => 'String Error' |
1020 | # context => '#stay' |
1021 | # type => 'RegExpr' |
1022 | if ($self->testRegExpr($text, '[^ )"]+', 0, 0, 0, undef, 0, '#stay', 'String Error')) { |
1023 | return 1 |
1024 | } |
1025 | return 0; |
1026 | }; |
1027 | |
1028 | sub parseFontStyle { |
1029 | my ($self, $text) = @_; |
1030 | # String => '\s+' |
1031 | # attribute => 'String Special' |
1032 | # context => '#stay' |
1033 | # type => 'RegExpr' |
1034 | if ($self->testRegExpr($text, '\\s+', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1035 | return 1 |
1036 | } |
1037 | # String => 'mupfontstyles' |
1038 | # attribute => 'String Special' |
1039 | # context => '#stay' |
1040 | # type => 'keyword' |
1041 | if ($self->testKeyword($text, 'mupfontstyles', 0, undef, 0, '#stay', 'String Special')) { |
1042 | return 1 |
1043 | } |
1044 | # String => '[^ )"]+' |
1045 | # attribute => 'String Error' |
1046 | # context => '#stay' |
1047 | # type => 'RegExpr' |
1048 | if ($self->testRegExpr($text, '[^ )"]+', 0, 0, 0, undef, 0, '#stay', 'String Error')) { |
1049 | return 1 |
1050 | } |
1051 | return 0; |
1052 | }; |
1053 | |
1054 | sub parseLocation { |
1055 | my ($self, $text) = @_; |
1056 | # String => '[\+\-\s]+' |
1057 | # attribute => 'Normal Text' |
1058 | # context => '#stay' |
1059 | # type => 'RegExpr' |
1060 | if ($self->testRegExpr($text, '[\\+\\-\\s]+', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) { |
1061 | return 1 |
1062 | } |
1063 | # attribute => 'Normal Text' |
1064 | # context => '#stay' |
1065 | # type => 'Float' |
1066 | if ($self->testFloat($text, 0, undef, 0, '#stay', 'Normal Text')) { |
1067 | return 1 |
1068 | } |
1069 | # String => '\btime\b' |
1070 | # attribute => 'Location' |
1071 | # context => '#stay' |
1072 | # type => 'RegExpr' |
1073 | if ($self->testRegExpr($text, '\\btime\\b', 0, 0, 0, undef, 0, '#stay', 'Location')) { |
1074 | return 1 |
1075 | } |
1076 | # context => 'Macro' |
1077 | # type => 'IncludeRules' |
1078 | if ($self->includeRules('Macro', $text)) { |
1079 | return 1 |
1080 | } |
1081 | return 0; |
1082 | }; |
1083 | |
1084 | sub parseLocationProbably { |
1085 | my ($self, $text) = @_; |
1086 | # String => '[h-qt-z]|_[a-z][a-z_0-9]*' |
1087 | # attribute => 'Location Probably' |
1088 | # context => '#pop' |
1089 | # type => 'RegExpr' |
1090 | if ($self->testRegExpr($text, '[h-qt-z]|_[a-z][a-z_0-9]*', 0, 0, 0, undef, 0, '#pop', 'Location Probably')) { |
1091 | return 1 |
1092 | } |
1093 | return 0; |
1094 | }; |
1095 | |
1096 | sub parseMacro { |
1097 | my ($self, $text) = @_; |
1098 | # String => 'mupmacrodirectives_start' |
1099 | # attribute => 'Macro' |
1100 | # beginRegion => 'macro' |
1101 | # context => '#stay' |
1102 | # type => 'keyword' |
1103 | if ($self->testKeyword($text, 'mupmacrodirectives_start', 0, undef, 0, '#stay', 'Macro')) { |
1104 | return 1 |
1105 | } |
1106 | # String => 'mupmacrodirectives_end' |
1107 | # attribute => 'Macro' |
1108 | # context => '#stay' |
1109 | # endRegion => 'macro' |
1110 | # type => 'keyword' |
1111 | if ($self->testKeyword($text, 'mupmacrodirectives_end', 0, undef, 0, '#stay', 'Macro')) { |
1112 | return 1 |
1113 | } |
1114 | # String => 'mupmacrodirectives' |
1115 | # attribute => 'Macro' |
1116 | # context => '#stay' |
1117 | # type => 'keyword' |
1118 | if ($self->testKeyword($text, 'mupmacrodirectives', 0, undef, 0, '#stay', 'Macro')) { |
1119 | return 1 |
1120 | } |
1121 | # String => '[A-Z][A-Z0-9_]*(?=\.[xynews]\b)' |
1122 | # attribute => 'Macro' |
1123 | # context => 'Macro Location' |
1124 | # type => 'RegExpr' |
1125 | if ($self->testRegExpr($text, '[A-Z][A-Z0-9_]*(?=\\.[xynews]\\b)', 0, 0, 0, undef, 0, 'Macro Location', 'Macro')) { |
1126 | return 1 |
1127 | } |
1128 | # String => '[A-Z][A-Z0-9_]*' |
1129 | # attribute => 'Macro' |
1130 | # context => '#stay' |
1131 | # type => 'RegExpr' |
1132 | if ($self->testRegExpr($text, '[A-Z][A-Z0-9_]*', 0, 0, 0, undef, 0, '#stay', 'Macro')) { |
1133 | return 1 |
1134 | } |
1135 | # attribute => 'Macro' |
1136 | # char => '@' |
1137 | # context => '#stay' |
1138 | # endRegion => 'macro' |
1139 | # type => 'DetectChar' |
1140 | if ($self->testDetectChar($text, '@', 0, 0, 0, undef, 0, '#stay', 'Macro')) { |
1141 | return 1 |
1142 | } |
1143 | return 0; |
1144 | }; |
1145 | |
1146 | sub parseMacroLocation { |
1147 | my ($self, $text) = @_; |
1148 | # String => '..' |
1149 | # attribute => 'Location Probably' |
1150 | # context => '#pop' |
1151 | # type => 'RegExpr' |
1152 | if ($self->testRegExpr($text, '..', 0, 0, 0, undef, 0, '#pop', 'Location Probably')) { |
1153 | return 1 |
1154 | } |
1155 | return 0; |
1156 | }; |
1157 | |
1158 | sub parseNormal { |
1159 | my ($self, $text) = @_; |
1160 | # String => 'mupcontexts' |
1161 | # attribute => 'Context' |
1162 | # context => '#stay' |
1163 | # type => 'keyword' |
1164 | if ($self->testKeyword($text, 'mupcontexts', 0, undef, 0, '#stay', 'Context')) { |
1165 | return 1 |
1166 | } |
1167 | # String => '\blyrics\b' |
1168 | # attribute => 'Lyrics' |
1169 | # context => '#stay' |
1170 | # type => 'RegExpr' |
1171 | if ($self->testRegExpr($text, '\\blyrics\\b', 0, 0, 0, undef, 0, '#stay', 'Lyrics')) { |
1172 | return 1 |
1173 | } |
1174 | # String => '\b((dashed|dotted)\s+)?(bar|endbar|dblbar|invisbar|repeatstart|repeatboth|repeatend|restart)\b' |
1175 | # attribute => 'Barline' |
1176 | # context => 'Barline' |
1177 | # type => 'RegExpr' |
1178 | if ($self->testRegExpr($text, '\\b((dashed|dotted)\\s+)?(bar|endbar|dblbar|invisbar|repeatstart|repeatboth|repeatend|restart)\\b', 0, 0, 0, undef, 0, 'Barline', 'Barline')) { |
1179 | return 1 |
1180 | } |
1181 | # String => '\bnew(score|page)\b' |
1182 | # attribute => 'Newscore' |
1183 | # context => '#stay' |
1184 | # type => 'RegExpr' |
1185 | if ($self->testRegExpr($text, '\\bnew(score|page)\\b', 0, 0, 0, undef, 0, '#stay', 'Newscore')) { |
1186 | return 1 |
1187 | } |
1188 | # String => '\bmultirest\s+[0-9]+\b' |
1189 | # attribute => 'Newscore' |
1190 | # context => '#stay' |
1191 | # type => 'RegExpr' |
1192 | if ($self->testRegExpr($text, '\\bmultirest\\s+[0-9]+\\b', 0, 0, 0, undef, 0, '#stay', 'Newscore')) { |
1193 | return 1 |
1194 | } |
1195 | # String => '\bunset\b' |
1196 | # attribute => 'Unset Command' |
1197 | # context => 'Unset' |
1198 | # type => 'RegExpr' |
1199 | if ($self->testRegExpr($text, '\\bunset\\b', 0, 0, 0, undef, 0, 'Unset', 'Unset Command')) { |
1200 | return 1 |
1201 | } |
1202 | # attribute => 'Comment' |
1203 | # char => '/' |
1204 | # char1 => '/' |
1205 | # context => 'Comment' |
1206 | # type => 'Detect2Chars' |
1207 | if ($self->testDetect2Chars($text, '/', '/', 0, 0, 0, undef, 0, 'Comment', 'Comment')) { |
1208 | return 1 |
1209 | } |
1210 | # attribute => 'String' |
1211 | # char => '"' |
1212 | # context => 'String' |
1213 | # type => 'DetectChar' |
1214 | if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'String', 'String')) { |
1215 | return 1 |
1216 | } |
1217 | # String => '\\$' |
1218 | # attribute => 'Special Char' |
1219 | # context => '#stay' |
1220 | # type => 'RegExpr' |
1221 | if ($self->testRegExpr($text, '\\\\$', 0, 0, 0, undef, 0, '#stay', 'Special Char')) { |
1222 | return 1 |
1223 | } |
1224 | # String => 'mupprintcommands' |
1225 | # attribute => 'Print Command' |
1226 | # context => 'Print Command' |
1227 | # type => 'keyword' |
1228 | if ($self->testKeyword($text, 'mupprintcommands', 0, undef, 0, 'Print Command', 'Print Command')) { |
1229 | return 1 |
1230 | } |
1231 | # String => 'mupfontnames' |
1232 | # attribute => 'Print Command' |
1233 | # context => 'Print Command' |
1234 | # type => 'keyword' |
1235 | if ($self->testKeyword($text, 'mupfontnames', 0, undef, 0, 'Print Command', 'Print Command')) { |
1236 | return 1 |
1237 | } |
1238 | # String => 'mupfontstyles' |
1239 | # attribute => 'Print Command' |
1240 | # context => 'Print Command' |
1241 | # type => 'keyword' |
1242 | if ($self->testKeyword($text, 'mupfontstyles', 0, undef, 0, 'Print Command', 'Print Command')) { |
1243 | return 1 |
1244 | } |
1245 | # String => '\b((ragged|justified)\s+)?paragraph\b' |
1246 | # attribute => 'Print Command' |
1247 | # context => 'Print Command' |
1248 | # type => 'RegExpr' |
1249 | if ($self->testRegExpr($text, '\\b((ragged|justified)\\s+)?paragraph\\b', 0, 0, 0, undef, 0, 'Print Command', 'Print Command')) { |
1250 | return 1 |
1251 | } |
1252 | # String => 'mupprintspecifiers' |
1253 | # attribute => 'Print Command' |
1254 | # context => '#stay' |
1255 | # type => 'keyword' |
1256 | if ($self->testKeyword($text, 'mupprintspecifiers', 0, undef, 0, '#stay', 'Print Command')) { |
1257 | return 1 |
1258 | } |
1259 | # String => 'mupgraphics' |
1260 | # attribute => 'Print Command' |
1261 | # context => '#stay' |
1262 | # type => 'keyword' |
1263 | if ($self->testKeyword($text, 'mupgraphics', 0, undef, 0, '#stay', 'Print Command')) { |
1264 | return 1 |
1265 | } |
1266 | # String => 'muplocations' |
1267 | # attribute => 'Print Command' |
1268 | # context => '#stay' |
1269 | # type => 'keyword' |
1270 | if ($self->testKeyword($text, 'muplocations', 0, undef, 0, '#stay', 'Print Command')) { |
1271 | return 1 |
1272 | } |
1273 | # String => '\bdist(?=\s+[^=])' |
1274 | # attribute => 'Print Command' |
1275 | # context => '#stay' |
1276 | # type => 'RegExpr' |
1277 | if ($self->testRegExpr($text, '\\bdist(?=\\s+[^=])', 0, 0, 0, undef, 0, '#stay', 'Print Command')) { |
1278 | return 1 |
1279 | } |
1280 | # String => 'mupparameters' |
1281 | # attribute => 'Parameter' |
1282 | # context => 'Parameter' |
1283 | # type => 'keyword' |
1284 | if ($self->testKeyword($text, 'mupparameters', 0, undef, 0, 'Parameter', 'Parameter')) { |
1285 | return 1 |
1286 | } |
1287 | # String => '\[(?=(grace|xnote|cue|diam|with|slash|up|down|len|pad|ho|dist|hs|c\b|=))' |
1288 | # attribute => 'Special Char' |
1289 | # context => 'Bracket' |
1290 | # type => 'RegExpr' |
1291 | if ($self->testRegExpr($text, '\\[(?=(grace|xnote|cue|diam|with|slash|up|down|len|pad|ho|dist|hs|c\\b|=))', 0, 0, 0, undef, 0, 'Bracket', 'Special Char')) { |
1292 | return 1 |
1293 | } |
1294 | # attribute => 'Special Char' |
1295 | # char => '}' |
1296 | # context => 'Tuplet' |
1297 | # type => 'DetectChar' |
1298 | if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, 'Tuplet', 'Special Char')) { |
1299 | return 1 |
1300 | } |
1301 | # String => '[]{' |
1302 | # attribute => 'Special Char' |
1303 | # context => '#stay' |
1304 | # type => 'AnyChar' |
1305 | if ($self->testAnyChar($text, '[]{', 0, 0, undef, 0, '#stay', 'Special Char')) { |
1306 | return 1 |
1307 | } |
1308 | # String => '(<<|>>)' |
1309 | # attribute => 'Special Char' |
1310 | # context => '#stay' |
1311 | # type => 'RegExpr' |
1312 | if ($self->testRegExpr($text, '(<<|>>)', 0, 0, 0, undef, 0, '#stay', 'Special Char')) { |
1313 | return 1 |
1314 | } |
1315 | # String => '(\(\s*)?((1/4|1/2|1|2|4|8|16|32|64|128|256)\.*\s*)?((\(\s*)?([a-grs]|us)(?!bm)([0-9'?\sxn]|[+-]+|[&#]{1,2}|\(\s*[&#]{1,2}\s*\)|\(\s*[xn]\s*\)|\(\s*[0-9]\s*\))*\)?\s*)*\s*(?=[;~="<A-Z@^]|\b(bm|es?bm|dashed|dotted|tie|slur|alt|hs|ifn?def|else|elseif|endif|with|above)\b)' |
1316 | # attribute => 'Note' |
1317 | # context => 'Note' |
1318 | # type => 'RegExpr' |
1319 | if ($self->testRegExpr($text, '(\\(\\s*)?((1/4|1/2|1|2|4|8|16|32|64|128|256)\\.*\\s*)?((\\(\\s*)?([a-grs]|us)(?!bm)([0-9\'?\\sxn]|[+-]+|[&#]{1,2}|\\(\\s*[&#]{1,2}\\s*\\)|\\(\\s*[xn]\\s*\\)|\\(\\s*[0-9]\\s*\\))*\\)?\\s*)*\\s*(?=[;~="<A-Z@^]|\\b(bm|es?bm|dashed|dotted|tie|slur|alt|hs|ifn?def|else|elseif|endif|with|above)\\b)', 0, 0, 0, undef, 0, 'Note', 'Note')) { |
1320 | return 1 |
1321 | } |
1322 | # String => ';\s*(?=[~=<]|\b(bm|es?bm|dashed|dotted|tie|slur|alt|hs|ifn?def|else|elseif|endif)\b)' |
1323 | # attribute => 'Normal Text' |
1324 | # context => 'Note' |
1325 | # type => 'RegExpr' |
1326 | if ($self->testRegExpr($text, ';\\s*(?=[~=<]|\\b(bm|es?bm|dashed|dotted|tie|slur|alt|hs|ifn?def|else|elseif|endif)\\b)', 0, 0, 0, undef, 0, 'Note', 'Normal Text')) { |
1327 | return 1 |
1328 | } |
1329 | # String => '(1/4|1/2|1|2|4|8|16|32|64|128|256)?mu?[rs]+\s*(?=;)' |
1330 | # attribute => 'Note' |
1331 | # context => '#stay' |
1332 | # type => 'RegExpr' |
1333 | if ($self->testRegExpr($text, '(1/4|1/2|1|2|4|8|16|32|64|128|256)?mu?[rs]+\\s*(?=;)', 0, 0, 0, undef, 0, '#stay', 'Note')) { |
1334 | return 1 |
1335 | } |
1336 | # String => 'm\s*rpt\s*(?=;)' |
1337 | # attribute => 'Note' |
1338 | # context => '#stay' |
1339 | # type => 'RegExpr' |
1340 | if ($self->testRegExpr($text, 'm\\s*rpt\\s*(?=;)', 0, 0, 0, undef, 0, '#stay', 'Note')) { |
1341 | return 1 |
1342 | } |
1343 | # String => '=([a-z]|_[a-z][a-z_0-9]*)\b' |
1344 | # attribute => 'Location' |
1345 | # context => '#stay' |
1346 | # type => 'RegExpr' |
1347 | if ($self->testRegExpr($text, '=([a-z]|_[a-z][a-z_0-9]*)\\b', 0, 0, 0, undef, 0, '#stay', 'Location')) { |
1348 | return 1 |
1349 | } |
1350 | # String => '([a-z]|_[a-z][a-z_0-9]*)\.[xynews]\b' |
1351 | # attribute => 'Location' |
1352 | # context => 'Location' |
1353 | # type => 'RegExpr' |
1354 | if ($self->testRegExpr($text, '([a-z]|_[a-z][a-z_0-9]*)\\.[xynews]\\b', 0, 0, 0, undef, 0, 'Location', 'Location')) { |
1355 | return 1 |
1356 | } |
1357 | # String => '([a-z]|_[a-z][a-z_0-9]*)\.(?=[A-Z])' |
1358 | # attribute => 'Location Probably' |
1359 | # context => '#stay' |
1360 | # type => 'RegExpr' |
1361 | if ($self->testRegExpr($text, '([a-z]|_[a-z][a-z_0-9]*)\\.(?=[A-Z])', 0, 0, 0, undef, 0, '#stay', 'Location Probably')) { |
1362 | return 1 |
1363 | } |
1364 | # String => '[(,]\s*(?=([h-qt-z]|_[a-z][a-z_0-9]*)\s*[,)])' |
1365 | # attribute => 'Normal Text' |
1366 | # context => 'Location Probably' |
1367 | # type => 'RegExpr' |
1368 | if ($self->testRegExpr($text, '[(,]\\s*(?=([h-qt-z]|_[a-z][a-z_0-9]*)\\s*[,)])', 0, 0, 0, undef, 0, 'Location Probably', 'Normal Text')) { |
1369 | return 1 |
1370 | } |
1371 | # String => '[(,]\s*(?=[a-grs]\s*[,)])' |
1372 | # attribute => 'Normal Text' |
1373 | # context => 'Note Probably' |
1374 | # type => 'RegExpr' |
1375 | if ($self->testRegExpr($text, '[(,]\\s*(?=[a-grs]\\s*[,)])', 0, 0, 0, undef, 0, 'Note Probably', 'Normal Text')) { |
1376 | return 1 |
1377 | } |
1378 | # context => 'Macro' |
1379 | # type => 'IncludeRules' |
1380 | if ($self->includeRules('Macro', $text)) { |
1381 | return 1 |
1382 | } |
1383 | # String => '[0-9.]*\s*til\s*(([0-9]+m(\s*\+\s*[0-9.]+)?)|[0-9.]+)\s*;' |
1384 | # attribute => 'Normal Text' |
1385 | # context => '#stay' |
1386 | # type => 'RegExpr' |
1387 | if ($self->testRegExpr($text, '[0-9.]*\\s*til\\s*(([0-9]+m(\\s*\\+\\s*[0-9.]+)?)|[0-9.]+)\\s*;', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) { |
1388 | return 1 |
1389 | } |
1390 | # String => '[0-9]*[a-z_]+' |
1391 | # attribute => 'Error' |
1392 | # context => '#stay' |
1393 | # type => 'RegExpr' |
1394 | if ($self->testRegExpr($text, '[0-9]*[a-z_]+', 0, 0, 0, undef, 0, '#stay', 'Error')) { |
1395 | return 1 |
1396 | } |
1397 | return 0; |
1398 | }; |
1399 | |
1400 | sub parseNote { |
1401 | my ($self, $text) = @_; |
1402 | # String => '(\bdashed\s+|\bdotted\s+)?(<(/n|\\n|n/|n\\|[a-g]([+-]*|[0-7]))?>|tie|slur|[~])' |
1403 | # attribute => 'Note Attribute' |
1404 | # context => '#stay' |
1405 | # type => 'RegExpr' |
1406 | if ($self->testRegExpr($text, '(\\bdashed\\s+|\\bdotted\\s+)?(<(/n|\\\\n|n/|n\\\\|[a-g]([+-]*|[0-7]))?>|tie|slur|[~])', 0, 0, 0, undef, 0, '#stay', 'Note Attribute')) { |
1407 | return 1 |
1408 | } |
1409 | # String => '^(/|[a-g]([+-]*|[0-7]))' |
1410 | # attribute => 'Note Attribute' |
1411 | # context => '#stay' |
1412 | # type => 'RegExpr' |
1413 | if ($self->testRegExpr($text, '^(/|[a-g]([+-]*|[0-7]))', 0, 0, 0, undef, 0, '#stay', 'Note Attribute')) { |
1414 | return 1 |
1415 | } |
1416 | # String => '\bbm\b(\s+with\s+staff\s+(below|above)\b)?' |
1417 | # attribute => 'Note Attribute' |
1418 | # context => '#stay' |
1419 | # type => 'RegExpr' |
1420 | if ($self->testRegExpr($text, '\\bbm\\b(\\s+with\\s+staff\\s+(below|above)\\b)?', 0, 0, 0, undef, 0, '#stay', 'Note Attribute')) { |
1421 | return 1 |
1422 | } |
1423 | # String => '\bes?bm\b' |
1424 | # attribute => 'Note Attribute' |
1425 | # context => '#stay' |
1426 | # type => 'RegExpr' |
1427 | if ($self->testRegExpr($text, '\\bes?bm\\b', 0, 0, 0, undef, 0, '#stay', 'Note Attribute')) { |
1428 | return 1 |
1429 | } |
1430 | # String => '\balt\s+[1-9]\b' |
1431 | # attribute => 'Note Attribute' |
1432 | # context => '#stay' |
1433 | # type => 'RegExpr' |
1434 | if ($self->testRegExpr($text, '\\balt\\s+[1-9]\\b', 0, 0, 0, undef, 0, '#stay', 'Note Attribute')) { |
1435 | return 1 |
1436 | } |
1437 | # String => '\bhs\s+' |
1438 | # attribute => 'Note Attribute' |
1439 | # context => '#stay' |
1440 | # type => 'RegExpr' |
1441 | if ($self->testRegExpr($text, '\\bhs\\s+', 0, 0, 0, undef, 0, '#stay', 'Note Attribute')) { |
1442 | return 1 |
1443 | } |
1444 | # attribute => 'String' |
1445 | # char => '"' |
1446 | # context => 'String' |
1447 | # type => 'DetectChar' |
1448 | if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'String', 'String')) { |
1449 | return 1 |
1450 | } |
1451 | # context => 'Macro' |
1452 | # type => 'IncludeRules' |
1453 | if ($self->includeRules('Macro', $text)) { |
1454 | return 1 |
1455 | } |
1456 | return 0; |
1457 | }; |
1458 | |
1459 | sub parseNoteProbably { |
1460 | my ($self, $text) = @_; |
1461 | # String => '[a-grs]*' |
1462 | # attribute => 'Note' |
1463 | # context => '#pop' |
1464 | # type => 'RegExpr' |
1465 | if ($self->testRegExpr($text, '[a-grs]*', 0, 0, 0, undef, 0, '#pop', 'Note')) { |
1466 | return 1 |
1467 | } |
1468 | return 0; |
1469 | }; |
1470 | |
1471 | sub parseParameter { |
1472 | my ($self, $text) = @_; |
1473 | # attribute => 'Normal Text' |
1474 | # char => '=' |
1475 | # context => 'Value' |
1476 | # type => 'DetectChar' |
1477 | if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, 'Value', 'Normal Text')) { |
1478 | return 1 |
1479 | } |
1480 | # String => '\s+' |
1481 | # attribute => 'Parameter' |
1482 | # context => '#stay' |
1483 | # type => 'RegExpr' |
1484 | if ($self->testRegExpr($text, '\\s+', 0, 0, 0, undef, 0, '#stay', 'Parameter')) { |
1485 | return 1 |
1486 | } |
1487 | return 0; |
1488 | }; |
1489 | |
1490 | sub parsePrintCommand { |
1491 | my ($self, $text) = @_; |
1492 | # type => 'DetectSpaces' |
1493 | if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) { |
1494 | return 1 |
1495 | } |
1496 | # String => 'mupfontstyles' |
1497 | # attribute => 'Print Command' |
1498 | # context => '#stay' |
1499 | # type => 'keyword' |
1500 | if ($self->testKeyword($text, 'mupfontstyles', 0, undef, 0, '#stay', 'Print Command')) { |
1501 | return 1 |
1502 | } |
1503 | # String => '\bnl\b' |
1504 | # attribute => 'Print Command' |
1505 | # context => '#stay' |
1506 | # type => 'RegExpr' |
1507 | if ($self->testRegExpr($text, '\\bnl\\b', 0, 0, 0, undef, 0, '#stay', 'Print Command')) { |
1508 | return 1 |
1509 | } |
1510 | # String => '\([0-9]+\)' |
1511 | # attribute => 'Print Command' |
1512 | # context => '#pop' |
1513 | # type => 'RegExpr' |
1514 | if ($self->testRegExpr($text, '\\([0-9]+\\)', 0, 0, 0, undef, 0, '#pop', 'Print Command')) { |
1515 | return 1 |
1516 | } |
1517 | return 0; |
1518 | }; |
1519 | |
1520 | sub parseSpecialChar { |
1521 | my ($self, $text) = @_; |
1522 | # attribute => 'String Special' |
1523 | # char => ')' |
1524 | # context => '#pop' |
1525 | # type => 'DetectChar' |
1526 | if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop', 'String Special')) { |
1527 | return 1 |
1528 | } |
1529 | # String => 'mupspecialchars' |
1530 | # attribute => 'String Special' |
1531 | # context => '#stay' |
1532 | # type => 'keyword' |
1533 | if ($self->testKeyword($text, 'mupspecialchars', 0, undef, 0, '#stay', 'String Special')) { |
1534 | return 1 |
1535 | } |
1536 | # String => 'mupmusicchars' |
1537 | # attribute => 'String Special' |
1538 | # context => '#stay' |
1539 | # type => 'keyword' |
1540 | if ($self->testKeyword($text, 'mupmusicchars', 0, undef, 0, '#stay', 'String Special')) { |
1541 | return 1 |
1542 | } |
1543 | # String => '[AaEeOo]['`:^~](?=\))' |
1544 | # attribute => 'String Special' |
1545 | # context => '#stay' |
1546 | # type => 'RegExpr' |
1547 | if ($self->testRegExpr($text, '[AaEeOo][\'`:^~](?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1548 | return 1 |
1549 | } |
1550 | # String => '[IiUu]['`:^](?=\))' |
1551 | # attribute => 'String Special' |
1552 | # context => '#stay' |
1553 | # type => 'RegExpr' |
1554 | if ($self->testRegExpr($text, '[IiUu][\'`:^](?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1555 | return 1 |
1556 | } |
1557 | # String => '[Nn]~(?=\))' |
1558 | # attribute => 'String Special' |
1559 | # context => '#stay' |
1560 | # type => 'RegExpr' |
1561 | if ($self->testRegExpr($text, '[Nn]~(?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1562 | return 1 |
1563 | } |
1564 | # String => '[Yy]:(?=\))' |
1565 | # attribute => 'String Special' |
1566 | # context => '#stay' |
1567 | # type => 'RegExpr' |
1568 | if ($self->testRegExpr($text, '[Yy]:(?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1569 | return 1 |
1570 | } |
1571 | # String => '[LlOo]/(?=\))' |
1572 | # attribute => 'String Special' |
1573 | # context => '#stay' |
1574 | # type => 'RegExpr' |
1575 | if ($self->testRegExpr($text, '[LlOo]/(?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1576 | return 1 |
1577 | } |
1578 | # String => '[Cc],(?=\))' |
1579 | # attribute => 'String Special' |
1580 | # context => '#stay' |
1581 | # type => 'RegExpr' |
1582 | if ($self->testRegExpr($text, '[Cc],(?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1583 | return 1 |
1584 | } |
1585 | # String => '(>>|<<|``|'')(?=\))' |
1586 | # attribute => 'String Special' |
1587 | # context => '#stay' |
1588 | # type => 'RegExpr' |
1589 | if ($self->testRegExpr($text, '(>>|<<|``|\'\')(?=\\))', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1590 | return 1 |
1591 | } |
1592 | # String => '[^)"]+' |
1593 | # attribute => 'String Error' |
1594 | # context => '#stay' |
1595 | # type => 'RegExpr' |
1596 | if ($self->testRegExpr($text, '[^)"]+', 0, 0, 0, undef, 0, '#stay', 'String Error')) { |
1597 | return 1 |
1598 | } |
1599 | return 0; |
1600 | }; |
1601 | |
1602 | sub parseString { |
1603 | my ($self, $text) = @_; |
1604 | # attribute => 'String' |
1605 | # char => '"' |
1606 | # context => '#pop' |
1607 | # type => 'DetectChar' |
1608 | if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop', 'String')) { |
1609 | return 1 |
1610 | } |
1611 | # String => '[\\][][{}%#"nb|^:,\\/ ]' |
1612 | # attribute => 'String Special' |
1613 | # context => '#stay' |
1614 | # type => 'RegExpr' |
1615 | if ($self->testRegExpr($text, '[\\\\][][{}%#"nb|^:,\\\\/ ]', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1616 | return 1 |
1617 | } |
1618 | # String => '\(' |
1619 | # attribute => 'String Special' |
1620 | # context => 'Special Char' |
1621 | # type => 'StringDetect' |
1622 | if ($self->testStringDetect($text, '\\(', 0, 0, 0, undef, 0, 'Special Char', 'String Special')) { |
1623 | return 1 |
1624 | } |
1625 | # String => '\f(' |
1626 | # attribute => 'String Special' |
1627 | # context => 'Font Name' |
1628 | # type => 'StringDetect' |
1629 | if ($self->testStringDetect($text, '\\f(', 0, 0, 0, undef, 0, 'Font Name', 'String Special')) { |
1630 | return 1 |
1631 | } |
1632 | # String => '\s(' |
1633 | # attribute => 'String Special' |
1634 | # context => 'Font Size' |
1635 | # type => 'StringDetect' |
1636 | if ($self->testStringDetect($text, '\\s(', 0, 0, 0, undef, 0, 'Font Size', 'String Special')) { |
1637 | return 1 |
1638 | } |
1639 | # String => '\\v\(-?[0-9]{1,3}\)' |
1640 | # attribute => 'String Special' |
1641 | # context => '#stay' |
1642 | # type => 'RegExpr' |
1643 | if ($self->testRegExpr($text, '\\\\v\\(-?[0-9]{1,3}\\)', 0, 0, 0, undef, 0, '#stay', 'String Special')) { |
1644 | return 1 |
1645 | } |
1646 | # String => '[~<>|^]' |
1647 | # attribute => 'String Lyrics' |
1648 | # context => '#stay' |
1649 | # type => 'RegExpr' |
1650 | if ($self->testRegExpr($text, '[~<>|^]', 0, 0, 0, undef, 0, '#stay', 'String Lyrics')) { |
1651 | return 1 |
1652 | } |
1653 | # String => '[-+]?[0-9]+\|' |
1654 | # attribute => 'String Lyrics' |
1655 | # context => '#stay' |
1656 | # type => 'RegExpr' |
1657 | if ($self->testRegExpr($text, '[-+]?[0-9]+\\|', 0, 0, 0, undef, 0, '#stay', 'String Lyrics')) { |
1658 | return 1 |
1659 | } |
1660 | return 0; |
1661 | }; |
1662 | |
1663 | sub parseTuplet { |
1664 | my ($self, $text) = @_; |
1665 | # String => '\s*(above|below)?\s*[0-9]{1,2}(y|n|num)?(\s*,\s*[0-9]{1,2}\.?([+][0-9]{1,2}\.?)*)?' |
1666 | # attribute => 'Tuplet' |
1667 | # context => '#pop' |
1668 | # type => 'RegExpr' |
1669 | if ($self->testRegExpr($text, '\\s*(above|below)?\\s*[0-9]{1,2}(y|n|num)?(\\s*,\\s*[0-9]{1,2}\\.?([+][0-9]{1,2}\\.?)*)?', 0, 0, 0, undef, 0, '#pop', 'Tuplet')) { |
1670 | return 1 |
1671 | } |
1672 | return 0; |
1673 | }; |
1674 | |
1675 | sub parseUnset { |
1676 | my ($self, $text) = @_; |
1677 | # String => 'mupparameters' |
1678 | # attribute => 'Parameter' |
1679 | # context => '#stay' |
1680 | # type => 'keyword' |
1681 | if ($self->testKeyword($text, 'mupparameters', 0, undef, 0, '#stay', 'Parameter')) { |
1682 | return 1 |
1683 | } |
1684 | # String => '[\s,]+' |
1685 | # attribute => 'Normal Text' |
1686 | # context => '#stay' |
1687 | # type => 'RegExpr' |
1688 | if ($self->testRegExpr($text, '[\\s,]+', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) { |
1689 | return 1 |
1690 | } |
1691 | # String => '\w+' |
1692 | # attribute => 'Error' |
1693 | # context => '#pop' |
1694 | # type => 'RegExpr' |
1695 | if ($self->testRegExpr($text, '\\w+', 0, 0, 0, undef, 0, '#pop', 'Error')) { |
1696 | return 1 |
1697 | } |
1698 | return 0; |
1699 | }; |
1700 | |
1701 | sub parseValue { |
1702 | my ($self, $text) = @_; |
1703 | # attribute => 'Normal Text' |
1704 | # char => ';' |
1705 | # context => '#pop' |
1706 | # type => 'DetectChar' |
1707 | if ($self->testDetectChar($text, ';', 0, 0, 0, undef, 0, '#pop', 'Normal Text')) { |
1708 | return 1 |
1709 | } |
1710 | # String => '[\s,&()-]+' |
1711 | # attribute => 'Normal Text' |
1712 | # context => '#stay' |
1713 | # type => 'RegExpr' |
1714 | if ($self->testRegExpr($text, '[\\s,&()-]+', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) { |
1715 | return 1 |
1716 | } |
1717 | # String => 'mupvalues' |
1718 | # attribute => 'Value' |
1719 | # context => '#stay' |
1720 | # type => 'keyword' |
1721 | if ($self->testKeyword($text, 'mupvalues', 0, undef, 0, '#stay', 'Value')) { |
1722 | return 1 |
1723 | } |
1724 | # String => 'mupfontnames' |
1725 | # attribute => 'Value' |
1726 | # context => '#pop' |
1727 | # type => 'keyword' |
1728 | if ($self->testKeyword($text, 'mupfontnames', 0, undef, 0, '#pop', 'Value')) { |
1729 | return 1 |
1730 | } |
1731 | # String => 'mupfontstyles' |
1732 | # attribute => 'Value' |
1733 | # context => '#pop' |
1734 | # type => 'keyword' |
1735 | if ($self->testKeyword($text, 'mupfontstyles', 0, undef, 0, '#pop', 'Value')) { |
1736 | return 1 |
1737 | } |
1738 | # String => '\b[1-9][0-9]*/(1|2|4|8|16|32|64|128)n?\b' |
1739 | # attribute => 'Value' |
1740 | # context => '#stay' |
1741 | # type => 'RegExpr' |
1742 | if ($self->testRegExpr($text, '\\b[1-9][0-9]*/(1|2|4|8|16|32|64|128)n?\\b', 0, 0, 0, undef, 0, '#stay', 'Value')) { |
1743 | return 1 |
1744 | } |
1745 | # String => '\b[a-g][#&]?'?([0-9]\b)?' |
1746 | # attribute => 'Value' |
1747 | # context => '#stay' |
1748 | # type => 'RegExpr' |
1749 | if ($self->testRegExpr($text, '\\b[a-g][#&]?\'?([0-9]\\b)?', 0, 0, 0, undef, 0, '#stay', 'Value')) { |
1750 | return 1 |
1751 | } |
1752 | # String => '[0-7][#&]' |
1753 | # attribute => 'Value' |
1754 | # context => '#stay' |
1755 | # type => 'RegExpr' |
1756 | if ($self->testRegExpr($text, '[0-7][#&]', 0, 0, 0, undef, 0, '#stay', 'Value')) { |
1757 | return 1 |
1758 | } |
1759 | # String => 'r\b' |
1760 | # attribute => 'Value' |
1761 | # context => '#stay' |
1762 | # type => 'RegExpr' |
1763 | if ($self->testRegExpr($text, 'r\\b', 0, 0, 0, undef, 0, '#stay', 'Value')) { |
1764 | return 1 |
1765 | } |
1766 | # attribute => 'Value' |
1767 | # context => '#stay' |
1768 | # type => 'Float' |
1769 | if ($self->testFloat($text, 0, undef, 0, '#stay', 'Value')) { |
1770 | return 1 |
1771 | } |
1772 | # attribute => 'Value' |
1773 | # context => '#stay' |
1774 | # type => 'Int' |
1775 | if ($self->testInt($text, 0, undef, 0, '#stay', 'Value')) { |
1776 | return 1 |
1777 | } |
1778 | # attribute => 'String' |
1779 | # char => '"' |
1780 | # context => 'String' |
1781 | # type => 'DetectChar' |
1782 | if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'String', 'String')) { |
1783 | return 1 |
1784 | } |
1785 | # context => 'Macro' |
1786 | # type => 'IncludeRules' |
1787 | if ($self->includeRules('Macro', $text)) { |
1788 | return 1 |
1789 | } |
1790 | # String => '[a-z][a-z0-9]*' |
1791 | # attribute => 'Error' |
1792 | # context => '#stay' |
1793 | # type => 'RegExpr' |
1794 | if ($self->testRegExpr($text, '[a-z][a-z0-9]*', 0, 0, 0, undef, 0, '#stay', 'Error')) { |
1795 | return 1 |
1796 | } |
1797 | return 0; |
1798 | }; |
1799 | |
1800 | |
1801 | 1; |
1802 | |
1803 | __END__ |
1804 | |
1805 | =head1 NAME |
1806 | |
1807 | Syntax::Highlight::Engine::Kate::Music_Publisher - a Plugin for Music Publisher syntax highlighting |
1808 | |
1809 | =head1 SYNOPSIS |
1810 | |
1811 | require Syntax::Highlight::Engine::Kate::Music_Publisher; |
1812 | my $sh = new Syntax::Highlight::Engine::Kate::Music_Publisher([ |
1813 | ]); |
1814 | |
1815 | =head1 DESCRIPTION |
1816 | |
1817 | Syntax::Highlight::Engine::Kate::Music_Publisher is a plugin module that provides syntax highlighting |
1818 | for Music Publisher to the Syntax::Haghlight::Engine::Kate highlighting engine. |
1819 | |
1820 | This code is generated from the syntax definition files used |
1821 | by the Kate project. |
1822 | It works quite fine, but can use refinement and optimization. |
1823 | |
1824 | It inherits Syntax::Higlight::Engine::Kate::Template. See also there. |
1825 | |
1826 | =cut |
1827 | |
1828 | =head1 AUTHOR |
1829 | |
1830 | Hans Jeuken (haje <at> toneel <dot> demon <dot> nl) |
1831 | |
1832 | =cut |
1833 | |
1834 | =head1 BUGS |
1835 | |
1836 | Unknown. If you find any, please contact the author |
1837 | |
1838 | =cut |
1839 | |