File Coverage

blib/lib/Syntax/Highlight/Engine/Kate/CSS_PHP.pm
Criterion Covered Total %
statement 26 249 10.4
branch 0 182 0.0
condition 1 3 33.3
subroutine 4 25 16.0
pod 0 22 0.0
total 31 481 6.4


line stmt bran cond sub pod time code
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 'css-php.xml' file of the syntax highlight
6             # engine of the kate text editor (http://www.kate-editor.org
7              
8             #kate xml version 1.99
9             #kate version 2.4
10             #kate author Wilbert Berendsen (wilbert@kde.nl)
11             #generated: Sun Feb 3 22:02:04 2008, localtime
12              
13             package Syntax::Highlight::Engine::Kate::CSS_PHP;
14              
15             our $VERSION = '0.12';
16              
17 1     1   613 use strict;
  1         2  
  1         30  
18 1     1   6 use warnings;
  1         2  
  1         32  
19 1     1   5 use base('Syntax::Highlight::Engine::Kate::Template');
  1         2  
  1         2111  
20              
21             sub new {
22 1     1 0 777 my $proto = shift;
23 1   33     6 my $class = ref($proto) || $proto;
24 1         10 my $self = $class->SUPER::new(@_);
25 1         29 $self->attributes({
26             'Alert' => 'Alert',
27             'At Rule' => 'DecVal',
28             'Comment' => 'Comment',
29             'Error' => 'Error',
30             'Important' => 'Keyword',
31             'Media' => 'DecVal',
32             'Normal Text' => 'Normal',
33             'Property' => 'Keyword',
34             'Region Marker' => 'RegionMarker',
35             'Selector Attr' => 'Char',
36             'Selector Class' => 'Float',
37             'Selector Id' => 'Float',
38             'Selector Pseudo' => 'DecVal',
39             'String' => 'String',
40             'Unknown Property' => 'Error',
41             'Value' => 'DataType',
42             });
43 1         14 $self->listAdd('colors',
44             'ActiveBorder',
45             'ActiveCaption',
46             'AppWorkspace',
47             'Background',
48             'ButtonFace',
49             'ButtonHighlight',
50             'ButtonShadow',
51             'ButtonText',
52             'CaptionText',
53             'GrayText',
54             'Highlight',
55             'HighlightText',
56             'InactiveBorder',
57             'InactiveCaption',
58             'InactiveCaptionText',
59             'InfoBackground',
60             'InfoText',
61             'Menu',
62             'MenuText',
63             'Scrollbar',
64             'ThreeDDarkShadow',
65             'ThreeDFace',
66             'ThreeDHighlight',
67             'ThreeDLightShadow',
68             'ThreeDShadow',
69             'Window',
70             'WindowFrame',
71             'WindowText',
72             'aqua',
73             'black',
74             'blue',
75             'fuchsia',
76             'gray',
77             'green',
78             'lime',
79             'maroon',
80             'navy',
81             'olive',
82             'purple',
83             'red',
84             'silver',
85             'teal',
86             'white',
87             'yellow',
88             );
89 1         7 $self->listAdd('mediatypes',
90             'all',
91             'aural',
92             'braille',
93             'embossed',
94             'handheld',
95             'print',
96             'projection',
97             'screen',
98             'tty',
99             'tv',
100             );
101 1         8 $self->listAdd('paren',
102             'attr',
103             'counter',
104             'counters',
105             'format',
106             'local',
107             'rect',
108             'rgb',
109             'url',
110             );
111 1         11 $self->listAdd('properties',
112             'ascent',
113             'azimuth',
114             'background',
115             'background-attachment',
116             'background-color',
117             'background-image',
118             'background-position',
119             'background-repeat',
120             'baseline',
121             'bbox',
122             'border',
123             'border-bottom',
124             'border-bottom-color',
125             'border-bottom-style',
126             'border-bottom-width',
127             'border-collapse',
128             'border-color',
129             'border-left',
130             'border-left-color',
131             'border-left-style',
132             'border-left-width',
133             'border-right',
134             'border-right-color',
135             'border-right-style',
136             'border-right-width',
137             'border-spacing',
138             'border-style',
139             'border-top',
140             'border-top-color',
141             'border-top-style',
142             'border-top-width',
143             'border-width',
144             'bottom',
145             'box-sizing',
146             'cap-height',
147             'caption-side',
148             'centerline',
149             'clear',
150             'clip',
151             'color',
152             'content',
153             'counter-increment',
154             'counter-reset',
155             'cue',
156             'cue-after',
157             'cue-before',
158             'cursor',
159             'definition-src',
160             'descent',
161             'direction',
162             'display',
163             'elevation',
164             'empty-cells',
165             'float',
166             'font',
167             'font-family',
168             'font-family',
169             'font-size',
170             'font-size',
171             'font-size-adjust',
172             'font-stretch',
173             'font-stretch',
174             'font-style',
175             'font-style',
176             'font-variant',
177             'font-variant',
178             'font-weight',
179             'font-weight',
180             'height',
181             'konq_bgpos_x',
182             'konq_bgpos_y',
183             'left',
184             'letter-spacing',
185             'line-height',
186             'list-style',
187             'list-style-image',
188             'list-style-keyword',
189             'list-style-position',
190             'list-style-type',
191             'margin',
192             'margin-bottom',
193             'margin-left',
194             'margin-right',
195             'margin-top',
196             'marker-offset',
197             'mathline',
198             'max-height',
199             'max-width',
200             'min-height',
201             'min-width',
202             'opacity',
203             'orphans',
204             'outline',
205             'outline-color',
206             'outline-style',
207             'outline-width',
208             'overflow',
209             'padding',
210             'padding-bottom',
211             'padding-left',
212             'padding-right',
213             'padding-top',
214             'page',
215             'page-break-after',
216             'page-break-before',
217             'page-break-inside',
218             'panose-1',
219             'pause',
220             'pause-after',
221             'pause-before',
222             'pitch',
223             'pitch-range',
224             'play-during',
225             'position',
226             'quotes',
227             'richness',
228             'right',
229             'size',
230             'slope',
231             'speak',
232             'speak-header',
233             'speak-numeral',
234             'speak-punctuation',
235             'speech-rate',
236             'src',
237             'stemh',
238             'stemv',
239             'stress',
240             'table-layout',
241             'text-align',
242             'text-decoration',
243             'text-decoration-color',
244             'text-indent',
245             'text-shadow',
246             'text-shadow',
247             'text-transform',
248             'top',
249             'topline',
250             'unicode-bidi',
251             'unicode-range',
252             'units-per-em',
253             'vertical-align',
254             'visibility',
255             'voice-family',
256             'volume',
257             'white-space',
258             'widows',
259             'width',
260             'widths',
261             'word-spacing',
262             'x-height',
263             'z-index',
264             );
265 1         8 $self->listAdd('pseudoclasses',
266             'active',
267             'after',
268             'before',
269             'checked',
270             'disabled',
271             'empty',
272             'enabled',
273             'first-child',
274             'first-letter',
275             'first-line',
276             'first-of-type',
277             'focus',
278             'hover',
279             'indeterminate',
280             'last-child',
281             'last-of-type',
282             'link',
283             'only-child',
284             'only-of-type',
285             'root',
286             'selection',
287             'target',
288             'visited',
289             );
290 1         10 $self->listAdd('types',
291             '100',
292             '200',
293             '300',
294             '400',
295             '500',
296             '600',
297             '700',
298             '800',
299             '900',
300             'above',
301             'absolute',
302             'always',
303             'armenian',
304             'auto',
305             'avoid',
306             'baseline',
307             'below',
308             'bidi-override',
309             'blink',
310             'block',
311             'bold',
312             'bolder',
313             'border-box',
314             'both',
315             'bottom',
316             'box',
317             'break',
318             'capitalize',
319             'caption',
320             'center',
321             'circle',
322             'cjk-ideographic',
323             'close-quote',
324             'collapse',
325             'compact',
326             'condensed',
327             'content-box',
328             'crop',
329             'cross',
330             'crosshair',
331             'cursive',
332             'dashed',
333             'decimal',
334             'decimal-leading-zero',
335             'default',
336             'disc',
337             'dotted',
338             'double',
339             'e-resize',
340             'embed',
341             'expanded',
342             'extra-condensed',
343             'extra-expanded',
344             'fantasy',
345             'fixed',
346             'georgian',
347             'groove',
348             'hand',
349             'hebrew',
350             'help',
351             'hidden',
352             'hide',
353             'higher',
354             'hiragana',
355             'hiragana-iroha',
356             'icon',
357             'inherit',
358             'inline',
359             'inline-table',
360             'inset',
361             'inside',
362             'invert',
363             'italic',
364             'justify',
365             'katakana',
366             'katakana-iroha',
367             'konq-center',
368             'landscape',
369             'large',
370             'larger',
371             'left',
372             'level',
373             'light',
374             'lighter',
375             'line-through',
376             'list-item',
377             'loud',
378             'lower',
379             'lower-alpha',
380             'lower-greek',
381             'lower-latin',
382             'lower-roman',
383             'lowercase',
384             'ltr',
385             'marker',
386             'medium',
387             'menu',
388             'message-box',
389             'middle',
390             'mix',
391             'monospace',
392             'move',
393             'n-resize',
394             'narrower',
395             'ne-resize',
396             'no-close-quote',
397             'no-open-quote',
398             'no-repeat',
399             'none',
400             'normal',
401             'nowrap',
402             'nw-resize',
403             'oblique',
404             'open-quote',
405             'outset',
406             'outside',
407             'overline',
408             'pointer',
409             'portrait',
410             'pre',
411             'pre-line',
412             'pre-wrap',
413             'relative',
414             'repeat',
415             'repeat-x',
416             'repeat-y',
417             'ridge',
418             'right',
419             'rtl',
420             'run-in',
421             's-resize',
422             'sans-serif',
423             'scroll',
424             'se-resize',
425             'semi-condensed',
426             'semi-expanded',
427             'separate',
428             'serif',
429             'show',
430             'small',
431             'small-caps',
432             'small-caption',
433             'smaller',
434             'solid',
435             'square',
436             'static',
437             'static-position',
438             'status-bar',
439             'sub',
440             'super',
441             'sw-resize',
442             'table',
443             'table-caption',
444             'table-cell',
445             'table-column',
446             'table-column-group',
447             'table-footer-group',
448             'table-header-group',
449             'table-row',
450             'table-row-group',
451             'text',
452             'text-bottom',
453             'text-top',
454             'thick',
455             'thin',
456             'top',
457             'transparent',
458             'ultra-condensed',
459             'ultra-expanded',
460             'underline',
461             'upper-alpha',
462             'upper-latin',
463             'upper-roman',
464             'uppercase',
465             'visible',
466             'w-resize',
467             'wait',
468             'wider',
469             'x-large',
470             'x-small',
471             'xx-large',
472             'xx-small',
473             );
474 1         54 $self->contextdata({
475             'Base' => {
476             callback => \&parseBase,
477             attribute => 'Normal Text',
478             },
479             'Comment' => {
480             callback => \&parseComment,
481             attribute => 'Comment',
482             },
483             'FindComments' => {
484             callback => \&parseFindComments,
485             attribute => 'Normal Text',
486             },
487             'FindPHP' => {
488             callback => \&parseFindPHP,
489             },
490             'FindRuleSets' => {
491             callback => \&parseFindRuleSets,
492             attribute => 'Normal Text',
493             },
494             'FindStrings' => {
495             callback => \&parseFindStrings,
496             attribute => 'Normal Text',
497             },
498             'FindValues' => {
499             callback => \&parseFindValues,
500             attribute => 'Normal Text',
501             },
502             'Import' => {
503             callback => \&parseImport,
504             attribute => 'Normal Text',
505             },
506             'InsideString' => {
507             callback => \&parseInsideString,
508             attribute => 'String',
509             },
510             'Media' => {
511             callback => \&parseMedia,
512             attribute => 'Normal Text',
513             },
514             'Media2' => {
515             callback => \&parseMedia2,
516             attribute => 'Normal Text',
517             },
518             'PropParen' => {
519             callback => \&parsePropParen,
520             attribute => 'Normal Text',
521             },
522             'PropParen2' => {
523             callback => \&parsePropParen2,
524             attribute => 'Normal Text',
525             },
526             'Rule' => {
527             callback => \&parseRule,
528             attribute => 'Normal Text',
529             },
530             'Rule2' => {
531             callback => \&parseRule2,
532             attribute => 'Normal Text',
533             },
534             'RuleSet' => {
535             callback => \&parseRuleSet,
536             attribute => 'Normal Text',
537             },
538             'SelAttr' => {
539             callback => \&parseSelAttr,
540             attribute => 'Selector Attr',
541             },
542             'SelPseudo' => {
543             callback => \&parseSelPseudo,
544             attribute => 'Selector Pseudo',
545             lineending => '#pop',
546             fallthrough => '#pop',
547             },
548             'StringDQ' => {
549             callback => \&parseStringDQ,
550             attribute => 'String',
551             },
552             'StringSQ' => {
553             callback => \&parseStringSQ,
554             attribute => 'String',
555             },
556             });
557 1         12 $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|<|=|>|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\|-|\\%');
558 1         7 $self->basecontext('Base');
559 1         10 $self->keywordscase(0);
560 1         5 $self->initialize;
561 1         4 bless ($self, $class);
562 1         5 return $self;
563             }
564              
565             sub language {
566 0     0 0   return 'CSS/PHP';
567             }
568              
569             sub parseBase {
570 0     0 0   my ($self, $text) = @_;
571             # context => 'FindPHP'
572             # type => 'IncludeRules'
573 0 0         if ($self->includeRules('FindPHP', $text)) {
574 0           return 1
575             }
576             # type => 'LineContinue'
577 0 0         if ($self->testLineContinue($text, 0, undef, 0, '#stay', undef)) {
578 0           return 1
579             }
580             # type => 'DetectSpaces'
581 0 0         if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
582 0           return 1
583             }
584             # context => 'FindRuleSets'
585             # type => 'IncludeRules'
586 0 0         if ($self->includeRules('FindRuleSets', $text)) {
587 0           return 1
588             }
589 0           return 0;
590             };
591              
592             sub parseComment {
593 0     0 0   my ($self, $text) = @_;
594             # context => 'FindPHP'
595             # type => 'IncludeRules'
596 0 0         if ($self->includeRules('FindPHP', $text)) {
597 0           return 1
598             }
599             # type => 'DetectSpaces'
600 0 0         if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
601 0           return 1
602             }
603             # attribute => 'Comment'
604             # char => '*'
605             # char1 => '/'
606             # context => '#pop'
607             # endRegion => 'comment'
608             # type => 'Detect2Chars'
609 0 0         if ($self->testDetect2Chars($text, '*', '/', 0, 0, 0, undef, 0, '#pop', 'Comment')) {
610 0           return 1
611             }
612             # context => '##Alerts'
613             # type => 'IncludeRules'
614 0 0         if ($self->includePlugin('Alerts', $text)) {
615 0           return 1
616             }
617             # type => 'DetectIdentifier'
618 0 0         if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
619 0           return 1
620             }
621 0           return 0;
622             };
623              
624             sub parseFindComments {
625 0     0 0   my ($self, $text) = @_;
626             # context => 'FindPHP'
627             # type => 'IncludeRules'
628 0 0         if ($self->includeRules('FindPHP', $text)) {
629 0           return 1
630             }
631             # String => '/\*BEGIN.*\*/'
632             # attribute => 'Region Marker'
633             # beginRegion => 'UserDefined'
634             # context => '#stay'
635             # type => 'RegExpr'
636 0 0         if ($self->testRegExpr($text, '/\\*BEGIN.*\\*/', 0, 0, 0, undef, 0, '#stay', 'Region Marker')) {
637 0           return 1
638             }
639             # String => '/\*END.*\*/'
640             # attribute => 'Region Marker'
641             # context => '#stay'
642             # endRegion => 'UserDefined'
643             # type => 'RegExpr'
644 0 0         if ($self->testRegExpr($text, '/\\*END.*\\*/', 0, 0, 0, undef, 0, '#stay', 'Region Marker')) {
645 0           return 1
646             }
647             # attribute => 'Comment'
648             # beginRegion => 'comment'
649             # char => '/'
650             # char1 => '*'
651             # context => 'Comment'
652             # type => 'Detect2Chars'
653 0 0         if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'Comment', 'Comment')) {
654 0           return 1
655             }
656 0           return 0;
657             };
658              
659             sub parseFindPHP {
660 0     0 0   my ($self, $text) = @_;
661             # String => '<\?(?:=|php)?'
662             # context => '##PHP/PHP'
663             # lookAhead => 'true'
664             # type => 'RegExpr'
665 0 0         if ($self->testRegExpr($text, '<\\?(?:=|php)?', 0, 0, 1, undef, 0, '##PHP/PHP', undef)) {
666 0           return 1
667             }
668 0           return 0;
669             };
670              
671             sub parseFindRuleSets {
672 0     0 0   my ($self, $text) = @_;
673             # context => 'FindPHP'
674             # type => 'IncludeRules'
675 0 0         if ($self->includeRules('FindPHP', $text)) {
676 0           return 1
677             }
678             # String => '@media\b'
679             # attribute => 'Media'
680             # context => 'Media'
681             # type => 'RegExpr'
682 0 0         if ($self->testRegExpr($text, '@media\\b', 0, 0, 0, undef, 0, 'Media', 'Media')) {
683 0           return 1
684             }
685             # String => '@import\b'
686             # attribute => 'At Rule'
687             # context => 'Import'
688             # type => 'RegExpr'
689 0 0         if ($self->testRegExpr($text, '@import\\b', 0, 0, 0, undef, 0, 'Import', 'At Rule')) {
690 0           return 1
691             }
692             # String => '@(font-face|charset)\b'
693             # attribute => 'At Rule'
694             # context => '#stay'
695             # type => 'RegExpr'
696 0 0         if ($self->testRegExpr($text, '@(font-face|charset)\\b', 0, 0, 0, undef, 0, '#stay', 'At Rule')) {
697 0           return 1
698             }
699             # attribute => 'Property'
700             # beginRegion => 'ruleset'
701             # char => '{'
702             # context => 'RuleSet'
703             # type => 'DetectChar'
704 0 0         if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'RuleSet', 'Property')) {
705 0           return 1
706             }
707             # attribute => 'Selector Attr'
708             # char => '['
709             # context => 'SelAttr'
710             # type => 'DetectChar'
711 0 0         if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, 'SelAttr', 'Selector Attr')) {
712 0           return 1
713             }
714             # String => '#[A-Za-z0-9][\w\-]*'
715             # attribute => 'Selector Id'
716             # context => '#stay'
717             # type => 'RegExpr'
718 0 0         if ($self->testRegExpr($text, '#[A-Za-z0-9][\\w\\-]*', 0, 0, 0, undef, 0, '#stay', 'Selector Id')) {
719 0           return 1
720             }
721             # String => '\.[A-Za-z0-9][\w\-]*'
722             # attribute => 'Selector Class'
723             # context => '#stay'
724             # type => 'RegExpr'
725 0 0         if ($self->testRegExpr($text, '\\.[A-Za-z0-9][\\w\\-]*', 0, 0, 0, undef, 0, '#stay', 'Selector Class')) {
726 0           return 1
727             }
728             # String => ':lang\([\w_-]+\)'
729             # attribute => 'Selector Pseudo'
730             # context => '#stay'
731             # type => 'RegExpr'
732 0 0         if ($self->testRegExpr($text, ':lang\\([\\w_-]+\\)', 0, 0, 0, undef, 0, '#stay', 'Selector Pseudo')) {
733 0           return 1
734             }
735             # attribute => 'Selector Pseudo'
736             # char => ':'
737             # context => 'SelPseudo'
738             # type => 'DetectChar'
739 0 0         if ($self->testDetectChar($text, ':', 0, 0, 0, undef, 0, 'SelPseudo', 'Selector Pseudo')) {
740 0           return 1
741             }
742             # context => 'FindStrings'
743             # type => 'IncludeRules'
744 0 0         if ($self->includeRules('FindStrings', $text)) {
745 0           return 1
746             }
747             # context => 'FindComments'
748             # type => 'IncludeRules'
749 0 0         if ($self->includeRules('FindComments', $text)) {
750 0           return 1
751             }
752 0           return 0;
753             };
754              
755             sub parseFindStrings {
756 0     0 0   my ($self, $text) = @_;
757             # context => 'FindPHP'
758             # type => 'IncludeRules'
759 0 0         if ($self->includeRules('FindPHP', $text)) {
760 0           return 1
761             }
762             # attribute => 'String'
763             # char => '"'
764             # context => 'StringDQ'
765             # type => 'DetectChar'
766 0 0         if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'StringDQ', 'String')) {
767 0           return 1
768             }
769             # attribute => 'String'
770             # char => '''
771             # context => 'StringSQ'
772             # type => 'DetectChar'
773 0 0         if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, 'StringSQ', 'String')) {
774 0           return 1
775             }
776 0           return 0;
777             };
778              
779             sub parseFindValues {
780 0     0 0   my ($self, $text) = @_;
781             # context => 'FindPHP'
782             # type => 'IncludeRules'
783 0 0         if ($self->includeRules('FindPHP', $text)) {
784 0           return 1
785             }
786             # String => '[-+]?[0-9.]+(em|ex|px|in|cm|mm|pt|pc|deg|rad|grad|ms|s|Hz|kHz)\b'
787             # attribute => 'Value'
788             # context => '#stay'
789             # type => 'RegExpr'
790 0 0         if ($self->testRegExpr($text, '[-+]?[0-9.]+(em|ex|px|in|cm|mm|pt|pc|deg|rad|grad|ms|s|Hz|kHz)\\b', 0, 0, 0, undef, 0, '#stay', 'Value')) {
791 0           return 1
792             }
793             # String => '[-+]?[0-9.]+[%]?'
794             # attribute => 'Value'
795             # context => '#stay'
796             # type => 'RegExpr'
797 0 0         if ($self->testRegExpr($text, '[-+]?[0-9.]+[%]?', 0, 0, 0, undef, 0, '#stay', 'Value')) {
798 0           return 1
799             }
800             # String => '[\w\-]+'
801             # attribute => 'Normal Text'
802             # context => '#stay'
803             # type => 'RegExpr'
804 0 0         if ($self->testRegExpr($text, '[\\w\\-]+', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
805 0           return 1
806             }
807 0           return 0;
808             };
809              
810             sub parseImport {
811 0     0 0   my ($self, $text) = @_;
812             # context => 'FindPHP'
813             # type => 'IncludeRules'
814 0 0         if ($self->includeRules('FindPHP', $text)) {
815 0           return 1
816             }
817             # attribute => 'At Rule'
818             # char => ';'
819             # context => '#pop'
820             # type => 'DetectChar'
821 0 0         if ($self->testDetectChar($text, ';', 0, 0, 0, undef, 0, '#pop', 'At Rule')) {
822 0           return 1
823             }
824             # String => 'mediatypes'
825             # attribute => 'Media'
826             # context => '#stay'
827             # type => 'keyword'
828 0 0         if ($self->testKeyword($text, 'mediatypes', 0, undef, 0, '#stay', 'Media')) {
829 0           return 1
830             }
831             # context => 'FindValues'
832             # type => 'IncludeRules'
833 0 0         if ($self->includeRules('FindValues', $text)) {
834 0           return 1
835             }
836             # context => 'FindStrings'
837             # type => 'IncludeRules'
838 0 0         if ($self->includeRules('FindStrings', $text)) {
839 0           return 1
840             }
841             # context => 'FindComments'
842             # type => 'IncludeRules'
843 0 0         if ($self->includeRules('FindComments', $text)) {
844 0           return 1
845             }
846 0           return 0;
847             };
848              
849             sub parseInsideString {
850 0     0 0   my ($self, $text) = @_;
851             # context => 'FindPHP'
852             # type => 'IncludeRules'
853 0 0         if ($self->includeRules('FindPHP', $text)) {
854 0           return 1
855             }
856             # String => '\\["']'
857             # attribute => 'String'
858             # context => '#stay'
859             # type => 'RegExpr'
860 0 0         if ($self->testRegExpr($text, '\\\\["\']', 0, 0, 0, undef, 0, '#stay', 'String')) {
861 0           return 1
862             }
863             # type => 'DetectIdentifier'
864 0 0         if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
865 0           return 1
866             }
867 0           return 0;
868             };
869              
870             sub parseMedia {
871 0     0 0   my ($self, $text) = @_;
872             # context => 'FindPHP'
873             # type => 'IncludeRules'
874 0 0         if ($self->includeRules('FindPHP', $text)) {
875 0           return 1
876             }
877             # attribute => 'Media'
878             # beginRegion => 'media'
879             # char => '{'
880             # context => 'Media2'
881             # type => 'DetectChar'
882 0 0         if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'Media2', 'Media')) {
883 0           return 1
884             }
885             # String => 'mediatypes'
886             # attribute => 'Media'
887             # context => '#stay'
888             # type => 'keyword'
889 0 0         if ($self->testKeyword($text, 'mediatypes', 0, undef, 0, '#stay', 'Media')) {
890 0           return 1
891             }
892             # attribute => 'Media'
893             # char => ','
894             # context => '#stay'
895             # type => 'DetectChar'
896 0 0         if ($self->testDetectChar($text, ',', 0, 0, 0, undef, 0, '#stay', 'Media')) {
897 0           return 1
898             }
899             # context => 'FindComments'
900             # type => 'IncludeRules'
901 0 0         if ($self->includeRules('FindComments', $text)) {
902 0           return 1
903             }
904             # String => '\S+'
905             # attribute => 'Error'
906             # context => '#stay'
907             # type => 'RegExpr'
908 0 0         if ($self->testRegExpr($text, '\\S+', 0, 0, 0, undef, 0, '#stay', 'Error')) {
909 0           return 1
910             }
911 0           return 0;
912             };
913              
914             sub parseMedia2 {
915 0     0 0   my ($self, $text) = @_;
916             # context => 'FindPHP'
917             # type => 'IncludeRules'
918 0 0         if ($self->includeRules('FindPHP', $text)) {
919 0           return 1
920             }
921             # attribute => 'Media'
922             # char => '}'
923             # context => '#pop#pop'
924             # endRegion => 'media'
925             # type => 'DetectChar'
926 0 0         if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop#pop', 'Media')) {
927 0           return 1
928             }
929             # context => 'FindRuleSets'
930             # type => 'IncludeRules'
931 0 0         if ($self->includeRules('FindRuleSets', $text)) {
932 0           return 1
933             }
934 0           return 0;
935             };
936              
937             sub parsePropParen {
938 0     0 0   my ($self, $text) = @_;
939             # context => 'FindPHP'
940             # type => 'IncludeRules'
941 0 0         if ($self->includeRules('FindPHP', $text)) {
942 0           return 1
943             }
944             # attribute => 'Value'
945             # char => '('
946             # context => 'PropParen2'
947             # type => 'DetectChar'
948 0 0         if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, 'PropParen2', 'Value')) {
949 0           return 1
950             }
951             # context => 'FindComments'
952             # type => 'IncludeRules'
953 0 0         if ($self->includeRules('FindComments', $text)) {
954 0           return 1
955             }
956             # String => '\S'
957             # attribute => 'Error'
958             # context => '#stay'
959             # type => 'RegExpr'
960 0 0         if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Error')) {
961 0           return 1
962             }
963 0           return 0;
964             };
965              
966             sub parsePropParen2 {
967 0     0 0   my ($self, $text) = @_;
968             # context => 'FindPHP'
969             # type => 'IncludeRules'
970 0 0         if ($self->includeRules('FindPHP', $text)) {
971 0           return 1
972             }
973             # attribute => 'Value'
974             # char => ')'
975             # context => '#pop#pop'
976             # type => 'DetectChar'
977 0 0         if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop#pop', 'Value')) {
978 0           return 1
979             }
980             # context => 'FindValues'
981             # type => 'IncludeRules'
982 0 0         if ($self->includeRules('FindValues', $text)) {
983 0           return 1
984             }
985             # context => 'FindStrings'
986             # type => 'IncludeRules'
987 0 0         if ($self->includeRules('FindStrings', $text)) {
988 0           return 1
989             }
990             # context => 'FindComments'
991             # type => 'IncludeRules'
992 0 0         if ($self->includeRules('FindComments', $text)) {
993 0           return 1
994             }
995 0           return 0;
996             };
997              
998             sub parseRule {
999 0     0 0   my ($self, $text) = @_;
1000             # context => 'FindPHP'
1001             # type => 'IncludeRules'
1002 0 0         if ($self->includeRules('FindPHP', $text)) {
1003 0           return 1
1004             }
1005             # attribute => 'Property'
1006             # char => ':'
1007             # context => 'Rule2'
1008             # type => 'DetectChar'
1009 0 0         if ($self->testDetectChar($text, ':', 0, 0, 0, undef, 0, 'Rule2', 'Property')) {
1010 0           return 1
1011             }
1012             # String => '\S'
1013             # attribute => 'Error'
1014             # context => '#stay'
1015             # type => 'RegExpr'
1016 0 0         if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Error')) {
1017 0           return 1
1018             }
1019 0           return 0;
1020             };
1021              
1022             sub parseRule2 {
1023 0     0 0   my ($self, $text) = @_;
1024             # context => 'FindPHP'
1025             # type => 'IncludeRules'
1026 0 0         if ($self->includeRules('FindPHP', $text)) {
1027 0           return 1
1028             }
1029             # attribute => 'Property'
1030             # char => ';'
1031             # context => '#pop#pop'
1032             # type => 'DetectChar'
1033 0 0         if ($self->testDetectChar($text, ';', 0, 0, 0, undef, 0, '#pop#pop', 'Property')) {
1034 0           return 1
1035             }
1036             # attribute => 'Property'
1037             # char => '}'
1038             # context => '#pop#pop#pop'
1039             # endRegion => 'ruleset'
1040             # type => 'DetectChar'
1041 0 0         if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop#pop#pop', 'Property')) {
1042 0           return 1
1043             }
1044             # String => 'types'
1045             # attribute => 'Value'
1046             # context => '#stay'
1047             # type => 'keyword'
1048 0 0         if ($self->testKeyword($text, 'types', 0, undef, 0, '#stay', 'Value')) {
1049 0           return 1
1050             }
1051             # String => 'colors'
1052             # attribute => 'Value'
1053             # context => '#stay'
1054             # type => 'keyword'
1055 0 0         if ($self->testKeyword($text, 'colors', 0, undef, 0, '#stay', 'Value')) {
1056 0           return 1
1057             }
1058             # String => '#([0-9A-Fa-f]{3}){1,4}\b'
1059             # attribute => 'Value'
1060             # context => '#stay'
1061             # type => 'RegExpr'
1062 0 0         if ($self->testRegExpr($text, '#([0-9A-Fa-f]{3}){1,4}\\b', 0, 0, 0, undef, 0, '#stay', 'Value')) {
1063 0           return 1
1064             }
1065             # String => 'paren'
1066             # attribute => 'Value'
1067             # context => 'PropParen'
1068             # type => 'keyword'
1069 0 0         if ($self->testKeyword($text, 'paren', 0, undef, 0, 'PropParen', 'Value')) {
1070 0           return 1
1071             }
1072             # String => '!important\b'
1073             # attribute => 'Important'
1074             # context => '#stay'
1075             # type => 'RegExpr'
1076 0 0         if ($self->testRegExpr($text, '!important\\b', 0, 0, 0, undef, 0, '#stay', 'Important')) {
1077 0           return 1
1078             }
1079             # context => 'FindValues'
1080             # type => 'IncludeRules'
1081 0 0         if ($self->includeRules('FindValues', $text)) {
1082 0           return 1
1083             }
1084             # context => 'FindStrings'
1085             # type => 'IncludeRules'
1086 0 0         if ($self->includeRules('FindStrings', $text)) {
1087 0           return 1
1088             }
1089             # context => 'FindComments'
1090             # type => 'IncludeRules'
1091 0 0         if ($self->includeRules('FindComments', $text)) {
1092 0           return 1
1093             }
1094 0           return 0;
1095             };
1096              
1097             sub parseRuleSet {
1098 0     0 0   my ($self, $text) = @_;
1099             # context => 'FindPHP'
1100             # type => 'IncludeRules'
1101 0 0         if ($self->includeRules('FindPHP', $text)) {
1102 0           return 1
1103             }
1104             # attribute => 'Property'
1105             # char => '}'
1106             # context => '#pop'
1107             # endRegion => 'ruleset'
1108             # type => 'DetectChar'
1109 0 0         if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop', 'Property')) {
1110 0           return 1
1111             }
1112             # String => 'properties'
1113             # attribute => 'Property'
1114             # context => 'Rule'
1115             # type => 'keyword'
1116 0 0         if ($self->testKeyword($text, 'properties', 0, undef, 0, 'Rule', 'Property')) {
1117 0           return 1
1118             }
1119             # String => '-?[A-Za-z_-]+(?=\s*:)'
1120             # attribute => 'Unknown Property'
1121             # context => 'Rule'
1122             # type => 'RegExpr'
1123 0 0         if ($self->testRegExpr($text, '-?[A-Za-z_-]+(?=\\s*:)', 0, 0, 0, undef, 0, 'Rule', 'Unknown Property')) {
1124 0           return 1
1125             }
1126             # context => 'FindComments'
1127             # type => 'IncludeRules'
1128 0 0         if ($self->includeRules('FindComments', $text)) {
1129 0           return 1
1130             }
1131             # String => '\S'
1132             # attribute => 'Error'
1133             # context => '#stay'
1134             # type => 'RegExpr'
1135 0 0         if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Error')) {
1136 0           return 1
1137             }
1138 0           return 0;
1139             };
1140              
1141             sub parseSelAttr {
1142 0     0 0   my ($self, $text) = @_;
1143             # context => 'FindPHP'
1144             # type => 'IncludeRules'
1145 0 0         if ($self->includeRules('FindPHP', $text)) {
1146 0           return 1
1147             }
1148             # attribute => 'Selector Attr'
1149             # char => ']'
1150             # context => '#pop'
1151             # type => 'DetectChar'
1152 0 0         if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#pop', 'Selector Attr')) {
1153 0           return 1
1154             }
1155             # context => 'FindStrings'
1156             # type => 'IncludeRules'
1157 0 0         if ($self->includeRules('FindStrings', $text)) {
1158 0           return 1
1159             }
1160 0           return 0;
1161             };
1162              
1163             sub parseSelPseudo {
1164 0     0 0   my ($self, $text) = @_;
1165             # context => 'FindPHP'
1166             # type => 'IncludeRules'
1167 0 0         if ($self->includeRules('FindPHP', $text)) {
1168 0           return 1
1169             }
1170             # String => 'pseudoclasses'
1171             # attribute => 'Selector Pseudo'
1172             # context => '#pop'
1173             # type => 'keyword'
1174 0 0         if ($self->testKeyword($text, 'pseudoclasses', 0, undef, 0, '#pop', 'Selector Pseudo')) {
1175 0           return 1
1176             }
1177 0           return 0;
1178             };
1179              
1180             sub parseStringDQ {
1181 0     0 0   my ($self, $text) = @_;
1182             # context => 'FindPHP'
1183             # type => 'IncludeRules'
1184 0 0         if ($self->includeRules('FindPHP', $text)) {
1185 0           return 1
1186             }
1187             # attribute => 'String'
1188             # char => '"'
1189             # context => '#pop'
1190             # type => 'DetectChar'
1191 0 0         if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop', 'String')) {
1192 0           return 1
1193             }
1194             # context => 'InsideString'
1195             # type => 'IncludeRules'
1196 0 0         if ($self->includeRules('InsideString', $text)) {
1197 0           return 1
1198             }
1199 0           return 0;
1200             };
1201              
1202             sub parseStringSQ {
1203 0     0 0   my ($self, $text) = @_;
1204             # context => 'FindPHP'
1205             # type => 'IncludeRules'
1206 0 0         if ($self->includeRules('FindPHP', $text)) {
1207 0           return 1
1208             }
1209             # attribute => 'String'
1210             # char => '''
1211             # context => '#pop'
1212             # type => 'DetectChar'
1213 0 0         if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, '#pop', 'String')) {
1214 0           return 1
1215             }
1216             # context => 'InsideString'
1217             # type => 'IncludeRules'
1218 0 0         if ($self->includeRules('InsideString', $text)) {
1219 0           return 1
1220             }
1221 0           return 0;
1222             };
1223              
1224              
1225             1;
1226              
1227             __END__