File Coverage

blib/lib/Syntax/Highlight/Engine/Kate/SQL_PostgreSQL.pm
Criterion Covered Total %
statement 24 97 24.7
branch 0 60 0.0
condition 1 3 33.3
subroutine 4 11 36.3
pod 0 8 0.0
total 29 179 16.2


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 'sql-postgresql.xml' file of the syntax highlight
6             # engine of the kate text editor (http://www.kate-editor.org
7              
8             #kate xml version 1.08
9             #kate version 2.4
10             #kate author Shane Wright (me@shanewright.co.uk)
11             #generated: Sun Feb 3 22:02:06 2008, localtime
12              
13             package Syntax::Highlight::Engine::Kate::SQL_PostgreSQL;
14              
15             our $VERSION = '0.07';
16              
17 1     1   1222 use strict;
  1         3  
  1         40  
18 1     1   9 use warnings;
  1         2  
  1         35  
19 1     1   5 use base('Syntax::Highlight::Engine::Kate::Template');
  1         4  
  1         2269  
20              
21             sub new {
22 1     1 0 782 my $proto = shift;
23 1   33     11 my $class = ref($proto) || $proto;
24 1         13 my $self = $class->SUPER::new(@_);
25 1         20 $self->attributes({
26             'Comment' => 'Comment',
27             'Data Type' => 'DataType',
28             'Decimal' => 'DecVal',
29             'Float' => 'Float',
30             'Function' => 'Function',
31             'Identifier' => 'Others',
32             'Keyword' => 'Keyword',
33             'Normal Text' => 'Normal',
34             'Operator' => 'Normal',
35             'Preprocessor' => 'Others',
36             'String' => 'String',
37             'String Char' => 'Char',
38             'Symbol' => 'Char',
39             });
40 1         15 $self->listAdd('functions',
41             'ABBREV',
42             'ABS',
43             'ACOS',
44             'AGE',
45             'AREA',
46             'ASCII',
47             'ASIN',
48             'ATAN',
49             'ATAN2',
50             'AVG',
51             'BIT_LENGTH',
52             'BOX',
53             'BOX',
54             'BROADCAST',
55             'BTRIM',
56             'CBRT',
57             'CEIL',
58             'CENTER',
59             'CHARACTER_LENGTH',
60             'CHAR_LENGTH',
61             'CHR',
62             'CIRCLE',
63             'COALESCE',
64             'COL_DESCRIPTION',
65             'CONVERT',
66             'COS',
67             'COT',
68             'COUNT',
69             'CURRVAL',
70             'DATE_PART',
71             'DATE_TRUNC',
72             'DECODE',
73             'DEGREES',
74             'DIAMETER',
75             'ENCODE',
76             'EXP',
77             'EXTRACT',
78             'EXTRACT',
79             'FLOOR',
80             'HAS_TABLE_PRIVILEGE',
81             'HEIGHT',
82             'HOST',
83             'INITCAP',
84             'ISCLOSED',
85             'ISFINITE',
86             'ISOPEN',
87             'LENGTH',
88             'LN',
89             'LOG',
90             'LOWER',
91             'LPAD',
92             'LSEG',
93             'LTRIM',
94             'MASKLEN',
95             'MAX',
96             'MIN',
97             'MOD',
98             'NETMASK',
99             'NETWORK',
100             'NEXTVAL',
101             'NOW',
102             'NPOINT',
103             'NULLIF',
104             'OBJ_DESCRIPTION',
105             'OCTET_LENGTH',
106             'PATH',
107             'PCLOSE',
108             'PG_CLIENT_ENCODING',
109             'PG_GET_INDEXDEF',
110             'PG_GET_RULEDEF',
111             'PG_GET_USERBYID',
112             'PG_GET_VIEWDEF',
113             'PI',
114             'POINT',
115             'POLYGON',
116             'POPEN',
117             'POSITION',
118             'POW',
119             'RADIANS',
120             'RADIUS',
121             'RANDOM',
122             'REPEAT',
123             'ROUND',
124             'RPAD',
125             'RTRIM',
126             'SETVAL',
127             'SET_MASKLEN',
128             'SIGN',
129             'SIN',
130             'SQRT',
131             'STDDEV',
132             'STRPOS',
133             'SUBSTR',
134             'SUBSTRING',
135             'SUM',
136             'TAN',
137             'TIMEOFDAY',
138             'TIMESTAMP',
139             'TO_ASCII',
140             'TO_CHAR',
141             'TO_DATE',
142             'TO_NUMBER',
143             'TO_TIMESTAMP',
144             'TRANSLATE',
145             'TRIM',
146             'TRUNC',
147             'UPPER',
148             'VARIANCE',
149             'WIDTH',
150             );
151 1         17 $self->listAdd('keywords',
152             'ABORT',
153             'ACCESS',
154             'ACTION',
155             'ADD',
156             'ADMIN',
157             'AFTER',
158             'AGGREGATE',
159             'ALIAS',
160             'ALL',
161             'ALLOCATE',
162             'ALTER',
163             'ANALYSE',
164             'ANALYZE',
165             'ANY',
166             'ARE',
167             'AS',
168             'ASC',
169             'ASENSITIVE',
170             'ASSERTION',
171             'ASSIGNMENT',
172             'ASYMMETRIC',
173             'AT',
174             'ATOMIC',
175             'AUTHORIZATION',
176             'BACKWARD',
177             'BEFORE',
178             'BEGIN',
179             'BETWEEN',
180             'BINARY',
181             'BOTH',
182             'BREADTH',
183             'BY',
184             'C',
185             'CACHE',
186             'CALL',
187             'CALLED',
188             'CARDINALITY',
189             'CASCADE',
190             'CASCADED',
191             'CASE',
192             'CAST',
193             'CATALOG',
194             'CATALOG_NAME',
195             'CHAIN',
196             'CHARACTERISTICS',
197             'CHARACTER_LENGTH',
198             'CHARACTER_SET_CATALOG',
199             'CHARACTER_SET_NAME',
200             'CHARACTER_SET_SCHEMA',
201             'CHAR_LENGTH',
202             'CHECK',
203             'CHECKED',
204             'CHECKPOINT',
205             'CLASS',
206             'CLASS_ORIGIN',
207             'CLOB',
208             'CLOSE',
209             'CLUSTER',
210             'COALESCE',
211             'COBOL',
212             'COLLATE',
213             'COLLATION',
214             'COLLATION_CATALOG',
215             'COLLATION_NAME',
216             'COLLATION_SCHEMA',
217             'COLUMN',
218             'COLUMN_NAME',
219             'COMMAND_FUNCTION',
220             'COMMAND_FUNCTION_CODE',
221             'COMMENT',
222             'COMMIT',
223             'COMMITTED',
224             'COMPLETION',
225             'CONDITION_NUMBER',
226             'CONNECT',
227             'CONNECTION',
228             'CONNECTION_NAME',
229             'CONSTRAINT',
230             'CONSTRAINTS',
231             'CONSTRAINT_CATALOG',
232             'CONSTRAINT_NAME',
233             'CONSTRAINT_SCHEMA',
234             'CONSTRUCTOR',
235             'CONTAINS',
236             'CONTINUE',
237             'CONVERT',
238             'COPY',
239             'CORRESPONDING',
240             'COUNT',
241             'CREATE',
242             'CREATEDB',
243             'CREATEUSER',
244             'CROSS',
245             'CUBE',
246             'CURRENT',
247             'CURRENT_DATE',
248             'CURRENT_PATH',
249             'CURRENT_ROLE',
250             'CURRENT_TIME',
251             'CURRENT_TIMESTAMP',
252             'CURRENT_USER',
253             'CURSOR',
254             'CURSOR_NAME',
255             'CYCLE',
256             'DATA',
257             'DATABASE',
258             'DATE',
259             'DATETIME_INTERVAL_CODE',
260             'DATETIME_INTERVAL_PRECISION',
261             'DAY',
262             'DEALLOCATE',
263             'DEC',
264             'DECIMAL',
265             'DECLARE',
266             'DEFAULT',
267             'DEFERRABLE',
268             'DEFERRED',
269             'DEFINED',
270             'DEFINER',
271             'DELETE',
272             'DELIMITERS',
273             'DEPTH',
274             'DEREF',
275             'DESC',
276             'DESCRIBE',
277             'DESCRIPTOR',
278             'DESTROY',
279             'DESTRUCTOR',
280             'DETERMINISTIC',
281             'DIAGNOSTICS',
282             'DICTIONARY',
283             'DISCONNECT',
284             'DISPATCH',
285             'DISTINCT',
286             'DO',
287             'DOMAIN',
288             'DOUBLE',
289             'DROP',
290             'DYNAMIC',
291             'DYNAMIC_FUNCTION',
292             'DYNAMIC_FUNCTION_CODE',
293             'EACH',
294             'ELSE',
295             'ENCODING',
296             'ENCRYPTED',
297             'END',
298             'END-EXEC',
299             'EQUALS',
300             'ESCAPE',
301             'EVERY',
302             'EXCEPT',
303             'EXCEPTION',
304             'EXCLUSIVE',
305             'EXEC',
306             'EXECUTE',
307             'EXISTING',
308             'EXISTS',
309             'EXPLAIN',
310             'EXTERNAL',
311             'FALSE',
312             'FETCH',
313             'FINAL',
314             'FIRST',
315             'FOR',
316             'FORCE',
317             'FOREIGN',
318             'FORTRAN',
319             'FORWARD',
320             'FOUND',
321             'FREE',
322             'FREEZE',
323             'FROM',
324             'FULL',
325             'FUNCTION',
326             'G',
327             'GENERAL',
328             'GENERATED',
329             'GET',
330             'GLOBAL',
331             'GO',
332             'GOTO',
333             'GRANT',
334             'GRANTED',
335             'GROUP',
336             'GROUPING',
337             'HANDLER',
338             'HAVING',
339             'HIERARCHY',
340             'HOLD',
341             'HOST',
342             'HOUR',
343             'IDENTITY',
344             'IGNORE',
345             'ILIKE',
346             'IMMEDIATE',
347             'IMMUTABLE',
348             'IMPLEMENTATION',
349             'IN',
350             'INCREMENT',
351             'INDEX',
352             'INDICATOR',
353             'INFIX',
354             'INHERITS',
355             'INITIALIZE',
356             'INITIALLY',
357             'INNER',
358             'INOUT',
359             'INPUT',
360             'INSENSITIVE',
361             'INSERT',
362             'INSTANCE',
363             'INSTANTIABLE',
364             'INSTEAD',
365             'INTERSECT',
366             'INTERVAL',
367             'INTO',
368             'INVOKER',
369             'IS',
370             'ISNULL',
371             'ISOLATION',
372             'ITERATE',
373             'JOIN',
374             'K',
375             'KEY',
376             'KEY_MEMBER',
377             'KEY_TYPE',
378             'LANCOMPILER',
379             'LANGUAGE',
380             'LARGE',
381             'LAST',
382             'LATERAL',
383             'LEADING',
384             'LEFT',
385             'LENGTH',
386             'LESS',
387             'LEVEL',
388             'LIKE',
389             'LIMIT',
390             'LISTEN',
391             'LOAD',
392             'LOCAL',
393             'LOCALTIME',
394             'LOCALTIMESTAMP',
395             'LOCATION',
396             'LOCATOR',
397             'LOCK',
398             'LOWER',
399             'M',
400             'MAP',
401             'MATCH',
402             'MAX',
403             'MAXVALUE',
404             'MESSAGE_LENGTH',
405             'MESSAGE_OCTET_LENGTH',
406             'MESSAGE_TEXT',
407             'METHOD',
408             'MIN',
409             'MINUTE',
410             'MINVALUE',
411             'MOD',
412             'MODE',
413             'MODIFIES',
414             'MODIFY',
415             'MODULE',
416             'MONTH',
417             'MORE',
418             'MOVE',
419             'MUMPS',
420             'NAME',
421             'NAMES',
422             'NATIONAL',
423             'NATURAL',
424             'NEW',
425             'NEXT',
426             'NO',
427             'NOCREATEDB',
428             'NOCREATEUSER',
429             'NONE',
430             'NOT',
431             'NOTHING',
432             'NOTIFY',
433             'NOTNULL',
434             'NULL',
435             'NULLABLE',
436             'NULLIF',
437             'NUMBER',
438             'NUMERIC',
439             'OBJECT',
440             'OCTET_LENGTH',
441             'OF',
442             'OFF',
443             'OFFSET',
444             'OIDS',
445             'OLD',
446             'ON',
447             'ONLY',
448             'OPEN',
449             'OPERATION',
450             'OPERATOR',
451             'OPTION',
452             'OPTIONS',
453             'ORDER',
454             'ORDINALITY',
455             'OUT',
456             'OUTER',
457             'OUTPUT',
458             'OVERLAPS',
459             'OVERLAY',
460             'OVERRIDING',
461             'OWNER',
462             'PAD',
463             'PARAMETER',
464             'PARAMETERS',
465             'PARAMETER_MODE',
466             'PARAMETER_NAME',
467             'PARAMETER_ORDINAL_POSITION',
468             'PARAMETER_SPECIFIC_CATALOG',
469             'PARAMETER_SPECIFIC_NAME',
470             'PARAMETER_SPECIFIC_SCHEMA',
471             'PARTIAL',
472             'PASCAL',
473             'PASSWORD',
474             'PATH',
475             'PENDANT',
476             'PLI',
477             'POSITION',
478             'POSTFIX',
479             'PRECISION',
480             'PREFIX',
481             'PREORDER',
482             'PREPARE',
483             'PRESERVE',
484             'PRIMARY',
485             'PRIOR',
486             'PRIVILEGES',
487             'PROCEDURAL',
488             'PROCEDURE',
489             'PUBLIC',
490             'READ',
491             'READS',
492             'REAL',
493             'RECURSIVE',
494             'REF',
495             'REFERENCES',
496             'REFERENCING',
497             'REINDEX',
498             'RELATIVE',
499             'RENAME',
500             'REPEATABLE',
501             'REPLACE',
502             'RESET',
503             'RESTRICT',
504             'RESULT',
505             'RETURN',
506             'RETURNED_LENGTH',
507             'RETURNED_OCTET_LENGTH',
508             'RETURNED_SQLSTATE',
509             'RETURNS',
510             'REVOKE',
511             'RIGHT',
512             'ROLE',
513             'ROLLBACK',
514             'ROLLUP',
515             'ROUTINE',
516             'ROUTINE_CATALOG',
517             'ROUTINE_NAME',
518             'ROUTINE_SCHEMA',
519             'ROW',
520             'ROWS',
521             'ROW_COUNT',
522             'RULE',
523             'SAVEPOINT',
524             'SCALE',
525             'SCHEMA',
526             'SCHEMA_NAME',
527             'SCOPE',
528             'SCROLL',
529             'SEARCH',
530             'SECOND',
531             'SECTION',
532             'SECURITY',
533             'SELECT',
534             'SELF',
535             'SENSITIVE',
536             'SEQUENCE',
537             'SERIALIZABLE',
538             'SERVER_NAME',
539             'SESSION',
540             'SESSION_USER',
541             'SET',
542             'SETOF',
543             'SETS',
544             'SHARE',
545             'SHOW',
546             'SIMILAR',
547             'SIMPLE',
548             'SIZE',
549             'SOME',
550             'SOURCE',
551             'SPACE',
552             'SPECIFIC',
553             'SPECIFICTYPE',
554             'SPECIFIC_NAME',
555             'SQL',
556             'SQLCODE',
557             'SQLERROR',
558             'SQLEXCEPTION',
559             'SQLSTATE',
560             'SQLWARNING',
561             'STABLE',
562             'START',
563             'STATE',
564             'STATEMENT',
565             'STATIC',
566             'STATISTICS',
567             'STDIN',
568             'STDOUT',
569             'STRUCTURE',
570             'STYLE',
571             'SUBCLASS_ORIGIN',
572             'SUBLIST',
573             'SUBSTRING',
574             'SUM',
575             'SYMMETRIC',
576             'SYSID',
577             'SYSTEM',
578             'SYSTEM_USER',
579             'TABLE',
580             'TABLE_NAME',
581             'TEMP',
582             'TEMPLATE',
583             'TEMPORARY',
584             'TERMINATE',
585             'THAN',
586             'THEN',
587             'TIMEZONE_HOUR',
588             'TIMEZONE_MINUTE',
589             'TO',
590             'TOAST',
591             'TRAILING',
592             'TRANSACTION',
593             'TRANSACTIONS_COMMITTED',
594             'TRANSACTIONS_ROLLED_BACK',
595             'TRANSACTION_ACTIVE',
596             'TRANSFORM',
597             'TRANSFORMS',
598             'TRANSLATE',
599             'TRANSLATION',
600             'TREAT',
601             'TRIGGER',
602             'TRIGGER_CATALOG',
603             'TRIGGER_NAME',
604             'TRIGGER_SCHEMA',
605             'TRIM',
606             'TRUE',
607             'TRUNCATE',
608             'TRUSTED',
609             'TYPE',
610             'UNCOMMITTED',
611             'UNDER',
612             'UNENCRYPTED',
613             'UNION',
614             'UNIQUE',
615             'UNKNOWN',
616             'UNLISTEN',
617             'UNNAMED',
618             'UNNEST',
619             'UNTIL',
620             'UPDATE',
621             'UPPER',
622             'USAGE',
623             'USER',
624             'USER_DEFINED_TYPE_CATALOG',
625             'USER_DEFINED_TYPE_NAME',
626             'USER_DEFINED_TYPE_SCHEMA',
627             'USING',
628             'VACUUM',
629             'VALID',
630             'VALUE',
631             'VALUES',
632             'VARIABLE',
633             'VARYING',
634             'VERBOSE',
635             'VERSION',
636             'VIEW',
637             'VOLATILE',
638             'WHEN',
639             'WHENEVER',
640             'WHERE',
641             'WITH',
642             'WITHOUT',
643             'WORK',
644             'WRITE',
645             'YEAR',
646             'ZONE',
647             );
648 1         19 $self->listAdd('operators',
649             '!',
650             '!!',
651             '!=',
652             '!~',
653             '!~*',
654             '#',
655             '##',
656             '%',
657             '&',
658             '&&',
659             '&<',
660             '&>',
661             '*',
662             '**',
663             '+',
664             '-',
665             '..',
666             '/',
667             ':=',
668             '<',
669             '<->',
670             '<<',
671             '<<=',
672             '<=',
673             '<>',
674             '<^',
675             '=',
676             '=>',
677             '>',
678             '>=',
679             '>>',
680             '>>=',
681             '>^',
682             '?#',
683             '?-',
684             '?-|',
685             '?|',
686             '?||',
687             '@',
688             '@-@',
689             '@@',
690             'AND',
691             'NOT',
692             'OR',
693             '^',
694             '^=',
695             '|',
696             '|/',
697             '||',
698             '||/',
699             '~',
700             '~*',
701             '~=',
702             );
703 1         7 $self->listAdd('types',
704             'BIGINT',
705             'BIGSERIAL',
706             'BIT',
707             'BIT VARYING',
708             'BOOL',
709             'BOOLEAN',
710             'BOX',
711             'BYTEA',
712             'CHAR',
713             'CHARACTER',
714             'CHARACTER VARYING',
715             'CIDR',
716             'CIRCLE',
717             'DATE',
718             'DECIMAL',
719             'DOUBLE PRECISION',
720             'FLOAT8',
721             'INET',
722             'INT',
723             'INT2',
724             'INT4',
725             'INT8',
726             'INTEGER',
727             'INTERVAL',
728             'LINE',
729             'LSEG',
730             'LZTEXT',
731             'MACADDR',
732             'MONEY',
733             'NUMERIC',
734             'OID',
735             'PATH',
736             'POINT',
737             'POLYGON',
738             'REAL',
739             'SERIAL',
740             'SERIAL8',
741             'SMALLINT',
742             'TEXT',
743             'TIME',
744             'TIMESTAMP',
745             'TIMESTAMP WITH TIMEZONE',
746             'TIMESTAMPTZ',
747             'TIMETZ',
748             'VARBIT',
749             'VARCHAR',
750             );
751 1         28 $self->contextdata({
752             'Identifier' => {
753             callback => \&parseIdentifier,
754             attribute => 'Identifier',
755             lineending => '#pop',
756             },
757             'MultiLineComment' => {
758             callback => \&parseMultiLineComment,
759             attribute => 'Comment',
760             },
761             'Normal' => {
762             callback => \&parseNormal,
763             attribute => 'Normal Text',
764             },
765             'Preprocessor' => {
766             callback => \&parsePreprocessor,
767             attribute => 'Preprocessor',
768             lineending => '#pop',
769             },
770             'SingleLineComment' => {
771             callback => \&parseSingleLineComment,
772             attribute => 'Comment',
773             lineending => '#pop',
774             },
775             'String' => {
776             callback => \&parseString,
777             attribute => 'String',
778             },
779             });
780 1         13 $self->deliminators('\\s||\\(|\\)|,|;|\\[|\\]|\\{|\\}|\\\\|\\+|-|\\*|\\/|\\||\\!|@|\\&|#|<|>|\\%|\\^|=|\\~|:|\\.|\\?');
781 1         6 $self->basecontext('Normal');
782 1         11 $self->keywordscase(0);
783 1         5 $self->initialize;
784 1         4 bless ($self, $class);
785 1         5 return $self;
786             }
787              
788             sub language {
789 0     0 0   return 'SQL (PostgreSQL)';
790             }
791              
792             sub parseIdentifier {
793 0     0 0   my ($self, $text) = @_;
794             # attribute => 'Identifier'
795             # char => '"'
796             # context => '#pop'
797             # type => 'DetectChar'
798 0 0         if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop', 'Identifier')) {
799 0           return 1
800             }
801 0           return 0;
802             };
803              
804             sub parseMultiLineComment {
805 0     0 0   my ($self, $text) = @_;
806             # attribute => 'Comment'
807             # context => '#pop'
808             # type => 'LineContinue'
809 0 0         if ($self->testLineContinue($text, 0, undef, 0, '#pop', 'Comment')) {
810 0           return 1
811             }
812             # attribute => 'Comment'
813             # char => '*'
814             # char1 => '/'
815             # context => '#pop'
816             # endRegion => 'Comment'
817             # type => 'Detect2Chars'
818 0 0         if ($self->testDetect2Chars($text, '*', '/', 0, 0, 0, undef, 0, '#pop', 'Comment')) {
819 0           return 1
820             }
821 0           return 0;
822             };
823              
824             sub parseNormal {
825 0     0 0   my ($self, $text) = @_;
826             # String => 'keywords'
827             # attribute => 'Keyword'
828             # context => '#stay'
829             # type => 'keyword'
830 0 0         if ($self->testKeyword($text, 'keywords', 0, undef, 0, '#stay', 'Keyword')) {
831 0           return 1
832             }
833             # String => 'operators'
834             # attribute => 'Operator'
835             # context => '#stay'
836             # type => 'keyword'
837 0 0         if ($self->testKeyword($text, 'operators', 0, undef, 0, '#stay', 'Operator')) {
838 0           return 1
839             }
840             # String => 'functions'
841             # attribute => 'Function'
842             # context => '#stay'
843             # type => 'keyword'
844 0 0         if ($self->testKeyword($text, 'functions', 0, undef, 0, '#stay', 'Function')) {
845 0           return 1
846             }
847             # String => 'types'
848             # attribute => 'Data Type'
849             # context => '#stay'
850             # type => 'keyword'
851 0 0         if ($self->testKeyword($text, 'types', 0, undef, 0, '#stay', 'Data Type')) {
852 0           return 1
853             }
854             # String => '%bulk_exceptions\b'
855             # attribute => 'Data Type'
856             # context => '#stay'
857             # insensitive => 'true'
858             # type => 'RegExpr'
859 0 0         if ($self->testRegExpr($text, '%bulk_exceptions\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
860 0           return 1
861             }
862             # String => '%bulk_rowcount\b'
863             # attribute => 'Data Type'
864             # context => '#stay'
865             # insensitive => 'true'
866             # type => 'RegExpr'
867 0 0         if ($self->testRegExpr($text, '%bulk_rowcount\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
868 0           return 1
869             }
870             # String => '%found\b'
871             # attribute => 'Data Type'
872             # context => '#stay'
873             # insensitive => 'true'
874             # type => 'RegExpr'
875 0 0         if ($self->testRegExpr($text, '%found\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
876 0           return 1
877             }
878             # String => '%isopen\b'
879             # attribute => 'Data Type'
880             # context => '#stay'
881             # insensitive => 'true'
882             # type => 'RegExpr'
883 0 0         if ($self->testRegExpr($text, '%isopen\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
884 0           return 1
885             }
886             # String => '%notfound\b'
887             # attribute => 'Data Type'
888             # context => '#stay'
889             # insensitive => 'true'
890             # type => 'RegExpr'
891 0 0         if ($self->testRegExpr($text, '%notfound\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
892 0           return 1
893             }
894             # String => '%rowcount\b'
895             # attribute => 'Data Type'
896             # context => '#stay'
897             # insensitive => 'true'
898             # type => 'RegExpr'
899 0 0         if ($self->testRegExpr($text, '%rowcount\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
900 0           return 1
901             }
902             # String => '%rowtype\b'
903             # attribute => 'Data Type'
904             # context => '#stay'
905             # insensitive => 'true'
906             # type => 'RegExpr'
907 0 0         if ($self->testRegExpr($text, '%rowtype\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
908 0           return 1
909             }
910             # String => '%type\b'
911             # attribute => 'Data Type'
912             # context => '#stay'
913             # insensitive => 'true'
914             # type => 'RegExpr'
915 0 0         if ($self->testRegExpr($text, '%type\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
916 0           return 1
917             }
918             # attribute => 'Float'
919             # context => '#stay'
920             # type => 'Float'
921 0 0         if ($self->testFloat($text, 0, undef, 0, '#stay', 'Float')) {
922 0           return 1
923             }
924             # attribute => 'Decimal'
925             # context => '#stay'
926             # type => 'Int'
927 0 0         if ($self->testInt($text, 0, undef, 0, '#stay', 'Decimal')) {
928 0           return 1
929             }
930             # attribute => 'String'
931             # char => '''
932             # context => 'String'
933             # type => 'DetectChar'
934 0 0         if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, 'String', 'String')) {
935 0           return 1
936             }
937             # attribute => 'Comment'
938             # char => '#'
939             # context => 'SingleLineComment'
940             # type => 'DetectChar'
941 0 0         if ($self->testDetectChar($text, '#', 0, 0, 0, undef, 0, 'SingleLineComment', 'Comment')) {
942 0           return 1
943             }
944             # attribute => 'Comment'
945             # char => '-'
946             # char1 => '-'
947             # context => 'SingleLineComment'
948             # type => 'Detect2Chars'
949 0 0         if ($self->testDetect2Chars($text, '-', '-', 0, 0, 0, undef, 0, 'SingleLineComment', 'Comment')) {
950 0           return 1
951             }
952             # attribute => 'Comment'
953             # beginRegion => 'Comment'
954             # char => '/'
955             # char1 => '*'
956             # context => 'MultiLineComment'
957             # type => 'Detect2Chars'
958 0 0         if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'MultiLineComment', 'Comment')) {
959 0           return 1
960             }
961             # String => 'rem\b'
962             # attribute => 'Comment'
963             # column => '0'
964             # context => 'SingleLineComment'
965             # insensitive => 'true'
966             # type => 'RegExpr'
967 0 0         if ($self->testRegExpr($text, 'rem\\b', 1, 0, 0, 0, 0, 'SingleLineComment', 'Comment')) {
968 0           return 1
969             }
970             # attribute => 'Comment'
971             # char => '"'
972             # context => 'Identifier'
973             # type => 'DetectChar'
974 0 0         if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'Identifier', 'Comment')) {
975 0           return 1
976             }
977             # String => ':&'
978             # attribute => 'Symbol'
979             # context => '#stay'
980             # type => 'AnyChar'
981 0 0         if ($self->testAnyChar($text, ':&', 0, 0, undef, 0, '#stay', 'Symbol')) {
982 0           return 1
983             }
984             # String => '/$'
985             # attribute => 'Symbol'
986             # column => '0'
987             # context => '#stay'
988             # type => 'RegExpr'
989 0 0         if ($self->testRegExpr($text, '/$', 0, 0, 0, 0, 0, '#stay', 'Symbol')) {
990 0           return 1
991             }
992             # String => '@@?[^@ \t\r\n]'
993             # attribute => 'Preprocessor'
994             # column => '0'
995             # context => 'Preprocessor'
996             # type => 'RegExpr'
997 0 0         if ($self->testRegExpr($text, '@@?[^@ \\t\\r\\n]', 0, 0, 0, 0, 0, 'Preprocessor', 'Preprocessor')) {
998 0           return 1
999             }
1000 0           return 0;
1001             };
1002              
1003             sub parsePreprocessor {
1004 0     0 0   my ($self, $text) = @_;
1005 0           return 0;
1006             };
1007              
1008             sub parseSingleLineComment {
1009 0     0 0   my ($self, $text) = @_;
1010 0           return 0;
1011             };
1012              
1013             sub parseString {
1014 0     0 0   my ($self, $text) = @_;
1015             # attribute => 'String'
1016             # context => '#pop'
1017             # type => 'LineContinue'
1018 0 0         if ($self->testLineContinue($text, 0, undef, 0, '#pop', 'String')) {
1019 0           return 1
1020             }
1021             # attribute => 'String Char'
1022             # context => '#stay'
1023             # type => 'HlCStringChar'
1024 0 0         if ($self->testHlCStringChar($text, 0, undef, 0, '#stay', 'String Char')) {
1025 0           return 1
1026             }
1027             # attribute => 'Symbol'
1028             # char => '&'
1029             # context => '#stay'
1030             # type => 'DetectChar'
1031 0 0         if ($self->testDetectChar($text, '&', 0, 0, 0, undef, 0, '#stay', 'Symbol')) {
1032 0           return 1
1033             }
1034             # attribute => 'String'
1035             # char => '''
1036             # context => '#pop'
1037             # type => 'DetectChar'
1038 0 0         if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, '#pop', 'String')) {
1039 0           return 1
1040             }
1041 0           return 0;
1042             };
1043              
1044              
1045             1;
1046              
1047             __END__