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.
5 # This file was generated from the 'ruby.xml' file of the syntax highlight
6 # engine of the kate text editor (http://www.kate-editor.org
10 #kate author Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi)
11 #generated: Sun Feb 3 22:02:06 2008, localtime
13 package Syntax::Highlight::Engine::Kate::Ruby;
15 our $VERSION = '0.06';
19 use base('Syntax::Highlight::Engine::Kate::Template');
23 my $class = ref($proto) || $proto;
24 my $self = $class->SUPER::new(@_);
26 'Access Control' => 'Keyword',
28 'Attribute Definition' => 'Others',
30 'Blockcomment' => 'Comment',
32 'Class Variable' => 'Others',
33 'Command' => 'String',
34 'Comment' => 'Comment',
35 'Constant' => 'DataType',
36 'Constant Value' => 'DataType',
39 'Default globals' => 'DataType',
40 'Definition' => 'Keyword',
41 'Delimiter' => 'Char',
43 'Expression' => 'Others',
45 'GDL input' => 'Others',
46 'Global Constant' => 'DataType',
47 'Global Variable' => 'DataType',
49 'Instance Variable' => 'Others',
50 'Kernel methods' => 'Normal',
51 'Keyword' => 'Keyword',
53 'Message' => 'Normal',
54 'Normal Text' => 'Normal',
57 'Pseudo variable' => 'DecVal',
58 'RDoc Value' => 'Others',
59 'Raw String' => 'String',
60 'Region Marker' => 'Normal',
61 'Regular Expression' => 'Others',
63 'Substitution' => 'Others',
66 $self->listAdd('access-control',
68 'private_class_method',
71 'public_class_method',
73 $self->listAdd('attention',
78 $self->listAdd('attribute-definitions',
83 $self->listAdd('default-globals',
90 $self->listAdd('definitions',
97 $self->listAdd('kernel-methods',
159 $self->listAdd('keywords',
190 $self->listAdd('pseudo-variables',
201 'Apostrophed String' => {
202 callback => \&parseApostrophedString,
203 attribute => 'Raw String',
205 'Command String' => {
206 callback => \&parseCommandString,
207 attribute => 'Command',
210 callback => \&parseCommentLine,
211 attribute => 'Comment',
212 lineending => '#pop',
215 callback => \&parseDATA,
218 'Embedded documentation' => {
219 callback => \&parseEmbeddeddocumentation,
220 attribute => 'Comment',
222 'General Comment' => {
223 callback => \&parseGeneralComment,
224 attribute => 'Comment',
225 lineending => '#pop',
228 callback => \&parseLineContinue,
229 attribute => 'Normal Text',
230 lineending => '#pop',
233 callback => \&parseMemberAccess,
234 attribute => 'Member',
235 lineending => '#pop',
238 callback => \&parseNormal,
239 attribute => 'Normal Text',
242 callback => \&parseQuotedString,
243 attribute => 'String',
246 callback => \&parseRDocLabel,
247 attribute => 'RDoc Value',
248 lineending => '#pop',
251 callback => \&parseRegEx1,
252 attribute => 'Regular Expression',
255 callback => \&parseShortSubst,
256 attribute => 'Substitution',
257 lineending => '#pop',
260 callback => \&parseSubst,
261 attribute => 'Normal Text',
263 'apostrophed_indented_heredoc' => {
264 callback => \&parseapostrophed_indented_heredoc,
265 attribute => 'Normal Text',
268 'apostrophed_normal_heredoc' => {
269 callback => \&parseapostrophed_normal_heredoc,
270 attribute => 'Normal Text',
273 'apostrophed_rules' => {
274 callback => \&parseapostrophed_rules,
275 attribute => 'Raw String',
277 'dq_string_rules' => {
278 callback => \&parsedq_string_rules,
279 attribute => 'String',
281 'find_gdl_input' => {
282 callback => \&parsefind_gdl_input,
283 attribute => 'Normal Text',
284 lineending => '#pop',
287 callback => \&parsefind_heredoc,
288 attribute => 'Normal Text',
289 lineending => '#pop',
291 'find_indented_heredoc' => {
292 callback => \&parsefind_indented_heredoc,
293 attribute => 'Normal Text',
294 lineending => '#pop',
296 'gdl_apostrophed_1' => {
297 callback => \&parsegdl_apostrophed_1,
298 attribute => 'Raw String',
300 'gdl_apostrophed_1_nested' => {
301 callback => \&parsegdl_apostrophed_1_nested,
302 attribute => 'Raw String',
304 'gdl_apostrophed_2' => {
305 callback => \&parsegdl_apostrophed_2,
306 attribute => 'Raw String',
308 'gdl_apostrophed_2_nested' => {
309 callback => \&parsegdl_apostrophed_2_nested,
310 attribute => 'Raw String',
312 'gdl_apostrophed_3' => {
313 callback => \&parsegdl_apostrophed_3,
314 attribute => 'Raw String',
316 'gdl_apostrophed_3_nested' => {
317 callback => \&parsegdl_apostrophed_3_nested,
318 attribute => 'Raw String',
320 'gdl_apostrophed_4' => {
321 callback => \&parsegdl_apostrophed_4,
322 attribute => 'Raw String',
324 'gdl_apostrophed_4_nested' => {
325 callback => \&parsegdl_apostrophed_4_nested,
326 attribute => 'Raw String',
328 'gdl_apostrophed_5' => {
329 callback => \&parsegdl_apostrophed_5,
330 attribute => 'Raw String',
333 'gdl_dq_string_1' => {
334 callback => \&parsegdl_dq_string_1,
335 attribute => 'String',
337 'gdl_dq_string_1_nested' => {
338 callback => \&parsegdl_dq_string_1_nested,
339 attribute => 'String',
341 'gdl_dq_string_2' => {
342 callback => \&parsegdl_dq_string_2,
343 attribute => 'String',
345 'gdl_dq_string_2_nested' => {
346 callback => \&parsegdl_dq_string_2_nested,
347 attribute => 'String',
349 'gdl_dq_string_3' => {
350 callback => \&parsegdl_dq_string_3,
351 attribute => 'String',
353 'gdl_dq_string_3_nested' => {
354 callback => \&parsegdl_dq_string_3_nested,
355 attribute => 'String',
357 'gdl_dq_string_4' => {
358 callback => \&parsegdl_dq_string_4,
359 attribute => 'String',
361 'gdl_dq_string_4_nested' => {
362 callback => \&parsegdl_dq_string_4_nested,
363 attribute => 'String',
365 'gdl_dq_string_5' => {
366 callback => \&parsegdl_dq_string_5,
367 attribute => 'String',
371 callback => \&parsegdl_regexpr_1,
372 attribute => 'Regular Expression',
374 'gdl_regexpr_1_nested' => {
375 callback => \&parsegdl_regexpr_1_nested,
376 attribute => 'Regular Expression',
379 callback => \&parsegdl_regexpr_2,
380 attribute => 'Regular Expression',
382 'gdl_regexpr_2_nested' => {
383 callback => \&parsegdl_regexpr_2_nested,
384 attribute => 'Regular Expression',
387 callback => \&parsegdl_regexpr_3,
388 attribute => 'Regular Expression',
390 'gdl_regexpr_3_nested' => {
391 callback => \&parsegdl_regexpr_3_nested,
392 attribute => 'Regular Expression',
395 callback => \&parsegdl_regexpr_4,
396 attribute => 'Regular Expression',
398 'gdl_regexpr_4_nested' => {
399 callback => \&parsegdl_regexpr_4_nested,
400 attribute => 'Regular Expression',
403 callback => \&parsegdl_regexpr_5,
404 attribute => 'Regular Expression',
407 'gdl_shell_command_1' => {
408 callback => \&parsegdl_shell_command_1,
409 attribute => 'Command',
411 'gdl_shell_command_1_nested' => {
412 callback => \&parsegdl_shell_command_1_nested,
413 attribute => 'Command',
415 'gdl_shell_command_2' => {
416 callback => \&parsegdl_shell_command_2,
417 attribute => 'Command',
419 'gdl_shell_command_2_nested' => {
420 callback => \&parsegdl_shell_command_2_nested,
421 attribute => 'Command',
423 'gdl_shell_command_3' => {
424 callback => \&parsegdl_shell_command_3,
425 attribute => 'Command',
427 'gdl_shell_command_3_nested' => {
428 callback => \&parsegdl_shell_command_3_nested,
429 attribute => 'Command',
431 'gdl_shell_command_4' => {
432 callback => \&parsegdl_shell_command_4,
433 attribute => 'Command',
435 'gdl_shell_command_4_nested' => {
436 callback => \&parsegdl_shell_command_4_nested,
437 attribute => 'Command',
439 'gdl_shell_command_5' => {
440 callback => \&parsegdl_shell_command_5,
441 attribute => 'Command',
444 'gdl_token_array_1' => {
445 callback => \&parsegdl_token_array_1,
446 attribute => 'String',
448 'gdl_token_array_1_nested' => {
449 callback => \&parsegdl_token_array_1_nested,
450 attribute => 'String',
452 'gdl_token_array_2' => {
453 callback => \&parsegdl_token_array_2,
454 attribute => 'String',
456 'gdl_token_array_2_nested' => {
457 callback => \&parsegdl_token_array_2_nested,
458 attribute => 'String',
460 'gdl_token_array_3' => {
461 callback => \&parsegdl_token_array_3,
462 attribute => 'String',
464 'gdl_token_array_3_nested' => {
465 callback => \&parsegdl_token_array_3_nested,
466 attribute => 'String',
468 'gdl_token_array_4' => {
469 callback => \&parsegdl_token_array_4,
470 attribute => 'String',
472 'gdl_token_array_4_nested' => {
473 callback => \&parsegdl_token_array_4_nested,
474 attribute => 'String',
476 'gdl_token_array_5' => {
477 callback => \&parsegdl_token_array_5,
478 attribute => 'String',
482 callback => \&parseheredoc_rules,
483 attribute => 'Normal Text',
485 'indented_heredoc' => {
486 callback => \&parseindented_heredoc,
487 attribute => 'Normal Text',
490 'normal_heredoc' => {
491 callback => \&parsenormal_heredoc,
492 attribute => 'Normal Text',
496 callback => \&parseregexpr_rules,
497 attribute => 'Regular Expression',
499 'shell_command_rules' => {
500 callback => \&parseshell_command_rules,
501 attribute => 'Command',
503 'token_array_rules' => {
504 callback => \&parsetoken_array_rules,
505 attribute => 'String',
508 $self->deliminators('\\s||\\.|\\(|\\)|:|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\|\\!|\\?');
509 $self->basecontext('Normal');
510 $self->keywordscase(0);
512 bless ($self, $class);
520 sub parseApostrophedString {
521 my ($self, $text) = @_;
523 # attribute => 'String'
525 # type => 'StringDetect'
526 if ($self->testStringDetect($text, '\\\\', 0, 0, 0, undef, 0, '#stay', 'String')) {
530 # attribute => 'String'
533 if ($self->testRegExpr($text, '\\\\\\\'', 0, 0, 0, undef, 0, '#stay', 'String')) {
536 # attribute => 'Raw String'
539 # type => 'DetectChar'
540 if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, '#pop', 'Raw String')) {
546 sub parseCommandString {
547 my ($self, $text) = @_;
549 # attribute => 'String'
551 # type => 'StringDetect'
552 if ($self->testStringDetect($text, '\\\\', 0, 0, 0, undef, 0, '#stay', 'String')) {
556 # attribute => 'String'
559 if ($self->testRegExpr($text, '\\\\\\`', 0, 0, 0, undef, 0, '#stay', 'String')) {
562 # String => '#@{1,2}'
563 # attribute => 'Substitution'
564 # context => 'Short Subst'
566 if ($self->testRegExpr($text, '#@{1,2}', 0, 0, 0, undef, 0, 'Short Subst', 'Substitution')) {
569 # attribute => 'Substitution'
573 # type => 'Detect2Chars'
574 if ($self->testDetect2Chars($text, '#', '{', 0, 0, 0, undef, 0, 'Subst', 'Substitution')) {
577 # attribute => 'Char'
580 if ($self->testHlCChar($text, 0, undef, 0, '#pop', 'Char')) {
583 # attribute => 'Command'
586 # type => 'DetectChar'
587 if ($self->testDetectChar($text, '`', 0, 0, 0, undef, 0, '#pop', 'Command')) {
593 sub parseCommentLine {
594 my ($self, $text) = @_;
595 # String => '\w\:\:\s'
596 # attribute => 'Comment'
597 # context => 'RDoc Label'
599 if ($self->testRegExpr($text, '\\w\\:\\:\\s', 0, 0, 0, undef, 0, 'RDoc Label', 'Comment')) {
602 # String => 'attention'
603 # attribute => 'Alert'
606 if ($self->testKeyword($text, 'attention', 0, undef, 0, '#stay', 'Alert')) {
613 my ($self, $text) = @_;
617 sub parseEmbeddeddocumentation {
618 my ($self, $text) = @_;
620 # attribute => 'Comment'
623 # endRegion => 'comment block'
624 # type => 'StringDetect'
625 if ($self->testStringDetect($text, '=end', 0, 0, 0, 0, 0, '#pop', 'Comment')) {
631 sub parseGeneralComment {
632 my ($self, $text) = @_;
633 # String => 'attention'
637 if ($self->testKeyword($text, 'attention', 0, undef, 0, '#stay', 'Dec')) {
643 sub parseLineContinue {
644 my ($self, $text) = @_;
645 # String => '(while|until)\b(?!.*\bdo\b)'
646 # attribute => 'Keyword'
648 # firstNonSpace => 'true'
650 if ($self->testRegExpr($text, '(while|until)\\b(?!.*\\bdo\\b)', 0, 0, 0, undef, 1, '#stay', 'Keyword')) {
653 # String => '(if|unless)\b'
654 # attribute => 'Keyword'
656 # firstNonSpace => 'true'
658 if ($self->testRegExpr($text, '(if|unless)\\b', 0, 0, 0, undef, 1, '#stay', 'Keyword')) {
661 # context => 'Normal'
662 # type => 'IncludeRules'
663 if ($self->includeRules('Normal', $text)) {
669 sub parseMemberAccess {
670 my ($self, $text) = @_;
671 # String => '\.?[_a-z]\w*(\?|\!)?(?=[^\w\d\.\:])'
672 # attribute => 'Message'
675 if ($self->testRegExpr($text, '\\.?[_a-z]\\w*(\\?|\\!)?(?=[^\\w\\d\\.\\:])', 0, 0, 0, undef, 0, '#pop', 'Message')) {
678 # String => '\.?[_a-z]\w*(\?|\!)?'
679 # attribute => 'Message'
682 if ($self->testRegExpr($text, '\\.?[_a-z]\\w*(\\?|\\!)?', 0, 0, 0, undef, 0, '#stay', 'Message')) {
685 # String => '[A-Z]+_*(\d|[a-z])\w*(?=[^\w\d\.\:])'
686 # attribute => 'Constant'
689 if ($self->testRegExpr($text, '[A-Z]+_*(\\d|[a-z])\\w*(?=[^\\w\\d\\.\\:])', 0, 0, 0, undef, 0, '#pop', 'Constant')) {
692 # String => '[A-Z]+_*([0-9]|[a-z])\w*'
693 # attribute => 'Constant'
696 if ($self->testRegExpr($text, '[A-Z]+_*([0-9]|[a-z])\\w*', 0, 0, 0, undef, 0, '#stay', 'Constant')) {
699 # String => '[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])'
700 # attribute => 'Constant Value'
703 if ($self->testRegExpr($text, '[_A-Z][_A-Z0-9]*(?=[^\\w\\d\\.\\:])', 0, 0, 0, undef, 0, '#pop', 'Constant Value')) {
706 # String => '[_A-Z][_A-Z0-9]*'
707 # attribute => 'Constant Value'
710 if ($self->testRegExpr($text, '[_A-Z][_A-Z0-9]*', 0, 0, 0, undef, 0, '#stay', 'Constant Value')) {
713 # attribute => 'Operator'
717 # type => 'Detect2Chars'
718 if ($self->testDetect2Chars($text, ':', ':', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
721 # attribute => 'Member'
724 # type => 'DetectChar'
725 if ($self->testDetectChar($text, '.', 0, 0, 0, undef, 0, '#stay', 'Member')) {
728 # String => '=+-*/%|&[]{}~'
729 # attribute => 'Operator'
732 if ($self->testAnyChar($text, '=+-*/%|&[]{}~', 0, 0, undef, 0, '#pop', 'Operator')) {
735 # attribute => 'Comment'
738 # type => 'DetectChar'
739 if ($self->testDetectChar($text, '#', 0, 0, 0, undef, 0, '#pop', 'Comment')) {
743 # attribute => 'Normal Text'
746 if ($self->testAnyChar($text, '()\\', 0, 0, undef, 0, '#pop', 'Normal Text')) {
750 # attribute => 'Member'
753 if ($self->testRegExpr($text, '\\W', 0, 0, 0, undef, 0, '#pop', 'Member')) {
760 my ($self, $text) = @_;
761 # attribute => 'Normal Text'
762 # context => 'Line Continue'
763 # type => 'LineContinue'
764 if ($self->testLineContinue($text, 0, undef, 0, 'Line Continue', 'Normal Text')) {
767 # String => '__END__$'
768 # attribute => 'Keyword'
772 if ($self->testRegExpr($text, '__END__$', 0, 0, 0, 0, 0, 'DATA', 'Keyword')) {
776 # attribute => 'Keyword'
780 if ($self->testRegExpr($text, '#!\\/.*', 0, 0, 0, 0, 0, '#stay', 'Keyword')) {
783 # String => '(\=|\(|\[|\{)\s*(if|unless|while|until)\b'
784 # attribute => 'Keyword'
785 # beginRegion => 'def block'
788 if ($self->testRegExpr($text, '(\\=|\\(|\\[|\\{)\\s*(if|unless|while|until)\\b', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
791 # String => '(while|until)\b(?!.*\bdo\b)'
792 # attribute => 'Keyword'
793 # beginRegion => 'def block'
795 # firstNonSpace => 'true'
797 if ($self->testRegExpr($text, '(while|until)\\b(?!.*\\bdo\\b)', 0, 0, 0, undef, 1, '#stay', 'Keyword')) {
800 # String => '\;\s*(while|until)\b(?!.*\bdo\b)'
801 # attribute => 'Keyword'
802 # beginRegion => 'def block'
805 if ($self->testRegExpr($text, '\\;\\s*(while|until)\\b(?!.*\\bdo\\b)', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
808 # String => '(if|unless)\b'
809 # attribute => 'Keyword'
810 # beginRegion => 'def block'
812 # firstNonSpace => 'true'
814 if ($self->testRegExpr($text, '(if|unless)\\b', 0, 0, 0, undef, 1, '#stay', 'Keyword')) {
817 # String => '\;\s*(if|unless)\b'
818 # attribute => 'Keyword'
819 # beginRegion => 'def block'
822 if ($self->testRegExpr($text, '\\;\\s*(if|unless)\\b', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
825 # String => '\bclass\b'
826 # attribute => 'Keyword'
827 # beginRegion => 'def block'
830 if ($self->testRegExpr($text, '\\bclass\\b', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
833 # String => '\bmodule\b'
834 # attribute => 'Keyword'
835 # beginRegion => 'def block'
838 if ($self->testRegExpr($text, '\\bmodule\\b', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
841 # String => '\bbegin\b'
842 # attribute => 'Keyword'
843 # beginRegion => 'def block'
846 if ($self->testRegExpr($text, '\\bbegin\\b', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
849 # String => '\bfor\b(?!.*\bdo\b)'
850 # attribute => 'Keyword'
851 # beginRegion => 'def block'
854 if ($self->testRegExpr($text, '\\bfor\\b(?!.*\\bdo\\b)', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
857 # String => '\bcase\b'
858 # attribute => 'Keyword'
859 # beginRegion => 'def block'
862 if ($self->testRegExpr($text, '\\bcase\\b', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
866 # attribute => 'Keyword'
867 # beginRegion => 'def block'
870 if ($self->testRegExpr($text, '\\bdo\\b', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
873 # String => '\bdef\b'
874 # attribute => 'Keyword'
875 # beginRegion => 'def block'
878 if ($self->testRegExpr($text, '\\bdef\\b', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
881 # String => '\bend\b'
882 # attribute => 'Keyword'
884 # endRegion => 'def block'
886 if ($self->testRegExpr($text, '\\bend\\b', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
889 # String => '(\b|^\s*)(else|elsif|rescue|ensure)(\s+|$)'
890 # attribute => 'Keyword'
891 # beginRegion => 'def block'
893 # endRegion => 'def block'
895 if ($self->testRegExpr($text, '(\\b|^\\s*)(else|elsif|rescue|ensure)(\\s+|$)', 0, 0, 0, undef, 0, '#stay', 'Keyword')) {
899 # attribute => 'Operator'
901 # type => 'StringDetect'
902 if ($self->testStringDetect($text, '...', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
905 # attribute => 'Operator'
909 # type => 'Detect2Chars'
910 if ($self->testDetect2Chars($text, '.', '.', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
913 # String => '\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)'
914 # attribute => 'Message'
917 if ($self->testRegExpr($text, '\\.[_a-z][_a-zA-Z0-9]*(\\?|\\!|\\b)', 0, 0, 0, undef, 0, '#stay', 'Message')) {
920 # String => '\s\?(\\M\-)?(\\C\-)?\\?\S'
924 if ($self->testRegExpr($text, '\\s\\?(\\\\M\\-)?(\\\\C\\-)?\\\\?\\S', 0, 0, 0, undef, 0, '#stay', 'Dec')) {
927 # String => 'keywords'
928 # attribute => 'Keyword'
931 if ($self->testKeyword($text, 'keywords', 0, undef, 0, '#stay', 'Keyword')) {
934 # String => 'attribute-definitions'
935 # attribute => 'Attribute Definition'
938 if ($self->testKeyword($text, 'attribute-definitions', 0, undef, 0, '#stay', 'Attribute Definition')) {
941 # String => 'access-control'
942 # attribute => 'Access Control'
945 if ($self->testKeyword($text, 'access-control', 0, undef, 0, '#stay', 'Access Control')) {
948 # String => 'definitions'
949 # attribute => 'Definition'
952 if ($self->testKeyword($text, 'definitions', 0, undef, 0, '#stay', 'Definition')) {
955 # String => 'pseudo-variables'
956 # attribute => 'Pseudo variable'
959 if ($self->testKeyword($text, 'pseudo-variables', 0, undef, 0, '#stay', 'Pseudo variable')) {
962 # String => 'default-globals'
963 # attribute => 'Default globals'
966 if ($self->testKeyword($text, 'default-globals', 0, undef, 0, '#stay', 'Default globals')) {
969 # String => 'kernel-methods'
970 # attribute => 'Kernel methods'
973 if ($self->testKeyword($text, 'kernel-methods', 0, undef, 0, '#stay', 'Kernel methods')) {
976 # String => '\$[a-zA-Z_0-9]+'
977 # attribute => 'Global Variable'
980 if ($self->testRegExpr($text, '\\$[a-zA-Z_0-9]+', 0, 0, 0, undef, 0, '#stay', 'Global Variable')) {
983 # String => '\$\-[a-zA-z_]\b'
984 # attribute => 'Global Variable'
987 if ($self->testRegExpr($text, '\\$\\-[a-zA-z_]\\b', 0, 0, 0, undef, 0, '#stay', 'Global Variable')) {
990 # String => '\$[\d_*`\!:?'/\\\-\&]'
991 # attribute => 'Default globals'
994 if ($self->testRegExpr($text, '\\$[\\d_*`\\!:?\'/\\\\\\-\\&]', 0, 0, 0, undef, 0, '#stay', 'Default globals')) {
997 # String => '\b[_A-Z]+[A-Z_0-9]+\b'
998 # attribute => 'Global Constant'
1001 if ($self->testRegExpr($text, '\\b[_A-Z]+[A-Z_0-9]+\\b', 0, 0, 0, undef, 0, '#stay', 'Global Constant')) {
1004 # String => '\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b'
1005 # attribute => 'Constant'
1006 # context => '#stay'
1008 if ($self->testRegExpr($text, '\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\b', 0, 0, 0, undef, 0, '#stay', 'Constant')) {
1011 # String => '\b\-?0[xX][_0-9a-fA-F]+'
1012 # attribute => 'Hex'
1013 # context => '#stay'
1015 if ($self->testRegExpr($text, '\\b\\-?0[xX][_0-9a-fA-F]+', 0, 0, 0, undef, 0, '#stay', 'Hex')) {
1018 # String => '\b\-?0[bB][_01]+'
1019 # attribute => 'Bin'
1020 # context => '#stay'
1022 if ($self->testRegExpr($text, '\\b\\-?0[bB][_01]+', 0, 0, 0, undef, 0, '#stay', 'Bin')) {
1025 # String => '\b\-?0[1-7][_0-7]*'
1026 # attribute => 'Octal'
1027 # context => '#stay'
1029 if ($self->testRegExpr($text, '\\b\\-?0[1-7][_0-7]*', 0, 0, 0, undef, 0, '#stay', 'Octal')) {
1032 # String => '\b\-?[0-9][0-9_]*\.[0-9][0-9_]*([eE]\-?[1-9][0-9]*(\.[0-9]*)?)?'
1033 # attribute => 'Float'
1034 # context => '#stay'
1036 if ($self->testRegExpr($text, '\\b\\-?[0-9][0-9_]*\\.[0-9][0-9_]*([eE]\\-?[1-9][0-9]*(\\.[0-9]*)?)?', 0, 0, 0, undef, 0, '#stay', 'Float')) {
1039 # String => '\b\-?[1-9][0-9_]*\b'
1040 # attribute => 'Dec'
1041 # context => '#stay'
1043 if ($self->testRegExpr($text, '\\b\\-?[1-9][0-9_]*\\b', 0, 0, 0, undef, 0, '#stay', 'Dec')) {
1046 # attribute => 'Dec'
1047 # context => '#stay'
1049 if ($self->testInt($text, 0, undef, 0, '#stay', 'Dec')) {
1052 # attribute => 'Char'
1053 # context => '#stay'
1055 if ($self->testHlCChar($text, 0, undef, 0, '#stay', 'Char')) {
1058 # String => '=begin'
1059 # attribute => 'Blockcomment'
1060 # beginRegion => 'comment block'
1062 # context => 'Embedded documentation'
1063 # type => 'StringDetect'
1064 if ($self->testStringDetect($text, '=begin', 0, 0, 0, 0, 0, 'Embedded documentation', 'Blockcomment')) {
1067 # String => '\s*<<-(?=\w+|["'])'
1068 # attribute => 'Operator'
1069 # beginRegion => 'HereDocument'
1070 # context => 'find_indented_heredoc'
1072 if ($self->testRegExpr($text, '\\s*<<-(?=\\w+|["\'])', 0, 0, 0, undef, 0, 'find_indented_heredoc', 'Operator')) {
1075 # String => '\s*<<(?=\w+|["'])'
1076 # attribute => 'Operator'
1077 # beginRegion => 'HereDocument'
1078 # context => 'find_heredoc'
1080 if ($self->testRegExpr($text, '\\s*<<(?=\\w+|["\'])', 0, 0, 0, undef, 0, 'find_heredoc', 'Operator')) {
1083 # attribute => 'Operator'
1085 # context => '#stay'
1086 # type => 'DetectChar'
1087 if ($self->testDetectChar($text, '.', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
1090 # attribute => 'Operator'
1093 # context => '#stay'
1094 # type => 'Detect2Chars'
1095 if ($self->testDetect2Chars($text, '&', '&', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
1098 # attribute => 'Operator'
1101 # context => '#stay'
1102 # type => 'Detect2Chars'
1103 if ($self->testDetect2Chars($text, '|', '|', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
1106 # String => '\s[\?\:\%/]\s'
1107 # attribute => 'Operator'
1108 # context => '#stay'
1110 if ($self->testRegExpr($text, '\\s[\\?\\:\\%/]\\s', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
1113 # String => '[|&<>\^\+*~\-=]+'
1114 # attribute => 'Operator'
1115 # context => '#stay'
1117 if ($self->testRegExpr($text, '[|&<>\\^\\+*~\\-=]+', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
1121 # attribute => 'Operator'
1122 # context => '#stay'
1124 if ($self->testRegExpr($text, '\\s!', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
1128 # attribute => 'Operator'
1129 # context => '#stay'
1130 # insensitive => '0'
1132 if ($self->testRegExpr($text, '/=\\s', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
1136 # attribute => 'Operator'
1137 # context => '#stay'
1138 # insensitive => '0'
1139 # type => 'StringDetect'
1140 if ($self->testStringDetect($text, '%=', 0, 0, 0, undef, 0, '#stay', 'Operator')) {
1143 # attribute => 'Operator'
1146 # context => 'Member Access'
1147 # type => 'Detect2Chars'
1148 if ($self->testDetect2Chars($text, ':', ':', 0, 0, 0, undef, 0, 'Member Access', 'Operator')) {
1151 # String => ':[a-zA-Z_][a-zA-Z0-9_]*'
1152 # attribute => 'Symbol'
1153 # context => '#stay'
1155 if ($self->testRegExpr($text, ':[a-zA-Z_][a-zA-Z0-9_]*', 0, 0, 0, undef, 0, '#stay', 'Symbol')) {
1158 # attribute => 'String'
1160 # context => 'Quoted String'
1161 # type => 'DetectChar'
1162 if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'Quoted String', 'String')) {
1165 # attribute => 'Raw String'
1167 # context => 'Apostrophed String'
1168 # type => 'DetectChar'
1169 if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, 'Apostrophed String', 'Raw String')) {
1172 # attribute => 'Command'
1174 # context => 'Command String'
1175 # type => 'DetectChar'
1176 if ($self->testDetectChar($text, '`', 0, 0, 0, undef, 0, 'Command String', 'Command')) {
1180 # attribute => 'Normal Text'
1181 # context => '#stay'
1182 # type => 'StringDetect'
1183 if ($self->testStringDetect($text, '?#', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
1186 # String => '#\s*BEGIN.*$'
1187 # attribute => 'Comment'
1188 # beginRegion => 'marker'
1190 # context => '#stay'
1192 if ($self->testRegExpr($text, '#\\s*BEGIN.*$', 0, 0, 0, 0, 0, '#stay', 'Comment')) {
1195 # String => '#\s*END.*$'
1196 # attribute => 'Comment'
1198 # context => '#stay'
1199 # endRegion => 'marker'
1201 if ($self->testRegExpr($text, '#\\s*END.*$', 0, 0, 0, 0, 0, '#stay', 'Comment')) {
1205 # attribute => 'Comment'
1206 # context => 'Comment Line'
1207 # firstNonSpace => 'true'
1209 if ($self->testRegExpr($text, '#', 0, 0, 0, undef, 1, 'Comment Line', 'Comment')) {
1213 # attribute => 'Comment'
1214 # context => 'General Comment'
1216 if ($self->testRegExpr($text, '\\s#', 0, 0, 0, undef, 0, 'General Comment', 'Comment')) {
1219 # String => '[\[\]]+'
1220 # attribute => 'Delimiter'
1221 # context => '#stay'
1223 if ($self->testRegExpr($text, '[\\[\\]]+', 0, 0, 0, undef, 0, '#stay', 'Delimiter')) {
1226 # attribute => 'Delimiter'
1227 # beginRegion => 'def block'
1229 # context => '#stay'
1230 # type => 'DetectChar'
1231 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, '#stay', 'Delimiter')) {
1234 # attribute => 'Delimiter'
1236 # context => '#stay'
1237 # endRegion => 'def block'
1238 # type => 'DetectChar'
1239 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#stay', 'Delimiter')) {
1242 # String => '@[a-zA-Z_0-9]+'
1243 # attribute => 'Instance Variable'
1244 # context => '#stay'
1246 if ($self->testRegExpr($text, '@[a-zA-Z_0-9]+', 0, 0, 0, undef, 0, '#stay', 'Instance Variable')) {
1249 # String => '@@[a-zA-Z_0-9]+'
1250 # attribute => 'Class Variable'
1251 # context => '#stay'
1253 if ($self->testRegExpr($text, '@@[a-zA-Z_0-9]+', 0, 0, 0, undef, 0, '#stay', 'Class Variable')) {
1256 # attribute => 'Regular Expression'
1258 # context => 'RegEx 1'
1259 # type => 'DetectChar'
1260 if ($self->testDetectChar($text, '/', 0, 0, 0, undef, 0, 'RegEx 1', 'Regular Expression')) {
1263 # String => '\s*[%](?=[Qqxw]?[^\s])'
1264 # attribute => 'GDL input'
1265 # beginRegion => 'GdlInput'
1266 # context => 'find_gdl_input'
1268 if ($self->testRegExpr($text, '\\s*[%](?=[Qqxw]?[^\\s])', 0, 0, 0, undef, 0, 'find_gdl_input', 'GDL input')) {
1274 sub parseQuotedString {
1275 my ($self, $text) = @_;
1277 # attribute => 'String'
1278 # context => '#stay'
1279 # type => 'StringDetect'
1280 if ($self->testStringDetect($text, '\\\\', 0, 0, 0, undef, 0, '#stay', 'String')) {
1284 # attribute => 'String'
1285 # context => '#stay'
1287 if ($self->testRegExpr($text, '\\\\\\"', 0, 0, 0, undef, 0, '#stay', 'String')) {
1290 # String => '#@{1,2}'
1291 # attribute => 'Substitution'
1292 # context => 'Short Subst'
1294 if ($self->testRegExpr($text, '#@{1,2}', 0, 0, 0, undef, 0, 'Short Subst', 'Substitution')) {
1297 # attribute => 'Substitution'
1300 # context => 'Subst'
1301 # type => 'Detect2Chars'
1302 if ($self->testDetect2Chars($text, '#', '{', 0, 0, 0, undef, 0, 'Subst', 'Substitution')) {
1305 # attribute => 'String'
1308 # type => 'DetectChar'
1309 if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop', 'String')) {
1315 sub parseRDocLabel {
1316 my ($self, $text) = @_;
1321 my ($self, $text) = @_;
1323 # attribute => 'Regular Expression'
1324 # context => '#stay'
1326 if ($self->testRegExpr($text, '\\\\\\/', 0, 0, 0, undef, 0, '#stay', 'Regular Expression')) {
1329 # String => '[^\\]$'
1330 # attribute => 'Regular Expression'
1333 if ($self->testRegExpr($text, '[^\\\\]$', 0, 0, 0, undef, 0, '#pop', 'Regular Expression')) {
1336 # String => '#@{1,2}'
1337 # attribute => 'Substitution'
1338 # context => 'Short Subst'
1340 if ($self->testRegExpr($text, '#@{1,2}', 0, 0, 0, undef, 0, 'Short Subst', 'Substitution')) {
1343 # attribute => 'Substitution'
1346 # context => 'Subst'
1347 # type => 'Detect2Chars'
1348 if ($self->testDetect2Chars($text, '#', '{', 0, 0, 0, undef, 0, 'Subst', 'Substitution')) {
1351 # String => '/[uiomxn]*'
1352 # attribute => 'Regular Expression'
1355 if ($self->testRegExpr($text, '/[uiomxn]*', 0, 0, 0, undef, 0, '#pop', 'Regular Expression')) {
1361 sub parseShortSubst {
1362 my ($self, $text) = @_;
1363 # String => '#@{1,2}'
1364 # attribute => 'Substitution'
1365 # context => '#stay'
1367 if ($self->testRegExpr($text, '#@{1,2}', 0, 0, 0, undef, 0, '#stay', 'Substitution')) {
1370 # String => '\w(?!\w)'
1371 # attribute => 'Substitution'
1374 if ($self->testRegExpr($text, '\\w(?!\\w)', 0, 0, 0, undef, 0, '#pop', 'Substitution')) {
1381 my ($self, $text) = @_;
1382 # attribute => 'Substitution'
1385 # type => 'DetectChar'
1386 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop', 'Substitution')) {
1389 # context => 'Normal'
1390 # type => 'IncludeRules'
1391 if ($self->includeRules('Normal', $text)) {
1397 sub parseapostrophed_indented_heredoc {
1398 my ($self, $text) = @_;
1400 # attribute => 'Keyword'
1401 # context => '#pop#pop'
1403 # endRegion => 'HereDocument'
1404 # firstNonSpace => 'true'
1406 if ($self->testRegExpr($text, '%1$', 0, 1, 0, undef, 1, '#pop#pop', 'Keyword')) {
1412 sub parseapostrophed_normal_heredoc {
1413 my ($self, $text) = @_;
1415 # attribute => 'Keyword'
1417 # context => '#pop#pop'
1419 # endRegion => 'HereDocument'
1421 if ($self->testRegExpr($text, '%1$', 0, 1, 0, 0, 0, '#pop#pop', 'Keyword')) {
1427 sub parseapostrophed_rules {
1428 my ($self, $text) = @_;
1429 # attribute => 'Raw String'
1432 # context => '#stay'
1433 # type => 'Detect2Chars'
1434 if ($self->testDetect2Chars($text, '\\', '\\', 0, 0, 0, undef, 0, '#stay', 'Raw String')) {
1440 sub parsedq_string_rules {
1441 my ($self, $text) = @_;
1442 # attribute => 'String'
1445 # context => '#stay'
1446 # type => 'Detect2Chars'
1447 if ($self->testDetect2Chars($text, '\\', '\\', 0, 0, 0, undef, 0, '#stay', 'String')) {
1450 # String => '#@{1,2}'
1451 # attribute => 'Substitution'
1452 # context => 'Short Subst'
1454 if ($self->testRegExpr($text, '#@{1,2}', 0, 0, 0, undef, 0, 'Short Subst', 'Substitution')) {
1457 # attribute => 'Substitution'
1460 # context => 'Subst'
1461 # type => 'Detect2Chars'
1462 if ($self->testDetect2Chars($text, '#', '{', 0, 0, 0, undef, 0, 'Subst', 'Substitution')) {
1468 sub parsefind_gdl_input {
1469 my ($self, $text) = @_;
1471 # attribute => 'GDL input'
1472 # context => 'gdl_token_array_1'
1474 if ($self->testRegExpr($text, 'w\\(', 0, 0, 0, undef, 0, 'gdl_token_array_1', 'GDL input')) {
1478 # attribute => 'GDL input'
1479 # context => 'gdl_token_array_2'
1481 if ($self->testRegExpr($text, 'w\\{', 0, 0, 0, undef, 0, 'gdl_token_array_2', 'GDL input')) {
1485 # attribute => 'GDL input'
1486 # context => 'gdl_token_array_3'
1488 if ($self->testRegExpr($text, 'w\\[', 0, 0, 0, undef, 0, 'gdl_token_array_3', 'GDL input')) {
1492 # attribute => 'GDL input'
1493 # context => 'gdl_token_array_4'
1495 if ($self->testRegExpr($text, 'w<', 0, 0, 0, undef, 0, 'gdl_token_array_4', 'GDL input')) {
1498 # String => 'w([^\s\w])'
1499 # attribute => 'GDL input'
1500 # context => 'gdl_token_array_5'
1502 if ($self->testRegExpr($text, 'w([^\\s\\w])', 0, 0, 0, undef, 0, 'gdl_token_array_5', 'GDL input')) {
1506 # attribute => 'GDL input'
1507 # context => 'gdl_apostrophed_1'
1509 if ($self->testRegExpr($text, 'q\\(', 0, 0, 0, undef, 0, 'gdl_apostrophed_1', 'GDL input')) {
1513 # attribute => 'GDL input'
1514 # context => 'gdl_apostrophed_2'
1516 if ($self->testRegExpr($text, 'q\\{', 0, 0, 0, undef, 0, 'gdl_apostrophed_2', 'GDL input')) {
1520 # attribute => 'GDL input'
1521 # context => 'gdl_apostrophed_3'
1523 if ($self->testRegExpr($text, 'q\\[', 0, 0, 0, undef, 0, 'gdl_apostrophed_3', 'GDL input')) {
1527 # attribute => 'GDL input'
1528 # context => 'gdl_apostrophed_4'
1530 if ($self->testRegExpr($text, 'q<', 0, 0, 0, undef, 0, 'gdl_apostrophed_4', 'GDL input')) {
1533 # String => 'q([^\s\w])'
1534 # attribute => 'GDL input'
1535 # context => 'gdl_apostrophed_5'
1537 if ($self->testRegExpr($text, 'q([^\\s\\w])', 0, 0, 0, undef, 0, 'gdl_apostrophed_5', 'GDL input')) {
1541 # attribute => 'GDL input'
1542 # context => 'gdl_shell_command_1'
1544 if ($self->testRegExpr($text, 'x\\(', 0, 0, 0, undef, 0, 'gdl_shell_command_1', 'GDL input')) {
1548 # attribute => 'GDL input'
1549 # context => 'gdl_shell_command_2'
1551 if ($self->testRegExpr($text, 'x\\{', 0, 0, 0, undef, 0, 'gdl_shell_command_2', 'GDL input')) {
1555 # attribute => 'GDL input'
1556 # context => 'gdl_shell_command_3'
1558 if ($self->testRegExpr($text, 'x\\[', 0, 0, 0, undef, 0, 'gdl_shell_command_3', 'GDL input')) {
1562 # attribute => 'GDL input'
1563 # context => 'gdl_shell_command_4'
1565 if ($self->testRegExpr($text, 'x<', 0, 0, 0, undef, 0, 'gdl_shell_command_4', 'GDL input')) {
1568 # String => 'x([^\s\w])'
1569 # attribute => 'GDL input'
1570 # context => 'gdl_shell_command_5'
1572 if ($self->testRegExpr($text, 'x([^\\s\\w])', 0, 0, 0, undef, 0, 'gdl_shell_command_5', 'GDL input')) {
1576 # attribute => 'GDL input'
1577 # context => 'gdl_regexpr_1'
1579 if ($self->testRegExpr($text, 'r\\(', 0, 0, 0, undef, 0, 'gdl_regexpr_1', 'GDL input')) {
1583 # attribute => 'GDL input'
1584 # context => 'gdl_regexpr_2'
1586 if ($self->testRegExpr($text, 'r\\{', 0, 0, 0, undef, 0, 'gdl_regexpr_2', 'GDL input')) {
1590 # attribute => 'GDL input'
1591 # context => 'gdl_regexpr_3'
1593 if ($self->testRegExpr($text, 'r\\[', 0, 0, 0, undef, 0, 'gdl_regexpr_3', 'GDL input')) {
1597 # attribute => 'GDL input'
1598 # context => 'gdl_regexpr_4'
1600 if ($self->testRegExpr($text, 'r<', 0, 0, 0, undef, 0, 'gdl_regexpr_4', 'GDL input')) {
1603 # String => 'r([^\s\w])'
1604 # attribute => 'GDL input'
1605 # context => 'gdl_regexpr_5'
1607 if ($self->testRegExpr($text, 'r([^\\s\\w])', 0, 0, 0, undef, 0, 'gdl_regexpr_5', 'GDL input')) {
1611 # attribute => 'GDL input'
1612 # context => 'gdl_dq_string_1'
1614 if ($self->testRegExpr($text, 'Q?\\(', 0, 0, 0, undef, 0, 'gdl_dq_string_1', 'GDL input')) {
1618 # attribute => 'GDL input'
1619 # context => 'gdl_dq_string_2'
1621 if ($self->testRegExpr($text, 'Q?\\{', 0, 0, 0, undef, 0, 'gdl_dq_string_2', 'GDL input')) {
1625 # attribute => 'GDL input'
1626 # context => 'gdl_dq_string_3'
1628 if ($self->testRegExpr($text, 'Q?\\[', 0, 0, 0, undef, 0, 'gdl_dq_string_3', 'GDL input')) {
1632 # attribute => 'GDL input'
1633 # context => 'gdl_dq_string_4'
1635 if ($self->testRegExpr($text, 'Q?<', 0, 0, 0, undef, 0, 'gdl_dq_string_4', 'GDL input')) {
1638 # String => 'Q?([^\s\w])'
1639 # attribute => 'GDL input'
1640 # context => 'gdl_dq_string_5'
1642 if ($self->testRegExpr($text, 'Q?([^\\s\\w])', 0, 0, 0, undef, 0, 'gdl_dq_string_5', 'GDL input')) {
1648 sub parsefind_heredoc {
1649 my ($self, $text) = @_;
1650 # String => ''(\w+)''
1651 # attribute => 'Keyword'
1652 # context => 'apostrophed_normal_heredoc'
1654 if ($self->testRegExpr($text, '\'(\\w+)\'', 0, 0, 0, undef, 0, 'apostrophed_normal_heredoc', 'Keyword')) {
1657 # String => '"?(\w+)"?'
1658 # attribute => 'Keyword'
1659 # context => 'normal_heredoc'
1661 if ($self->testRegExpr($text, '"?(\\w+)"?', 0, 0, 0, undef, 0, 'normal_heredoc', 'Keyword')) {
1667 sub parsefind_indented_heredoc {
1668 my ($self, $text) = @_;
1669 # String => ''(\w+)''
1670 # attribute => 'Keyword'
1671 # context => 'apostrophed_indented_heredoc'
1673 if ($self->testRegExpr($text, '\'(\\w+)\'', 0, 0, 0, undef, 0, 'apostrophed_indented_heredoc', 'Keyword')) {
1676 # String => '"?(\w+)"?'
1677 # attribute => 'Keyword'
1678 # context => 'indented_heredoc'
1680 if ($self->testRegExpr($text, '"?(\\w+)"?', 0, 0, 0, undef, 0, 'indented_heredoc', 'Keyword')) {
1686 sub parsegdl_apostrophed_1 {
1687 my ($self, $text) = @_;
1688 # context => 'apostrophed_rules'
1689 # type => 'IncludeRules'
1690 if ($self->includeRules('apostrophed_rules', $text)) {
1693 # attribute => 'Raw String'
1696 # context => '#stay'
1697 # type => 'Detect2Chars'
1698 if ($self->testDetect2Chars($text, '\\', ')', 0, 0, 0, undef, 0, '#stay', 'Raw String')) {
1701 # attribute => 'Raw String'
1703 # context => 'gdl_apostrophed_1_nested'
1704 # type => 'DetectChar'
1705 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_apostrophed_1_nested', 'Raw String')) {
1708 # attribute => 'GDL input'
1710 # context => '#pop#pop'
1711 # endRegion => 'GdlInput'
1712 # type => 'DetectChar'
1713 if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
1719 sub parsegdl_apostrophed_1_nested {
1720 my ($self, $text) = @_;
1721 # context => 'apostrophed_rules'
1722 # type => 'IncludeRules'
1723 if ($self->includeRules('apostrophed_rules', $text)) {
1726 # attribute => 'Raw String'
1728 # context => 'gdl_apostrophed_1_nested'
1729 # type => 'DetectChar'
1730 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_apostrophed_1_nested', 'Raw String')) {
1733 # attribute => 'Raw String'
1736 # type => 'DetectChar'
1737 if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop', 'Raw String')) {
1743 sub parsegdl_apostrophed_2 {
1744 my ($self, $text) = @_;
1745 # context => 'apostrophed_rules'
1746 # type => 'IncludeRules'
1747 if ($self->includeRules('apostrophed_rules', $text)) {
1750 # attribute => 'Raw String'
1753 # context => '#stay'
1754 # type => 'Detect2Chars'
1755 if ($self->testDetect2Chars($text, '\\', '}', 0, 0, 0, undef, 0, '#stay', 'Raw String')) {
1758 # attribute => 'GDL input'
1760 # context => '#pop#pop'
1761 # endRegion => 'GdlInput'
1762 # type => 'DetectChar'
1763 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
1766 # attribute => 'Raw String'
1768 # context => 'gdl_apostrophed_2_nested'
1769 # type => 'DetectChar'
1770 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_apostrophed_2_nested', 'Raw String')) {
1776 sub parsegdl_apostrophed_2_nested {
1777 my ($self, $text) = @_;
1778 # context => 'apostrophed_rules'
1779 # type => 'IncludeRules'
1780 if ($self->includeRules('apostrophed_rules', $text)) {
1783 # attribute => 'Raw String'
1785 # context => 'gdl_apostrophed_2_nested'
1786 # type => 'DetectChar'
1787 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_apostrophed_2_nested', 'Raw String')) {
1790 # attribute => 'Raw String'
1793 # type => 'DetectChar'
1794 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop', 'Raw String')) {
1800 sub parsegdl_apostrophed_3 {
1801 my ($self, $text) = @_;
1802 # context => 'apostrophed_rules'
1803 # type => 'IncludeRules'
1804 if ($self->includeRules('apostrophed_rules', $text)) {
1807 # attribute => 'Raw String'
1810 # context => '#stay'
1811 # type => 'Detect2Chars'
1812 if ($self->testDetect2Chars($text, '\\', ']', 0, 0, 0, undef, 0, '#stay', 'Raw String')) {
1815 # attribute => 'Raw String'
1817 # context => 'gdl_apostrophed_3_nested'
1818 # type => 'DetectChar'
1819 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_apostrophed_3_nested', 'Raw String')) {
1822 # attribute => 'GDL input'
1824 # context => '#pop#pop'
1825 # endRegion => 'GdlInput'
1826 # type => 'DetectChar'
1827 if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
1833 sub parsegdl_apostrophed_3_nested {
1834 my ($self, $text) = @_;
1835 # context => 'apostrophed_rules'
1836 # type => 'IncludeRules'
1837 if ($self->includeRules('apostrophed_rules', $text)) {
1840 # attribute => 'Raw String'
1842 # context => 'gdl_apostrophed_3_nested'
1843 # type => 'DetectChar'
1844 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_apostrophed_3_nested', 'Raw String')) {
1847 # attribute => 'Raw String'
1850 # type => 'DetectChar'
1851 if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop', 'Raw String')) {
1857 sub parsegdl_apostrophed_4 {
1858 my ($self, $text) = @_;
1859 # context => 'apostrophed_rules'
1860 # type => 'IncludeRules'
1861 if ($self->includeRules('apostrophed_rules', $text)) {
1864 # attribute => 'Raw String'
1867 # context => '#stay'
1868 # type => 'Detect2Chars'
1869 if ($self->testDetect2Chars($text, '\\', '>', 0, 0, 0, undef, 0, '#stay', 'Raw String')) {
1872 # attribute => 'Raw String'
1874 # context => 'gdl_apostrophed_4_nested'
1875 # type => 'DetectChar'
1876 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_apostrophed_4_nested', 'Raw String')) {
1879 # attribute => 'GDL input'
1881 # context => '#pop#pop'
1882 # endRegion => 'GdlInput'
1883 # type => 'DetectChar'
1884 if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
1890 sub parsegdl_apostrophed_4_nested {
1891 my ($self, $text) = @_;
1892 # context => 'apostrophed_rules'
1893 # type => 'IncludeRules'
1894 if ($self->includeRules('apostrophed_rules', $text)) {
1897 # attribute => 'Raw String'
1899 # context => 'gdl_apostrophed_4_nested'
1900 # type => 'DetectChar'
1901 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_apostrophed_4_nested', 'Raw String')) {
1904 # attribute => 'Raw String'
1907 # type => 'DetectChar'
1908 if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'Raw String')) {
1914 sub parsegdl_apostrophed_5 {
1915 my ($self, $text) = @_;
1916 # context => 'apostrophed_rules'
1917 # type => 'IncludeRules'
1918 if ($self->includeRules('apostrophed_rules', $text)) {
1922 # attribute => 'Raw String'
1923 # context => '#stay'
1926 if ($self->testRegExpr($text, '\\\\%1', 0, 1, 0, undef, 0, '#stay', 'Raw String')) {
1930 # attribute => 'GDL input'
1931 # context => '#pop#pop'
1933 # endRegion => 'GdlInput'
1935 if ($self->testRegExpr($text, '\\s*%1', 0, 1, 0, undef, 0, '#pop#pop', 'GDL input')) {
1941 sub parsegdl_dq_string_1 {
1942 my ($self, $text) = @_;
1943 # context => 'dq_string_rules'
1944 # type => 'IncludeRules'
1945 if ($self->includeRules('dq_string_rules', $text)) {
1948 # attribute => 'String'
1951 # context => '#stay'
1952 # type => 'Detect2Chars'
1953 if ($self->testDetect2Chars($text, '\\', ')', 0, 0, 0, undef, 0, '#stay', 'String')) {
1956 # attribute => 'String'
1958 # context => 'gdl_dq_string_1_nested'
1959 # type => 'DetectChar'
1960 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_dq_string_1_nested', 'String')) {
1963 # attribute => 'GDL input'
1965 # context => '#pop#pop'
1966 # endRegion => 'GdlInput'
1967 # type => 'DetectChar'
1968 if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
1974 sub parsegdl_dq_string_1_nested {
1975 my ($self, $text) = @_;
1976 # context => 'dq_string_rules'
1977 # type => 'IncludeRules'
1978 if ($self->includeRules('dq_string_rules', $text)) {
1981 # attribute => 'String'
1983 # context => 'gdl_dq_string_1_nested'
1984 # type => 'DetectChar'
1985 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_dq_string_1_nested', 'String')) {
1988 # attribute => 'String'
1991 # type => 'DetectChar'
1992 if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop', 'String')) {
1998 sub parsegdl_dq_string_2 {
1999 my ($self, $text) = @_;
2000 # context => 'dq_string_rules'
2001 # type => 'IncludeRules'
2002 if ($self->includeRules('dq_string_rules', $text)) {
2005 # attribute => 'String'
2008 # context => '#stay'
2009 # type => 'Detect2Chars'
2010 if ($self->testDetect2Chars($text, '\\', '}', 0, 0, 0, undef, 0, '#stay', 'String')) {
2013 # attribute => 'GDL input'
2015 # context => '#pop#pop'
2016 # endRegion => 'GdlInput'
2017 # type => 'DetectChar'
2018 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2021 # attribute => 'String'
2023 # context => 'gdl_dq_string_2_nested'
2024 # type => 'DetectChar'
2025 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_dq_string_2_nested', 'String')) {
2031 sub parsegdl_dq_string_2_nested {
2032 my ($self, $text) = @_;
2033 # attribute => 'String'
2035 # context => 'gdl_dq_string_2_nested'
2036 # type => 'DetectChar'
2037 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_dq_string_2_nested', 'String')) {
2040 # attribute => 'String'
2043 # type => 'DetectChar'
2044 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop', 'String')) {
2047 # context => 'dq_string_rules'
2048 # type => 'IncludeRules'
2049 if ($self->includeRules('dq_string_rules', $text)) {
2055 sub parsegdl_dq_string_3 {
2056 my ($self, $text) = @_;
2057 # context => 'dq_string_rules'
2058 # type => 'IncludeRules'
2059 if ($self->includeRules('dq_string_rules', $text)) {
2062 # attribute => 'String'
2065 # context => '#stay'
2066 # type => 'Detect2Chars'
2067 if ($self->testDetect2Chars($text, '\\', ']', 0, 0, 0, undef, 0, '#stay', 'String')) {
2070 # attribute => 'String'
2072 # context => 'gdl_dq_string_3_nested'
2073 # type => 'DetectChar'
2074 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_dq_string_3_nested', 'String')) {
2077 # attribute => 'GDL input'
2079 # context => '#pop#pop'
2080 # endRegion => 'GdlInput'
2081 # type => 'DetectChar'
2082 if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2088 sub parsegdl_dq_string_3_nested {
2089 my ($self, $text) = @_;
2090 # attribute => 'String'
2092 # context => 'gdl_dq_string_3_nested'
2093 # type => 'DetectChar'
2094 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_dq_string_3_nested', 'String')) {
2097 # attribute => 'String'
2100 # type => 'DetectChar'
2101 if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop', 'String')) {
2104 # context => 'dq_string_rules'
2105 # type => 'IncludeRules'
2106 if ($self->includeRules('dq_string_rules', $text)) {
2112 sub parsegdl_dq_string_4 {
2113 my ($self, $text) = @_;
2114 # context => 'dq_string_rules'
2115 # type => 'IncludeRules'
2116 if ($self->includeRules('dq_string_rules', $text)) {
2119 # attribute => 'String'
2122 # context => '#stay'
2123 # type => 'Detect2Chars'
2124 if ($self->testDetect2Chars($text, '\\', '>', 0, 0, 0, undef, 0, '#stay', 'String')) {
2127 # attribute => 'String'
2129 # context => 'gdl_dq_string_4_nested'
2130 # type => 'DetectChar'
2131 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_dq_string_4_nested', 'String')) {
2134 # attribute => 'GDL input'
2136 # context => '#pop#pop'
2137 # endRegion => 'GdlInput'
2138 # type => 'DetectChar'
2139 if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2145 sub parsegdl_dq_string_4_nested {
2146 my ($self, $text) = @_;
2147 # attribute => 'String'
2149 # context => 'gdl_dq_string_4_nested'
2150 # type => 'DetectChar'
2151 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_dq_string_4_nested', 'String')) {
2154 # attribute => 'String'
2157 # type => 'DetectChar'
2158 if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'String')) {
2161 # context => 'dq_string_rules'
2162 # type => 'IncludeRules'
2163 if ($self->includeRules('dq_string_rules', $text)) {
2169 sub parsegdl_dq_string_5 {
2170 my ($self, $text) = @_;
2171 # context => 'dq_string_rules'
2172 # type => 'IncludeRules'
2173 if ($self->includeRules('dq_string_rules', $text)) {
2177 # attribute => 'String'
2178 # context => '#stay'
2181 if ($self->testRegExpr($text, '\\\\%1', 0, 1, 0, undef, 0, '#stay', 'String')) {
2185 # attribute => 'GDL input'
2186 # context => '#pop#pop'
2188 # endRegion => 'GdlInput'
2190 if ($self->testRegExpr($text, '\\s*%1', 0, 1, 0, undef, 0, '#pop#pop', 'GDL input')) {
2196 sub parsegdl_regexpr_1 {
2197 my ($self, $text) = @_;
2198 # context => 'regexpr_rules'
2199 # type => 'IncludeRules'
2200 if ($self->includeRules('regexpr_rules', $text)) {
2203 # attribute => 'Regular Expression'
2206 # context => '#stay'
2207 # type => 'Detect2Chars'
2208 if ($self->testDetect2Chars($text, '\\', ')', 0, 0, 0, undef, 0, '#stay', 'Regular Expression')) {
2211 # attribute => 'Regular Expression'
2213 # context => 'gdl_regexpr_1_nested'
2214 # type => 'DetectChar'
2215 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_regexpr_1_nested', 'Regular Expression')) {
2218 # String => '\)[uiomxn]*'
2219 # attribute => 'GDL input'
2220 # context => '#pop#pop'
2221 # endRegion => 'GdlInput'
2223 if ($self->testRegExpr($text, '\\)[uiomxn]*', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2229 sub parsegdl_regexpr_1_nested {
2230 my ($self, $text) = @_;
2231 # context => 'regexpr_rules'
2232 # type => 'IncludeRules'
2233 if ($self->includeRules('regexpr_rules', $text)) {
2236 # attribute => 'Regular Expression'
2238 # context => 'gdl_regexpr_1_nested'
2239 # type => 'DetectChar'
2240 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_regexpr_1_nested', 'Regular Expression')) {
2243 # attribute => 'Regular Expression'
2246 # type => 'DetectChar'
2247 if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop', 'Regular Expression')) {
2253 sub parsegdl_regexpr_2 {
2254 my ($self, $text) = @_;
2255 # context => 'regexpr_rules'
2256 # type => 'IncludeRules'
2257 if ($self->includeRules('regexpr_rules', $text)) {
2260 # attribute => 'Regular Expression'
2263 # context => '#stay'
2264 # type => 'Detect2Chars'
2265 if ($self->testDetect2Chars($text, '\\', '}', 0, 0, 0, undef, 0, '#stay', 'Regular Expression')) {
2268 # String => '\}[uiomxn]*'
2269 # attribute => 'GDL input'
2270 # context => '#pop#pop'
2271 # endRegion => 'GdlInput'
2273 if ($self->testRegExpr($text, '\\}[uiomxn]*', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2276 # attribute => 'Regular Expression'
2278 # context => 'gdl_regexpr_2_nested'
2279 # type => 'DetectChar'
2280 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_regexpr_2_nested', 'Regular Expression')) {
2286 sub parsegdl_regexpr_2_nested {
2287 my ($self, $text) = @_;
2288 # context => 'regexpr_rules'
2289 # type => 'IncludeRules'
2290 if ($self->includeRules('regexpr_rules', $text)) {
2293 # attribute => 'Regular Expression'
2295 # context => 'gdl_regexpr_2_nested'
2296 # type => 'DetectChar'
2297 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_regexpr_2_nested', 'Regular Expression')) {
2300 # attribute => 'Regular Expression'
2303 # type => 'DetectChar'
2304 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop', 'Regular Expression')) {
2310 sub parsegdl_regexpr_3 {
2311 my ($self, $text) = @_;
2312 # context => 'regexpr_rules'
2313 # type => 'IncludeRules'
2314 if ($self->includeRules('regexpr_rules', $text)) {
2317 # attribute => 'Regular Expression'
2320 # context => '#stay'
2321 # type => 'Detect2Chars'
2322 if ($self->testDetect2Chars($text, '\\', ']', 0, 0, 0, undef, 0, '#stay', 'Regular Expression')) {
2325 # attribute => 'Regular Expression'
2327 # context => 'gdl_regexpr_3_nested'
2328 # type => 'DetectChar'
2329 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_regexpr_3_nested', 'Regular Expression')) {
2332 # String => '\][uiomxn]*'
2333 # attribute => 'GDL input'
2334 # context => '#pop#pop'
2335 # endRegion => 'GdlInput'
2337 if ($self->testRegExpr($text, '\\][uiomxn]*', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2343 sub parsegdl_regexpr_3_nested {
2344 my ($self, $text) = @_;
2345 # context => 'regexpr_rules'
2346 # type => 'IncludeRules'
2347 if ($self->includeRules('regexpr_rules', $text)) {
2350 # attribute => 'Regular Expression'
2352 # context => 'gdl_regexpr_3_nested'
2353 # type => 'DetectChar'
2354 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_regexpr_3_nested', 'Regular Expression')) {
2357 # attribute => 'Regular Expression'
2360 # type => 'DetectChar'
2361 if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop', 'Regular Expression')) {
2367 sub parsegdl_regexpr_4 {
2368 my ($self, $text) = @_;
2369 # context => 'regexpr_rules'
2370 # type => 'IncludeRules'
2371 if ($self->includeRules('regexpr_rules', $text)) {
2374 # attribute => 'Regular Expression'
2377 # context => '#stay'
2378 # type => 'Detect2Chars'
2379 if ($self->testDetect2Chars($text, '\\', '>', 0, 0, 0, undef, 0, '#stay', 'Regular Expression')) {
2382 # attribute => 'Regular Expression'
2384 # context => 'gdl_regexpr_4_nested'
2385 # type => 'DetectChar'
2386 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_regexpr_4_nested', 'Regular Expression')) {
2389 # String => '>[uiomxn]*'
2390 # attribute => 'GDL input'
2391 # context => '#pop#pop'
2392 # endRegion => 'GdlInput'
2394 if ($self->testRegExpr($text, '>[uiomxn]*', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2400 sub parsegdl_regexpr_4_nested {
2401 my ($self, $text) = @_;
2402 # context => 'regexpr_rules'
2403 # type => 'IncludeRules'
2404 if ($self->includeRules('regexpr_rules', $text)) {
2407 # attribute => 'Regular Expression'
2409 # context => 'gdl_regexpr_4_nested'
2410 # type => 'DetectChar'
2411 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_regexpr_4_nested', 'Regular Expression')) {
2414 # attribute => 'Regular Expression'
2417 # type => 'DetectChar'
2418 if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'Regular Expression')) {
2424 sub parsegdl_regexpr_5 {
2425 my ($self, $text) = @_;
2426 # context => 'regexpr_rules'
2427 # type => 'IncludeRules'
2428 if ($self->includeRules('regexpr_rules', $text)) {
2432 # attribute => 'Regular Expression'
2433 # context => '#stay'
2436 if ($self->testRegExpr($text, '\\\\%1', 0, 1, 0, undef, 0, '#stay', 'Regular Expression')) {
2439 # String => '\s*%1[uiomxn]*'
2440 # attribute => 'GDL input'
2441 # context => '#pop#pop'
2443 # endRegion => 'GdlInput'
2445 if ($self->testRegExpr($text, '\\s*%1[uiomxn]*', 0, 1, 0, undef, 0, '#pop#pop', 'GDL input')) {
2451 sub parsegdl_shell_command_1 {
2452 my ($self, $text) = @_;
2453 # context => 'shell_command_rules'
2454 # type => 'IncludeRules'
2455 if ($self->includeRules('shell_command_rules', $text)) {
2458 # attribute => 'Command'
2461 # context => '#stay'
2462 # type => 'Detect2Chars'
2463 if ($self->testDetect2Chars($text, '\\', ')', 0, 0, 0, undef, 0, '#stay', 'Command')) {
2466 # attribute => 'Command'
2468 # context => 'gdl_shell_command_1_nested'
2469 # type => 'DetectChar'
2470 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_shell_command_1_nested', 'Command')) {
2473 # attribute => 'GDL input'
2475 # context => '#pop#pop'
2476 # endRegion => 'GdlInput'
2477 # type => 'DetectChar'
2478 if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2484 sub parsegdl_shell_command_1_nested {
2485 my ($self, $text) = @_;
2486 # context => 'shell_command_rules'
2487 # type => 'IncludeRules'
2488 if ($self->includeRules('shell_command_rules', $text)) {
2491 # attribute => 'Command'
2493 # context => 'gdl_shell_command_1_nested'
2494 # type => 'DetectChar'
2495 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_shell_command_1_nested', 'Command')) {
2498 # attribute => 'Command'
2501 # type => 'DetectChar'
2502 if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop', 'Command')) {
2508 sub parsegdl_shell_command_2 {
2509 my ($self, $text) = @_;
2510 # context => 'shell_command_rules'
2511 # type => 'IncludeRules'
2512 if ($self->includeRules('shell_command_rules', $text)) {
2515 # attribute => 'Command'
2518 # context => '#stay'
2519 # type => 'Detect2Chars'
2520 if ($self->testDetect2Chars($text, '\\', '}', 0, 0, 0, undef, 0, '#stay', 'Command')) {
2523 # attribute => 'GDL input'
2525 # context => '#pop#pop'
2526 # endRegion => 'GdlInput'
2527 # type => 'DetectChar'
2528 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2531 # attribute => 'Command'
2533 # context => 'gdl_shell_command_2_nested'
2534 # type => 'DetectChar'
2535 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_shell_command_2_nested', 'Command')) {
2541 sub parsegdl_shell_command_2_nested {
2542 my ($self, $text) = @_;
2543 # context => 'shell_command_rules'
2544 # type => 'IncludeRules'
2545 if ($self->includeRules('shell_command_rules', $text)) {
2548 # attribute => 'Command'
2550 # context => 'gdl_shell_command_2_nested'
2551 # type => 'DetectChar'
2552 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_shell_command_2_nested', 'Command')) {
2555 # attribute => 'Command'
2558 # type => 'DetectChar'
2559 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop', 'Command')) {
2565 sub parsegdl_shell_command_3 {
2566 my ($self, $text) = @_;
2567 # context => 'shell_command_rules'
2568 # type => 'IncludeRules'
2569 if ($self->includeRules('shell_command_rules', $text)) {
2572 # attribute => 'Command'
2575 # context => '#stay'
2576 # type => 'Detect2Chars'
2577 if ($self->testDetect2Chars($text, '\\', ']', 0, 0, 0, undef, 0, '#stay', 'Command')) {
2580 # attribute => 'Command'
2582 # context => 'gdl_shell_command_3_nested'
2583 # type => 'DetectChar'
2584 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_shell_command_3_nested', 'Command')) {
2587 # attribute => 'GDL input'
2589 # context => '#pop#pop'
2590 # endRegion => 'GdlInput'
2591 # type => 'DetectChar'
2592 if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2598 sub parsegdl_shell_command_3_nested {
2599 my ($self, $text) = @_;
2600 # context => 'shell_command_rules'
2601 # type => 'IncludeRules'
2602 if ($self->includeRules('shell_command_rules', $text)) {
2605 # attribute => 'Command'
2607 # context => 'gdl_shell_command_3_nested'
2608 # type => 'DetectChar'
2609 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_shell_command_3_nested', 'Command')) {
2612 # attribute => 'Command'
2615 # type => 'DetectChar'
2616 if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop', 'Command')) {
2622 sub parsegdl_shell_command_4 {
2623 my ($self, $text) = @_;
2624 # context => 'shell_command_rules'
2625 # type => 'IncludeRules'
2626 if ($self->includeRules('shell_command_rules', $text)) {
2629 # attribute => 'Command'
2632 # context => '#stay'
2633 # type => 'Detect2Chars'
2634 if ($self->testDetect2Chars($text, '\\', '>', 0, 0, 0, undef, 0, '#stay', 'Command')) {
2637 # attribute => 'Command'
2639 # context => 'gdl_shell_command_4_nested'
2640 # type => 'DetectChar'
2641 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_shell_command_4_nested', 'Command')) {
2644 # attribute => 'GDL input'
2646 # context => '#pop#pop'
2647 # endRegion => 'GdlInput'
2648 # type => 'DetectChar'
2649 if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2655 sub parsegdl_shell_command_4_nested {
2656 my ($self, $text) = @_;
2657 # context => 'shell_command_rules'
2658 # type => 'IncludeRules'
2659 if ($self->includeRules('shell_command_rules', $text)) {
2662 # attribute => 'Command'
2664 # context => 'gdl_shell_command_4_nested'
2665 # type => 'DetectChar'
2666 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_shell_command_4_nested', 'Command')) {
2669 # attribute => 'Command'
2672 # type => 'DetectChar'
2673 if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'Command')) {
2679 sub parsegdl_shell_command_5 {
2680 my ($self, $text) = @_;
2681 # context => 'shell_command_rules'
2682 # type => 'IncludeRules'
2683 if ($self->includeRules('shell_command_rules', $text)) {
2687 # attribute => 'Command'
2688 # context => '#stay'
2691 if ($self->testRegExpr($text, '\\\\%1', 0, 1, 0, undef, 0, '#stay', 'Command')) {
2695 # attribute => 'GDL input'
2696 # context => '#pop#pop'
2698 # endRegion => 'GdlInput'
2700 if ($self->testRegExpr($text, '\\s*%1', 0, 1, 0, undef, 0, '#pop#pop', 'GDL input')) {
2706 sub parsegdl_token_array_1 {
2707 my ($self, $text) = @_;
2708 # context => 'token_array_rules'
2709 # type => 'IncludeRules'
2710 if ($self->includeRules('token_array_rules', $text)) {
2713 # attribute => 'String'
2716 # context => '#stay'
2717 # type => 'Detect2Chars'
2718 if ($self->testDetect2Chars($text, '\\', ')', 0, 0, 0, undef, 0, '#stay', 'String')) {
2721 # attribute => 'String'
2723 # context => 'gdl_token_array_1_nested'
2724 # type => 'DetectChar'
2725 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_token_array_1_nested', 'String')) {
2728 # attribute => 'GDL input'
2730 # context => '#pop#pop'
2731 # endRegion => 'GdlInput'
2732 # type => 'DetectChar'
2733 if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2739 sub parsegdl_token_array_1_nested {
2740 my ($self, $text) = @_;
2741 # context => 'token_array_rules'
2742 # type => 'IncludeRules'
2743 if ($self->includeRules('token_array_rules', $text)) {
2746 # attribute => 'String'
2748 # context => 'gdl_token_array_1_nested'
2749 # type => 'DetectChar'
2750 if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'gdl_token_array_1_nested', 'String')) {
2753 # attribute => 'String'
2756 # type => 'DetectChar'
2757 if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop', 'String')) {
2763 sub parsegdl_token_array_2 {
2764 my ($self, $text) = @_;
2765 # context => 'token_array_rules'
2766 # type => 'IncludeRules'
2767 if ($self->includeRules('token_array_rules', $text)) {
2770 # attribute => 'String'
2773 # context => '#stay'
2774 # type => 'Detect2Chars'
2775 if ($self->testDetect2Chars($text, '\\', '}', 0, 0, 0, undef, 0, '#stay', 'String')) {
2778 # attribute => 'GDL input'
2780 # context => '#pop#pop'
2781 # endRegion => 'GdlInput'
2782 # type => 'DetectChar'
2783 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2786 # attribute => 'String'
2788 # context => 'gdl_token_array_2_nested'
2789 # type => 'DetectChar'
2790 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_token_array_2_nested', 'String')) {
2796 sub parsegdl_token_array_2_nested {
2797 my ($self, $text) = @_;
2798 # context => 'token_array_rules'
2799 # type => 'IncludeRules'
2800 if ($self->includeRules('token_array_rules', $text)) {
2803 # attribute => 'String'
2805 # context => 'gdl_token_array_2_nested'
2806 # type => 'DetectChar'
2807 if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'gdl_token_array_2_nested', 'String')) {
2810 # attribute => 'String'
2813 # type => 'DetectChar'
2814 if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop', 'String')) {
2820 sub parsegdl_token_array_3 {
2821 my ($self, $text) = @_;
2822 # context => 'token_array_rules'
2823 # type => 'IncludeRules'
2824 if ($self->includeRules('token_array_rules', $text)) {
2827 # attribute => 'String'
2830 # context => '#stay'
2831 # type => 'Detect2Chars'
2832 if ($self->testDetect2Chars($text, '\\', ']', 0, 0, 0, undef, 0, '#stay', 'String')) {
2835 # attribute => 'String'
2837 # context => 'gdl_token_array_3_nested'
2838 # type => 'DetectChar'
2839 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_token_array_3_nested', 'String')) {
2842 # attribute => 'GDL input'
2844 # context => '#pop#pop'
2845 # endRegion => 'GdlInput'
2846 # type => 'DetectChar'
2847 if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2853 sub parsegdl_token_array_3_nested {
2854 my ($self, $text) = @_;
2855 # context => 'token_array_rules'
2856 # type => 'IncludeRules'
2857 if ($self->includeRules('token_array_rules', $text)) {
2860 # attribute => 'String'
2862 # context => 'gdl_token_array_3_nested'
2863 # type => 'DetectChar'
2864 if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'gdl_token_array_3_nested', 'String')) {
2867 # attribute => 'String'
2870 # type => 'DetectChar'
2871 if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop', 'String')) {
2877 sub parsegdl_token_array_4 {
2878 my ($self, $text) = @_;
2879 # context => 'token_array_rules'
2880 # type => 'IncludeRules'
2881 if ($self->includeRules('token_array_rules', $text)) {
2884 # attribute => 'String'
2887 # context => '#stay'
2888 # type => 'Detect2Chars'
2889 if ($self->testDetect2Chars($text, '\\', '>', 0, 0, 0, undef, 0, '#stay', 'String')) {
2892 # attribute => 'String'
2894 # context => 'gdl_token_array_4_nested'
2895 # type => 'DetectChar'
2896 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_token_array_4_nested', 'String')) {
2899 # attribute => 'GDL input'
2901 # context => '#pop#pop'
2902 # endRegion => 'GdlInput'
2903 # type => 'DetectChar'
2904 if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop#pop', 'GDL input')) {
2910 sub parsegdl_token_array_4_nested {
2911 my ($self, $text) = @_;
2912 # context => 'token_array_rules'
2913 # type => 'IncludeRules'
2914 if ($self->includeRules('token_array_rules', $text)) {
2917 # attribute => 'String'
2919 # context => 'gdl_token_array_4_nested'
2920 # type => 'DetectChar'
2921 if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'gdl_token_array_4_nested', 'String')) {
2924 # attribute => 'String'
2927 # type => 'DetectChar'
2928 if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'String')) {
2934 sub parsegdl_token_array_5 {
2935 my ($self, $text) = @_;
2936 # context => 'token_array_rules'
2937 # type => 'IncludeRules'
2938 if ($self->includeRules('token_array_rules', $text)) {
2942 # attribute => 'String'
2943 # context => '#stay'
2946 if ($self->testRegExpr($text, '\\\\%1', 0, 1, 0, undef, 0, '#stay', 'String')) {
2950 # attribute => 'GDL input'
2951 # context => '#pop#pop'
2953 # endRegion => 'GdlInput'
2955 if ($self->testRegExpr($text, '\\s*%1', 0, 1, 0, undef, 0, '#pop#pop', 'GDL input')) {
2961 sub parseheredoc_rules {
2962 my ($self, $text) = @_;
2963 # String => '#@{1,2}'
2964 # attribute => 'Substitution'
2965 # context => 'Short Subst'
2967 if ($self->testRegExpr($text, '#@{1,2}', 0, 0, 0, undef, 0, 'Short Subst', 'Substitution')) {
2970 # attribute => 'Substitution'
2973 # context => 'Subst'
2974 # type => 'Detect2Chars'
2975 if ($self->testDetect2Chars($text, '#', '{', 0, 0, 0, undef, 0, 'Subst', 'Substitution')) {
2981 sub parseindented_heredoc {
2982 my ($self, $text) = @_;
2984 # attribute => 'Keyword'
2985 # context => '#pop#pop'
2987 # endRegion => 'HereDocument'
2988 # firstNonSpace => 'true'
2990 if ($self->testRegExpr($text, '%1$', 0, 1, 0, undef, 1, '#pop#pop', 'Keyword')) {
2993 # context => 'heredoc_rules'
2994 # type => 'IncludeRules'
2995 if ($self->includeRules('heredoc_rules', $text)) {
3001 sub parsenormal_heredoc {
3002 my ($self, $text) = @_;
3004 # attribute => 'Keyword'
3006 # context => '#pop#pop'
3008 # endRegion => 'HereDocument'
3010 if ($self->testRegExpr($text, '%1$', 0, 1, 0, 0, 0, '#pop#pop', 'Keyword')) {
3013 # context => 'heredoc_rules'
3014 # type => 'IncludeRules'
3015 if ($self->includeRules('heredoc_rules', $text)) {
3021 sub parseregexpr_rules {
3022 my ($self, $text) = @_;
3023 # attribute => 'Regular Expression'
3026 # context => '#stay'
3027 # type => 'Detect2Chars'
3028 if ($self->testDetect2Chars($text, '\\', '\\', 0, 0, 0, undef, 0, '#stay', 'Regular Expression')) {
3031 # String => '#@{1,2}'
3032 # attribute => 'Substitution'
3033 # context => 'Short Subst'
3035 if ($self->testRegExpr($text, '#@{1,2}', 0, 0, 0, undef, 0, 'Short Subst', 'Substitution')) {
3038 # attribute => 'Substitution'
3041 # context => 'Subst'
3042 # type => 'Detect2Chars'
3043 if ($self->testDetect2Chars($text, '#', '{', 0, 0, 0, undef, 0, 'Subst', 'Substitution')) {
3049 sub parseshell_command_rules {
3050 my ($self, $text) = @_;
3051 # attribute => 'Command'
3054 # context => '#stay'
3055 # type => 'Detect2Chars'
3056 if ($self->testDetect2Chars($text, '\\', '\\', 0, 0, 0, undef, 0, '#stay', 'Command')) {
3059 # String => '#@{1,2}'
3060 # attribute => 'Substitution'
3061 # context => 'Short Subst'
3063 if ($self->testRegExpr($text, '#@{1,2}', 0, 0, 0, undef, 0, 'Short Subst', 'Substitution')) {
3066 # attribute => 'Substitution'
3069 # context => 'Subst'
3070 # type => 'Detect2Chars'
3071 if ($self->testDetect2Chars($text, '#', '{', 0, 0, 0, undef, 0, 'Subst', 'Substitution')) {
3077 sub parsetoken_array_rules {
3078 my ($self, $text) = @_;
3080 # attribute => 'String'
3081 # context => '#stay'
3082 # type => 'StringDetect'
3083 if ($self->testStringDetect($text, '\\\\', 0, 0, 0, undef, 0, '#stay', 'String')) {
3096 Syntax::Highlight::Engine::Kate::Ruby - a Plugin for Ruby syntax highlighting
3100 require Syntax::Highlight::Engine::Kate::Ruby;
3101 my $sh = new Syntax::Highlight::Engine::Kate::Ruby([
3106 Syntax::Highlight::Engine::Kate::Ruby is a plugin module that provides syntax highlighting
3107 for Ruby to the Syntax::Haghlight::Engine::Kate highlighting engine.
3109 This code is generated from the syntax definition files used
3110 by the Kate project.
3111 It works quite fine, but can use refinement and optimization.
3113 It inherits Syntax::Higlight::Engine::Kate::Template. See also there.
3119 Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
3125 Unknown. If you find any, please contact the author