File Coverage

blib/lib/Syntax/Highlight/Engine/Kate/ColdFusion.pm
Criterion Covered Total %
statement 25 256 9.7
branch 0 188 0.0
condition 1 3 33.3
subroutine 4 26 15.3
pod 0 23 0.0
total 30 496 6.0


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 'coldfusion.xml' file of the syntax highlight
6             # engine of the kate text editor (http://www.kate-editor.org
7              
8             #kate xml version 1.04
9             #kate version 2.3
10             #generated: Sun Feb 3 22:02:04 2008, localtime
11              
12             package Syntax::Highlight::Engine::Kate::ColdFusion;
13              
14             our $VERSION = '0.07';
15              
16 1     1   1378 use strict;
  1         3  
  1         53  
17 1     1   6 use warnings;
  1         2  
  1         36  
18 1     1   6 use base('Syntax::Highlight::Engine::Kate::Template');
  1         3  
  1         4138  
19              
20             sub new {
21 1     1 0 623 my $proto = shift;
22 1   33     12 my $class = ref($proto) || $proto;
23 1         15 my $self = $class->SUPER::new(@_);
24 1         36 $self->attributes({
25             'Anchor Tags' => 'Float',
26             'Attribute Values' => 'BaseN',
27             'Brackets' => 'Reserved',
28             'CF Comment' => 'Comment',
29             'CF Tags' => 'Float',
30             'CFX Tags' => 'Float',
31             'Custom Tags' => 'BString',
32             'HTML Comment' => 'Comment',
33             'HTML Entities' => 'Char',
34             'Image Tags' => 'Operator',
35             'Normal Text' => 'Normal',
36             'Numbers' => 'BaseN',
37             'Script Comment' => 'Comment',
38             'Script Functions' => 'Function',
39             'Script Keywords' => 'Keyword',
40             'Script Numbers' => 'Char',
41             'Script Objects' => 'DecVal',
42             'Script Operators' => 'BaseN',
43             'Script Strings' => 'Keyword',
44             'Script Tags' => 'Float',
45             'Style Properties' => 'Others',
46             'Style Selectors' => 'Char',
47             'Style Tags' => 'Operator',
48             'Style Values' => 'String',
49             'Table Tags' => 'Keyword',
50             'Tags' => 'Others',
51             });
52 1         23 $self->listAdd('CFSCRIPT Functions',
53             'ACos',
54             'ASin',
55             'Abs',
56             'ArrayAppend',
57             'ArrayAvg',
58             'ArrayClear',
59             'ArrayDeleteAt',
60             'ArrayInsertAt',
61             'ArrayIsEmpty',
62             'ArrayLen',
63             'ArrayMax',
64             'ArrayMin',
65             'ArrayNew',
66             'ArrayPrepend',
67             'ArrayResize',
68             'ArraySet',
69             'ArraySort',
70             'ArraySum',
71             'ArraySwap',
72             'ArrayToList',
73             'Asc',
74             'Atn',
75             'BitAnd',
76             'BitMaskClear',
77             'BitMaskRead',
78             'BitMaskSet',
79             'BitNot',
80             'BitOr',
81             'BitSHLN',
82             'BitSHRN',
83             'BitXor',
84             'CJustify',
85             'Ceiling',
86             'Chr',
87             'Compare',
88             'CompareNoCase',
89             'Cos',
90             'CreateDate',
91             'CreateDateTime',
92             'CreateODBCDate',
93             'CreateODBCDateTime',
94             'CreateODBCTime',
95             'CreateObject',
96             'CreateTime',
97             'CreateTimeSpan',
98             'CreateUUID',
99             'DE',
100             'DateAdd',
101             'DateCompare',
102             'DateConvert',
103             'DateDiff',
104             'DateFormat',
105             'DatePart',
106             'Day',
107             'DayOfWeek',
108             'DayOfWeekAsString',
109             'DayOfYear',
110             'DaysInMonth',
111             'DaysInYear',
112             'DecimalFormat',
113             'DecrementValue',
114             'Decrypt',
115             'DeleteClientVariable',
116             'DirectoryExists',
117             'DollarFormat',
118             'Duplicate',
119             'Encrypt',
120             'Evaluate',
121             'Exp',
122             'ExpandPath',
123             'FileExists',
124             'Find',
125             'FindNoCase',
126             'FindOneOf',
127             'FirstDayOfMonth',
128             'Fix',
129             'FormatBaseN',
130             'GetAuthUser',
131             'GetBaseTagData',
132             'GetBaseTagList',
133             'GetBaseTemplatePath',
134             'GetClientVariablesList',
135             'GetCurrentTemplatePath',
136             'GetDirectoryFromPath',
137             'GetException',
138             'GetFileFromPath',
139             'GetFunctionList',
140             'GetHttpRequestData',
141             'GetHttpTimeString',
142             'GetK2ServerDocCount',
143             'GetK2ServerDocCountLimit',
144             'GetLocale',
145             'GetMetaData',
146             'GetMetricData',
147             'GetPageContext',
148             'GetProfileSections',
149             'GetProfileString',
150             'GetServiceSettings',
151             'GetTempDirectory',
152             'GetTempFile',
153             'GetTemplatePath',
154             'GetTickCount',
155             'GetTimeZoneInfo',
156             'GetToken',
157             'HTMLCodeFormat',
158             'HTMLEditFormat',
159             'Hash',
160             'Hour',
161             'IIf',
162             'IncrementValue',
163             'InputBaseN',
164             'Insert',
165             'Int',
166             'IsArray',
167             'IsBinary',
168             'IsBoolean',
169             'IsCustomFunction',
170             'IsDate',
171             'IsDebugMode',
172             'IsDefined',
173             'IsK2ServerABroker',
174             'IsK2ServerDocCountExceeded',
175             'IsK2ServerOnline',
176             'IsLeapYear',
177             'IsNumeric',
178             'IsNumericDate',
179             'IsObject',
180             'IsQuery',
181             'IsSimpleValue',
182             'IsStruct',
183             'IsUserInRole',
184             'IsWDDX',
185             'IsXmlDoc',
186             'IsXmlElement',
187             'IsXmlRoot',
188             'JSStringFormat',
189             'JavaCast',
190             'LCase',
191             'LJustify',
192             'LSCurrencyFormat',
193             'LSDateFormat',
194             'LSEuroCurrencyFormat',
195             'LSIsCurrency',
196             'LSIsDate',
197             'LSIsNumeric',
198             'LSNumberFormat',
199             'LSParseCurrency',
200             'LSParseDateTime',
201             'LSParseEuroCurrency',
202             'LSParseNumber',
203             'LSTimeFormat',
204             'LTrim',
205             'Left',
206             'Len',
207             'ListAppend',
208             'ListChangeDelims',
209             'ListContains',
210             'ListContainsNoCase',
211             'ListDeleteAt',
212             'ListFind',
213             'ListFindNoCase',
214             'ListFirst',
215             'ListGetAt',
216             'ListInsertAt',
217             'ListLast',
218             'ListLen',
219             'ListPrepend',
220             'ListQualify',
221             'ListRest',
222             'ListSetAt',
223             'ListSort',
224             'ListToArray',
225             'ListValueCount',
226             'ListValueCountNoCase',
227             'Log',
228             'Log10',
229             'Max',
230             'Mid',
231             'Min',
232             'Minute',
233             'Month',
234             'MonthAsString',
235             'Now',
236             'NumberFormat',
237             'ParagraphFormat',
238             'ParameterExists',
239             'ParseDateTime',
240             'Pi',
241             'PreserveSingleQuotes',
242             'Quarter',
243             'QueryAddColumn',
244             'QueryAddRow',
245             'QueryNew',
246             'QuerySetCell',
247             'QuotedValueList',
248             'REFind',
249             'REFindNoCase',
250             'REReplace',
251             'REReplaceNoCase',
252             'RJustify',
253             'RTrim',
254             'Rand',
255             'RandRange',
256             'Randomize',
257             'RemoveChars',
258             'RepeatString',
259             'Replace',
260             'ReplaceList',
261             'ReplaceNoCase',
262             'Reverse',
263             'Right',
264             'Round',
265             'Second',
266             'SetEncoding',
267             'SetLocale',
268             'SetProfileString',
269             'SetVariable',
270             'Sgn',
271             'Sin',
272             'SpanExcluding',
273             'SpanIncluding',
274             'Sqr',
275             'StripCR',
276             'StructAppend',
277             'StructClear',
278             'StructCopy',
279             'StructCount',
280             'StructDelete',
281             'StructFind',
282             'StructFindKey',
283             'StructFindValue',
284             'StructGet',
285             'StructInsert',
286             'StructIsEmpty',
287             'StructKeyArray',
288             'StructKeyExists',
289             'StructKeyList',
290             'StructNew',
291             'StructSort',
292             'StructUpdate',
293             'Tan',
294             'TimeFormat',
295             'ToBase64',
296             'ToBinary',
297             'ToString',
298             'Trim',
299             'UCase',
300             'URLDecode',
301             'URLEncodedFormat',
302             'URLSessionFormat',
303             'Val',
304             'ValueList',
305             'Week',
306             'WriteOutput',
307             'XmlChildPos',
308             'XmlElemNew',
309             'XmlFormat',
310             'XmlNew',
311             'XmlParse',
312             'XmlSearch',
313             'XmlTransform',
314             'Year',
315             'YesNoFormat',
316             );
317 1         5 $self->listAdd('CFSCRIPT Keywords',
318             'break',
319             'case',
320             'catch',
321             'continue',
322             'default',
323             'do',
324             'else',
325             'for',
326             'function',
327             'if',
328             'in',
329             'return',
330             'switch',
331             'try',
332             'var',
333             'while',
334             );
335 1         7 $self->listAdd('Script Keywords',
336             'break',
337             'case',
338             'catch',
339             'const',
340             'continue',
341             'default',
342             'delete',
343             'do',
344             'else',
345             'false',
346             'for',
347             'function',
348             'if',
349             'in',
350             'new',
351             'return',
352             'switch',
353             'this',
354             'throw',
355             'true',
356             'try',
357             'typeof',
358             'var',
359             'void',
360             'while',
361             'with',
362             );
363 1         10 $self->listAdd('Script Methods',
364             'String formatting',
365             'UTC',
366             'abs',
367             'acos',
368             'alert',
369             'anchor',
370             'apply',
371             'asin',
372             'atan',
373             'atan2',
374             'back',
375             'blur',
376             'call',
377             'captureEvents',
378             'ceil',
379             'charAt',
380             'charCodeAt',
381             'clearInterval',
382             'clearTimeout',
383             'click',
384             'close',
385             'compile',
386             'concat',
387             'confirm',
388             'cos',
389             'disableExternalCapture',
390             'enableExternalCapture',
391             'eval',
392             'exec',
393             'exp',
394             'find',
395             'floor',
396             'focus',
397             'forward',
398             'fromCharCode',
399             'getDate',
400             'getDay',
401             'getFullYear',
402             'getHours',
403             'getMilliseconds',
404             'getMinutes',
405             'getMonth',
406             'getSeconds',
407             'getSelection',
408             'getTime',
409             'getTimezoneOffset',
410             'getUTCDate',
411             'getUTCDay',
412             'getUTCFullYear',
413             'getUTCHours',
414             'getUTCMilliseconds',
415             'getUTCMinutes',
416             'getUTCMonth',
417             'getUTCSeconds',
418             'go',
419             'handleEvent',
420             'home',
421             'indexOf',
422             'javaEnabled',
423             'join',
424             'lastIndexOf',
425             'link',
426             'load',
427             'log',
428             'match',
429             'max',
430             'min',
431             'moveAbove',
432             'moveBelow',
433             'moveBy',
434             'moveTo',
435             'moveToAbsolute',
436             'open',
437             'parse',
438             'plugins.refresh',
439             'pop',
440             'pow',
441             'preference',
442             'print',
443             'prompt',
444             'push',
445             'random',
446             'releaseEvents',
447             'reload',
448             'replace',
449             'reset',
450             'resizeBy',
451             'resizeTo',
452             'reverse',
453             'round',
454             'routeEvent',
455             'scrollBy',
456             'scrollTo',
457             'search',
458             'select',
459             'setDate',
460             'setFullYear',
461             'setHours',
462             'setInterval',
463             'setMilliseconds',
464             'setMinutes',
465             'setMonth',
466             'setSeconds',
467             'setTime',
468             'setTimeout',
469             'setUTCDate',
470             'setUTCFullYear',
471             'setUTCHours',
472             'setUTCMilliseconds',
473             'setUTCMinutes',
474             'setUTCMonth',
475             'setUTCSeconds',
476             'shift',
477             'sin',
478             'slice',
479             'sort',
480             'splice',
481             'split',
482             'sqrt',
483             'stop',
484             'submit',
485             'substr',
486             'substring',
487             'taintEnabled',
488             'tan',
489             'test',
490             'toLocaleString',
491             'toLowerCase',
492             'toSource',
493             'toString',
494             'toUTCString',
495             'toUpperCase',
496             'unshift',
497             'unwatch',
498             'valueOf',
499             'watch',
500             'write',
501             'writeln',
502             );
503 1         7 $self->listAdd('Script Objects',
504             'Anchor',
505             'Applet',
506             'Area',
507             'Array',
508             'Boolean',
509             'Button',
510             'Checkbox',
511             'Date',
512             'Document',
513             'Event',
514             'FileUpload',
515             'Form',
516             'Frame',
517             'Function',
518             'Hidden',
519             'History',
520             'Image',
521             'Layer',
522             'Linke',
523             'Location',
524             'Math',
525             'Navigator',
526             'Number',
527             'Object',
528             'Option',
529             'Password',
530             'Radio',
531             'RegExp',
532             'Reset',
533             'Screen',
534             'Select',
535             'String',
536             'Submit',
537             'Text',
538             'Textarea',
539             'Window',
540             );
541 1         81 $self->contextdata({
542             'Normal Text' => {
543             callback => \&parseNormalText,
544             attribute => 'Normal Text',
545             },
546             'ctxAnchor Tag' => {
547             callback => \&parsectxAnchorTag,
548             attribute => 'Anchor Tags',
549             },
550             'ctxC Style Comment' => {
551             callback => \&parsectxCStyleComment,
552             attribute => 'Script Comment',
553             },
554             'ctxCF Comment' => {
555             callback => \&parsectxCFComment,
556             attribute => 'CF Comment',
557             },
558             'ctxCF Tag' => {
559             callback => \&parsectxCFTag,
560             attribute => 'CF Tags',
561             },
562             'ctxCFSCRIPT Block' => {
563             callback => \&parsectxCFSCRIPTBlock,
564             attribute => 'Normal Text',
565             },
566             'ctxCFSCRIPT Tag' => {
567             callback => \&parsectxCFSCRIPTTag,
568             attribute => 'Script Tags',
569             },
570             'ctxCFX Tag' => {
571             callback => \&parsectxCFXTag,
572             attribute => 'CFX Tags',
573             },
574             'ctxCustom Tag' => {
575             callback => \&parsectxCustomTag,
576             attribute => 'Custom Tags',
577             },
578             'ctxHTML Comment' => {
579             callback => \&parsectxHTMLComment,
580             attribute => 'HTML Comment',
581             },
582             'ctxHTML Entities' => {
583             callback => \&parsectxHTMLEntities,
584             attribute => 'HTML Entities',
585             lineending => '#pop',
586             },
587             'ctxImage Tag' => {
588             callback => \&parsectxImageTag,
589             attribute => 'Image Tags',
590             },
591             'ctxOne Line Comment' => {
592             callback => \&parsectxOneLineComment,
593             attribute => 'Script Comment',
594             lineending => '#pop',
595             },
596             'ctxSCRIPT Block' => {
597             callback => \&parsectxSCRIPTBlock,
598             attribute => 'Normal Text',
599             },
600             'ctxSCRIPT Tag' => {
601             callback => \&parsectxSCRIPTTag,
602             attribute => 'Script Tags',
603             },
604             'ctxSTYLE Block' => {
605             callback => \&parsectxSTYLEBlock,
606             attribute => 'Style Selectors',
607             },
608             'ctxSTYLE Tag' => {
609             callback => \&parsectxSTYLETag,
610             attribute => 'Style Tags',
611             },
612             'ctxStyle Properties' => {
613             callback => \&parsectxStyleProperties,
614             attribute => 'Style Properties',
615             },
616             'ctxStyle Values' => {
617             callback => \&parsectxStyleValues,
618             attribute => 'Style Values',
619             lineending => '#pop',
620             },
621             'ctxTable Tag' => {
622             callback => \&parsectxTableTag,
623             attribute => 'Table Tags',
624             },
625             'ctxTag' => {
626             callback => \&parsectxTag,
627             attribute => 'Tags',
628             },
629             });
630 1         11 $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\|-');
631 1         4 $self->basecontext('Normal Text');
632 1         10 $self->keywordscase(0);
633 1         4 $self->initialize;
634 1         4 bless ($self, $class);
635 1         5 return $self;
636             }
637              
638             sub language {
639 0     0 0   return 'ColdFusion';
640             }
641              
642             sub parseNormalText {
643 0     0 0   my ($self, $text) = @_;
644             # String => ''
787             # attribute => 'CF Comment'
788             # context => '#pop'
789             # type => 'StringDetect'
790 0 0         if ($self->testStringDetect($text, '--->', 0, 0, 0, undef, 0, '#pop', 'CF Comment')) {
791 0           return 1
792             }
793 0           return 0;
794             };
795              
796             sub parsectxCFTag {
797 0     0 0   my ($self, $text) = @_;
798             # attribute => 'CF Tags'
799             # char => '>'
800             # context => '#pop'
801             # type => 'DetectChar'
802 0 0         if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'CF Tags')) {
803 0           return 1
804             }
805             # attribute => 'Normal Text'
806             # char => '='
807             # context => '#stay'
808             # type => 'DetectChar'
809 0 0         if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
810 0           return 1
811             }
812             # String => '"[^"]*"'
813             # attribute => 'Attribute Values'
814             # context => '#stay'
815             # type => 'RegExpr'
816 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
817 0           return 1
818             }
819             # String => ''[^']*''
820             # attribute => 'Attribute Values'
821             # context => '#stay'
822             # type => 'RegExpr'
823 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
824 0           return 1
825             }
826 0           return 0;
827             };
828              
829             sub parsectxCFSCRIPTBlock {
830 0     0 0   my ($self, $text) = @_;
831             # attribute => 'Script Comment'
832             # char => '/'
833             # char1 => '*'
834             # context => 'ctxC Style Comment'
835             # type => 'Detect2Chars'
836 0 0         if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'ctxC Style Comment', 'Script Comment')) {
837 0           return 1
838             }
839             # attribute => 'Script Comment'
840             # char => '/'
841             # char1 => '/'
842             # context => 'ctxOne Line Comment'
843             # type => 'Detect2Chars'
844 0 0         if ($self->testDetect2Chars($text, '/', '/', 0, 0, 0, undef, 0, 'ctxOne Line Comment', 'Script Comment')) {
845 0           return 1
846             }
847             # String => '"[^"]*"'
848             # attribute => 'Script Strings'
849             # context => '#stay'
850             # type => 'RegExpr'
851 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Script Strings')) {
852 0           return 1
853             }
854             # String => ''[^']*''
855             # attribute => 'Script Strings'
856             # context => '#stay'
857             # type => 'RegExpr'
858 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Script Strings')) {
859 0           return 1
860             }
861             # attribute => 'Script Numbers'
862             # context => '#stay'
863             # type => 'Int'
864 0 0         if ($self->testInt($text, 0, undef, 0, '#stay', 'Script Numbers')) {
865 0           return 1
866             }
867             # attribute => 'Script Numbers'
868             # context => '#stay'
869             # type => 'Float'
870 0 0         if ($self->testFloat($text, 0, undef, 0, '#stay', 'Script Numbers')) {
871 0           return 1
872             }
873             # String => '[()[\]=+-*/]+'
874             # attribute => 'Script Operators'
875             # context => '#stay'
876             # type => 'AnyChar'
877 0 0         if ($self->testAnyChar($text, '[()[\\]=+-*/]+', 0, 0, undef, 0, '#stay', 'Script Operators')) {
878 0           return 1
879             }
880             # String => '{}'
881             # attribute => 'Brackets'
882             # context => '#stay'
883             # type => 'AnyChar'
884 0 0         if ($self->testAnyChar($text, '{}', 0, 0, undef, 0, '#stay', 'Brackets')) {
885 0           return 1
886             }
887             # String => 'CFSCRIPT Keywords'
888             # attribute => 'Script Keywords'
889             # context => '#stay'
890             # type => 'keyword'
891 0 0         if ($self->testKeyword($text, 'CFSCRIPT Keywords', 0, undef, 0, '#stay', 'Script Keywords')) {
892 0           return 1
893             }
894             # String => 'CFSCRIPT Functions'
895             # attribute => 'Script Functions'
896             # context => '#stay'
897             # type => 'keyword'
898 0 0         if ($self->testKeyword($text, 'CFSCRIPT Functions', 0, undef, 0, '#stay', 'Script Functions')) {
899 0           return 1
900             }
901             # String => ''
902             # attribute => 'Script Tags'
903             # context => '#pop#pop'
904             # type => 'RegExpr'
905 0 0         if ($self->testRegExpr($text, '', 0, 0, 0, undef, 0, '#pop#pop', 'Script Tags')) {
906 0           return 1
907             }
908 0           return 0;
909             };
910              
911             sub parsectxCFSCRIPTTag {
912 0     0 0   my ($self, $text) = @_;
913             # attribute => 'Script Tags'
914             # char => '>'
915             # context => 'ctxCFSCRIPT Block'
916             # type => 'DetectChar'
917 0 0         if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, 'ctxCFSCRIPT Block', 'Script Tags')) {
918 0           return 1
919             }
920             # attribute => 'Normal Text'
921             # char => '='
922             # context => '#stay'
923             # type => 'DetectChar'
924 0 0         if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
925 0           return 1
926             }
927             # String => '"[^"]*"'
928             # attribute => 'Attribute Values'
929             # context => '#stay'
930             # type => 'RegExpr'
931 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
932 0           return 1
933             }
934             # String => ''[^']*''
935             # attribute => 'Attribute Values'
936             # context => '#stay'
937             # type => 'RegExpr'
938 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
939 0           return 1
940             }
941 0           return 0;
942             };
943              
944             sub parsectxCFXTag {
945 0     0 0   my ($self, $text) = @_;
946             # attribute => 'CFX Tags'
947             # char => '>'
948             # context => '#pop'
949             # type => 'DetectChar'
950 0 0         if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'CFX Tags')) {
951 0           return 1
952             }
953             # attribute => 'Normal Text'
954             # char => '='
955             # context => '#stay'
956             # type => 'DetectChar'
957 0 0         if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
958 0           return 1
959             }
960             # String => '"[^"]*"'
961             # attribute => 'Attribute Values'
962             # context => '#stay'
963             # type => 'RegExpr'
964 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
965 0           return 1
966             }
967             # String => ''[^']*''
968             # attribute => 'Attribute Values'
969             # context => '#stay'
970             # type => 'RegExpr'
971 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
972 0           return 1
973             }
974 0           return 0;
975             };
976              
977             sub parsectxCustomTag {
978 0     0 0   my ($self, $text) = @_;
979             # attribute => 'Custom Tags'
980             # char => '>'
981             # context => '#pop'
982             # type => 'DetectChar'
983 0 0         if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'Custom Tags')) {
984 0           return 1
985             }
986             # attribute => 'Normal Text'
987             # char => '='
988             # context => '#stay'
989             # type => 'DetectChar'
990 0 0         if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
991 0           return 1
992             }
993             # String => '"[^"]*"'
994             # attribute => 'Attribute Values'
995             # context => '#stay'
996             # type => 'RegExpr'
997 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
998 0           return 1
999             }
1000             # String => ''[^']*''
1001             # attribute => 'Attribute Values'
1002             # context => '#stay'
1003             # type => 'RegExpr'
1004 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1005 0           return 1
1006             }
1007 0           return 0;
1008             };
1009              
1010             sub parsectxHTMLComment {
1011 0     0 0   my ($self, $text) = @_;
1012             # String => ''
1020             # attribute => 'HTML Comment'
1021             # context => '#pop'
1022             # type => 'StringDetect'
1023 0 0         if ($self->testStringDetect($text, '-->', 0, 0, 0, undef, 0, '#pop', 'HTML Comment')) {
1024 0           return 1
1025             }
1026 0           return 0;
1027             };
1028              
1029             sub parsectxHTMLEntities {
1030 0     0 0   my ($self, $text) = @_;
1031             # attribute => 'HTML Entities'
1032             # char => ';'
1033             # context => '#pop'
1034             # type => 'DetectChar'
1035 0 0         if ($self->testDetectChar($text, ';', 0, 0, 0, undef, 0, '#pop', 'HTML Entities')) {
1036 0           return 1
1037             }
1038 0           return 0;
1039             };
1040              
1041             sub parsectxImageTag {
1042 0     0 0   my ($self, $text) = @_;
1043             # attribute => 'Image Tags'
1044             # char => '>'
1045             # context => '#pop'
1046             # type => 'DetectChar'
1047 0 0         if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'Image Tags')) {
1048 0           return 1
1049             }
1050             # attribute => 'Normal Text'
1051             # char => '='
1052             # context => '#stay'
1053             # type => 'DetectChar'
1054 0 0         if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
1055 0           return 1
1056             }
1057             # String => '"[^"]*"'
1058             # attribute => 'Attribute Values'
1059             # context => '#stay'
1060             # type => 'RegExpr'
1061 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1062 0           return 1
1063             }
1064             # String => ''[^']*''
1065             # attribute => 'Attribute Values'
1066             # context => '#stay'
1067             # type => 'RegExpr'
1068 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1069 0           return 1
1070             }
1071 0           return 0;
1072             };
1073              
1074             sub parsectxOneLineComment {
1075 0     0 0   my ($self, $text) = @_;
1076 0           return 0;
1077             };
1078              
1079             sub parsectxSCRIPTBlock {
1080 0     0 0   my ($self, $text) = @_;
1081             # attribute => 'Script Comment'
1082             # char => '/'
1083             # char1 => '*'
1084             # context => 'ctxC Style Comment'
1085             # type => 'Detect2Chars'
1086 0 0         if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'ctxC Style Comment', 'Script Comment')) {
1087 0           return 1
1088             }
1089             # attribute => 'Script Comment'
1090             # char => '/'
1091             # char1 => '/'
1092             # context => 'ctxOne Line Comment'
1093             # type => 'Detect2Chars'
1094 0 0         if ($self->testDetect2Chars($text, '/', '/', 0, 0, 0, undef, 0, 'ctxOne Line Comment', 'Script Comment')) {
1095 0           return 1
1096             }
1097             # String => '"[^"]*"'
1098             # attribute => 'Script Strings'
1099             # context => '#stay'
1100             # type => 'RegExpr'
1101 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Script Strings')) {
1102 0           return 1
1103             }
1104             # String => ''[^']*''
1105             # attribute => 'Script Strings'
1106             # context => '#stay'
1107             # type => 'RegExpr'
1108 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Script Strings')) {
1109 0           return 1
1110             }
1111             # attribute => 'Script Numbers'
1112             # context => '#stay'
1113             # type => 'Int'
1114 0 0         if ($self->testInt($text, 0, undef, 0, '#stay', 'Script Numbers')) {
1115 0           return 1
1116             }
1117             # attribute => 'Script Numbers'
1118             # context => '#stay'
1119             # type => 'Float'
1120 0 0         if ($self->testFloat($text, 0, undef, 0, '#stay', 'Script Numbers')) {
1121 0           return 1
1122             }
1123             # String => '[()[\]=+-*/]+'
1124             # attribute => 'Script Operators'
1125             # context => '#stay'
1126             # type => 'AnyChar'
1127 0 0         if ($self->testAnyChar($text, '[()[\\]=+-*/]+', 0, 0, undef, 0, '#stay', 'Script Operators')) {
1128 0           return 1
1129             }
1130             # String => '{}'
1131             # attribute => 'Brackets'
1132             # context => '#stay'
1133             # type => 'AnyChar'
1134 0 0         if ($self->testAnyChar($text, '{}', 0, 0, undef, 0, '#stay', 'Brackets')) {
1135 0           return 1
1136             }
1137             # String => 'Script Keywords'
1138             # attribute => 'Script Keywords'
1139             # context => '#stay'
1140             # type => 'keyword'
1141 0 0         if ($self->testKeyword($text, 'Script Keywords', 0, undef, 0, '#stay', 'Script Keywords')) {
1142 0           return 1
1143             }
1144             # String => 'Script Objects'
1145             # attribute => 'Script Objects'
1146             # context => '#stay'
1147             # type => 'keyword'
1148 0 0         if ($self->testKeyword($text, 'Script Objects', 0, undef, 0, '#stay', 'Script Objects')) {
1149 0           return 1
1150             }
1151             # String => 'Script Methods'
1152             # attribute => 'Script Functions'
1153             # context => '#stay'
1154             # type => 'keyword'
1155 0 0         if ($self->testKeyword($text, 'Script Methods', 0, undef, 0, '#stay', 'Script Functions')) {
1156 0           return 1
1157             }
1158             # String => ''
1159             # attribute => 'Script Tags'
1160             # context => '#pop#pop'
1161             # type => 'RegExpr'
1162 0 0         if ($self->testRegExpr($text, '', 0, 0, 0, undef, 0, '#pop#pop', 'Script Tags')) {
1163 0           return 1
1164             }
1165 0           return 0;
1166             };
1167              
1168             sub parsectxSCRIPTTag {
1169 0     0 0   my ($self, $text) = @_;
1170             # attribute => 'Script Tags'
1171             # char => '>'
1172             # context => 'ctxSCRIPT Block'
1173             # type => 'DetectChar'
1174 0 0         if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, 'ctxSCRIPT Block', 'Script Tags')) {
1175 0           return 1
1176             }
1177             # attribute => 'Normal Text'
1178             # char => '='
1179             # context => '#stay'
1180             # type => 'DetectChar'
1181 0 0         if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
1182 0           return 1
1183             }
1184             # String => '"[^"]*"'
1185             # attribute => 'Attribute Values'
1186             # context => '#stay'
1187             # type => 'RegExpr'
1188 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1189 0           return 1
1190             }
1191             # String => ''[^']*''
1192             # attribute => 'Attribute Values'
1193             # context => '#stay'
1194             # type => 'RegExpr'
1195 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1196 0           return 1
1197             }
1198 0           return 0;
1199             };
1200              
1201             sub parsectxSTYLEBlock {
1202 0     0 0   my ($self, $text) = @_;
1203             # attribute => 'Script Comment'
1204             # char => '/'
1205             # char1 => '*'
1206             # context => 'ctxC Style Comment'
1207             # type => 'Detect2Chars'
1208 0 0         if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'ctxC Style Comment', 'Script Comment')) {
1209 0           return 1
1210             }
1211             # attribute => 'Brackets'
1212             # char => '{'
1213             # context => 'ctxStyle Properties'
1214             # type => 'DetectChar'
1215 0 0         if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, 'ctxStyle Properties', 'Brackets')) {
1216 0           return 1
1217             }
1218             # String => ''
1219             # attribute => 'Style Tags'
1220             # context => '#pop#pop'
1221             # type => 'RegExpr'
1222 0 0         if ($self->testRegExpr($text, '', 0, 0, 0, undef, 0, '#pop#pop', 'Style Tags')) {
1223 0           return 1
1224             }
1225 0           return 0;
1226             };
1227              
1228             sub parsectxSTYLETag {
1229 0     0 0   my ($self, $text) = @_;
1230             # attribute => 'Style Tags'
1231             # char => '>'
1232             # context => 'ctxSTYLE Block'
1233             # type => 'DetectChar'
1234 0 0         if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, 'ctxSTYLE Block', 'Style Tags')) {
1235 0           return 1
1236             }
1237             # attribute => 'Normal Text'
1238             # char => '='
1239             # context => '#stay'
1240             # type => 'DetectChar'
1241 0 0         if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
1242 0           return 1
1243             }
1244             # String => '"[^"]*"'
1245             # attribute => 'Attribute Values'
1246             # context => '#stay'
1247             # type => 'RegExpr'
1248 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1249 0           return 1
1250             }
1251             # String => ''[^']*''
1252             # attribute => 'Attribute Values'
1253             # context => '#stay'
1254             # type => 'RegExpr'
1255 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1256 0           return 1
1257             }
1258 0           return 0;
1259             };
1260              
1261             sub parsectxStyleProperties {
1262 0     0 0   my ($self, $text) = @_;
1263             # attribute => 'Brackets'
1264             # char => '}'
1265             # context => '#pop'
1266             # type => 'DetectChar'
1267 0 0         if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#pop', 'Brackets')) {
1268 0           return 1
1269             }
1270             # attribute => 'Script Comment'
1271             # char => '/'
1272             # char1 => '*'
1273             # context => 'ctxC Style Comment'
1274             # type => 'Detect2Chars'
1275 0 0         if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'ctxC Style Comment', 'Script Comment')) {
1276 0           return 1
1277             }
1278             # attribute => 'Normal Text'
1279             # char => ':'
1280             # context => 'ctxStyle Values'
1281             # type => 'DetectChar'
1282 0 0         if ($self->testDetectChar($text, ':', 0, 0, 0, undef, 0, 'ctxStyle Values', 'Normal Text')) {
1283 0           return 1
1284             }
1285 0           return 0;
1286             };
1287              
1288             sub parsectxStyleValues {
1289 0     0 0   my ($self, $text) = @_;
1290             # attribute => 'Normal Text'
1291             # char => ';'
1292             # context => '#pop'
1293             # type => 'DetectChar'
1294 0 0         if ($self->testDetectChar($text, ';', 0, 0, 0, undef, 0, '#pop', 'Normal Text')) {
1295 0           return 1
1296             }
1297             # attribute => 'Normal Text'
1298             # char => ','
1299             # context => '#stay'
1300             # type => 'DetectChar'
1301 0 0         if ($self->testDetectChar($text, ',', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
1302 0           return 1
1303             }
1304             # attribute => 'Numbers'
1305             # context => '#stay'
1306             # type => 'Int'
1307 0 0         if ($self->testInt($text, 0, undef, 0, '#stay', 'Numbers')) {
1308 0           return 1
1309             }
1310             # attribute => 'Numbers'
1311             # context => '#stay'
1312             # type => 'Float'
1313 0 0         if ($self->testFloat($text, 0, undef, 0, '#stay', 'Numbers')) {
1314 0           return 1
1315             }
1316             # String => '#([0-9a-fA-F]{3})|([0-9a-fA-F]{6})'
1317             # attribute => 'Numbers'
1318             # context => '#stay'
1319             # type => 'RegExpr'
1320 0 0         if ($self->testRegExpr($text, '#([0-9a-fA-F]{3})|([0-9a-fA-F]{6})', 0, 0, 0, undef, 0, '#stay', 'Numbers')) {
1321 0           return 1
1322             }
1323             # String => '"[^"]*"'
1324             # attribute => 'Attribute Values'
1325             # context => '#stay'
1326             # type => 'RegExpr'
1327 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1328 0           return 1
1329             }
1330             # String => ''[^']*''
1331             # attribute => 'Attribute Values'
1332             # context => '#stay'
1333             # type => 'RegExpr'
1334 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1335 0           return 1
1336             }
1337 0           return 0;
1338             };
1339              
1340             sub parsectxTableTag {
1341 0     0 0   my ($self, $text) = @_;
1342             # attribute => 'Table Tags'
1343             # char => '>'
1344             # context => '#pop'
1345             # type => 'DetectChar'
1346 0 0         if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'Table Tags')) {
1347 0           return 1
1348             }
1349             # attribute => 'Normal Text'
1350             # char => '='
1351             # context => '#stay'
1352             # type => 'DetectChar'
1353 0 0         if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
1354 0           return 1
1355             }
1356             # String => '"[^"]*"'
1357             # attribute => 'Attribute Values'
1358             # context => '#stay'
1359             # type => 'RegExpr'
1360 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1361 0           return 1
1362             }
1363             # String => ''[^']*''
1364             # attribute => 'Attribute Values'
1365             # context => '#stay'
1366             # type => 'RegExpr'
1367 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1368 0           return 1
1369             }
1370 0           return 0;
1371             };
1372              
1373             sub parsectxTag {
1374 0     0 0   my ($self, $text) = @_;
1375             # attribute => 'Tags'
1376             # char => '>'
1377             # context => '#pop'
1378             # type => 'DetectChar'
1379 0 0         if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'Tags')) {
1380 0           return 1
1381             }
1382             # attribute => 'Normal Text'
1383             # char => '='
1384             # context => '#stay'
1385             # type => 'DetectChar'
1386 0 0         if ($self->testDetectChar($text, '=', 0, 0, 0, undef, 0, '#stay', 'Normal Text')) {
1387 0           return 1
1388             }
1389             # String => '"[^"]*"'
1390             # attribute => 'Attribute Values'
1391             # context => '#stay'
1392             # type => 'RegExpr'
1393 0 0         if ($self->testRegExpr($text, '"[^"]*"', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1394 0           return 1
1395             }
1396             # String => ''[^']*''
1397             # attribute => 'Attribute Values'
1398             # context => '#stay'
1399             # type => 'RegExpr'
1400 0 0         if ($self->testRegExpr($text, '\'[^\']*\'', 0, 0, 0, undef, 0, '#stay', 'Attribute Values')) {
1401 0           return 1
1402             }
1403 0           return 0;
1404             };
1405              
1406              
1407             1;
1408              
1409             __END__