File Coverage

blib/lib/Syntax/Highlight/Engine/Kate/SQL.pm
Criterion Covered Total %
statement 24 93 25.8
branch 0 54 0.0
condition 1 3 33.3
subroutine 4 12 33.3
pod 0 9 0.0
total 29 171 16.9


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.xml' file of the syntax highlight
6             # engine of the kate text editor (http://www.kate-editor.org
7              
8             #kate xml version 1.11
9             #kate version 2.4
10             #kate author Yury Lebedev (yurylebedev@mail.ru)
11             #generated: Sun Feb 3 22:02:06 2008, localtime
12              
13             package Syntax::Highlight::Engine::Kate::SQL;
14              
15             our $VERSION = '0.07';
16              
17 1     1   1144 use strict;
  1         3  
  1         44  
18 1     1   7 use warnings;
  1         3  
  1         38  
19 1     1   6 use base('Syntax::Highlight::Engine::Kate::Template');
  1         3  
  1         2599  
20              
21             sub new {
22 1     1 0 716 my $proto = shift;
23 1   33     10 my $class = ref($proto) || $proto;
24 1         14 my $self = $class->SUPER::new(@_);
25 1         24 $self->attributes({
26             'Comment' => 'Comment',
27             'Data Type' => 'DataType',
28             'Decimal' => 'DecVal',
29             'External Variable' => 'Char',
30             'Float' => 'Float',
31             'Function' => 'Function',
32             'Identifier' => 'Others',
33             'Keyword' => 'Keyword',
34             'Normal Text' => 'Normal',
35             'Operator' => 'Normal',
36             'Preprocessor' => 'Others',
37             'String' => 'String',
38             'String Char' => 'Char',
39             'Symbol' => 'Char',
40             });
41 1         16 $self->listAdd('functions',
42             'ABS',
43             'ACOS',
44             'ADD_MONTHS',
45             'ASCII',
46             'ASCIISTR',
47             'ASIN',
48             'ATAN',
49             'ATAN2',
50             'AVG',
51             'BFILENAME',
52             'BIN_TO_NUM',
53             'BITAND',
54             'CARDINALITY',
55             'CAST',
56             'CEIL',
57             'CHARTOROWID',
58             'CHR',
59             'COALESCE',
60             'COLLECT',
61             'COMPOSE',
62             'CONCAT',
63             'CONVERT',
64             'CORR',
65             'CORR_K',
66             'CORR_S',
67             'COS',
68             'COSH',
69             'COUNT',
70             'COVAR_POP',
71             'COVAR_SAMP',
72             'CUME_DIST',
73             'CURRENT_DATE',
74             'CURRENT_TIMESTAMP',
75             'CV',
76             'DBTIMEZONE',
77             'DECODE',
78             'DECOMPOSE',
79             'DENSE_RANK',
80             'DEPTH',
81             'DEREF',
82             'DUMP',
83             'EMPTY_BLOB',
84             'EMPTY_CLOB',
85             'EXISTSNODE',
86             'EXP',
87             'EXTRACT',
88             'EXTRACTVALUE',
89             'FIRST',
90             'FIRST_VALUE',
91             'FLOOR',
92             'FROM_TZ',
93             'GREATEST',
94             'GROUPING',
95             'GROUPING_ID',
96             'GROUP_ID',
97             'HEXTORAW',
98             'INITCAP',
99             'INSTR',
100             'INSTRB',
101             'LAG',
102             'LAST',
103             'LAST_DAY',
104             'LAST_VALUE',
105             'LEAD',
106             'LEAST',
107             'LENGTH',
108             'LENGTHB',
109             'LN',
110             'LNNVL',
111             'LOCALTIMESTAMP',
112             'LOG',
113             'LOWER',
114             'LPAD',
115             'LTRIM',
116             'MAKE_REF',
117             'MAX',
118             'MEDIAN',
119             'MIN',
120             'MOD',
121             'MONTHS_BETWEEN',
122             'NANVL',
123             'NCHR',
124             'NEW_TIME',
125             'NEXT_DAY',
126             'NLSSORT',
127             'NLS_CHARSET_DECL_LEN',
128             'NLS_CHARSET_ID',
129             'NLS_CHARSET_NAME',
130             'NLS_INITCAP',
131             'NLS_LOWER',
132             'NLS_UPPER',
133             'NTILE',
134             'NULLIF',
135             'NUMTODSINTERVAL',
136             'NUMTOYMINTERVAL',
137             'NVL',
138             'NVL2',
139             'ORA_HASH',
140             'ORA_ROWSCN',
141             'PERCENTILE_CONT',
142             'PERCENTILE_DISC',
143             'PERCENT_RANK',
144             'POWER',
145             'POWERMULTISET',
146             'POWERMULTISET_BY_CARDINALITY',
147             'PRESENTNNV',
148             'PRESENTV',
149             'RANK',
150             'RATIO_TO_REPORT',
151             'RAWTOHEX',
152             'RAWTONHEX',
153             'REF',
154             'REFTOHEX',
155             'REGEXP_INSTR',
156             'REGEXP_LIKE',
157             'REGEXP_REPLACE',
158             'REGEXP_SUBSTR',
159             'REGR_AVGX',
160             'REGR_AVGY',
161             'REGR_COUNT',
162             'REGR_INTERCEPT',
163             'REGR_R2',
164             'REGR_SLOPE',
165             'REGR_SXX',
166             'REGR_SXY',
167             'REGR_SYY',
168             'REMAINDER',
169             'ROUND',
170             'ROWIDTOCHAR',
171             'ROWIDTONCHAR',
172             'ROW_NUMBER',
173             'RPAD',
174             'RTRIM',
175             'SCN_TO_TIMESTAMP',
176             'SESSIONTIMEZONE',
177             'SIGN',
178             'SIN',
179             'SINH',
180             'SOUNDEX',
181             'SQRT',
182             'STATS_BINOMIAL_TEST',
183             'STATS_CROSSTAB',
184             'STATS_F_TEST',
185             'STATS_KS_TEST',
186             'STATS_MODE',
187             'STATS_MW_TEST',
188             'STATS_ONE_WAY_ANOVA',
189             'STATS_T_TEST_INDEP',
190             'STATS_T_TEST_INDEPU',
191             'STATS_T_TEST_ONE',
192             'STATS_T_TEST_PAIRED',
193             'STATS_WSR_TEST',
194             'STDDEV',
195             'STDDEV_POP',
196             'STDDEV_SAMP',
197             'SUBSTR',
198             'SUBSTRB',
199             'SUM',
200             'SYSDATE',
201             'SYSTIMESTAMP',
202             'SYS_CONNECT_BY_PATH',
203             'SYS_CONTEXT',
204             'SYS_DBURIGEN',
205             'SYS_EXTRACT_UTC',
206             'SYS_GUID',
207             'SYS_TYPEID',
208             'SYS_XMLAGG',
209             'SYS_XMLGEN',
210             'TAN',
211             'TANH',
212             'TIMESTAMP_TO_SCN',
213             'TO_BINARY_DOUBLE',
214             'TO_BINARY_FLOAT',
215             'TO_CHAR',
216             'TO_CLOB',
217             'TO_DATE',
218             'TO_DSINTERVAL',
219             'TO_LOB',
220             'TO_MULTI_BYTE',
221             'TO_NCHAR',
222             'TO_NCLOB',
223             'TO_NUMBER',
224             'TO_SINGLE_BYTE',
225             'TO_TIMESTAMP',
226             'TO_TIMESTAMP_TZ',
227             'TO_YMINTERVAL',
228             'TRANSLATE',
229             'TREAT',
230             'TRIM',
231             'TRUNC',
232             'TZ_OFFSET',
233             'UID',
234             'UNISTR',
235             'UPDATEXML',
236             'UPPER',
237             'USER',
238             'USERENV',
239             'VALUE',
240             'VARIANCE',
241             'VAR_POP',
242             'VAR_SAMP',
243             'VSIZE',
244             'WIDTH_BUCKET',
245             'XMLAGG',
246             'XMLCOLATTVAL',
247             'XMLCONCAT',
248             'XMLELEMENT',
249             'XMLFOREST',
250             'XMLSEQUENCE',
251             'XMLTRANSFORM',
252             );
253 1         19 $self->listAdd('keywords',
254             'ACCESS',
255             'ACCOUNT',
256             'ADD',
257             'ADMIN',
258             'ADMINISTER',
259             'ADVISE',
260             'AFTER',
261             'AGENT',
262             'ALL',
263             'ALLOCATE',
264             'ALL_ROWS',
265             'ALTER',
266             'ANALYZE',
267             'ANCILLARY',
268             'AND',
269             'ANY',
270             'ARCHIVE',
271             'ARCHIVELOG',
272             'AS',
273             'ASC',
274             'ASSERTION',
275             'ASSOCIATE',
276             'AT',
277             'ATTRIBUTE',
278             'ATTRIBUTES',
279             'AUDIT',
280             'AUTHENTICATED',
281             'AUTHID',
282             'AUTHORIZATION',
283             'AUTOALLOCATE',
284             'AUTOEXTEND',
285             'AUTOMATIC',
286             'BACKUP',
287             'BECOME',
288             'BEFORE',
289             'BEGIN',
290             'BEHALF',
291             'BETWEEN',
292             'BINDING',
293             'BITMAP',
294             'BLOCK',
295             'BLOCK_RANGE',
296             'BODY',
297             'BOTH',
298             'BOUND',
299             'BREAK',
300             'BROADCAST',
301             'BTITLE',
302             'BUFFER_POOL',
303             'BUILD',
304             'BULK',
305             'BY',
306             'CACHE',
307             'CACHE_INSTANCES',
308             'CALL',
309             'CANCEL',
310             'CASCADE',
311             'CASE',
312             'CATEGORY',
313             'CHAINED',
314             'CHANGE',
315             'CHECK',
316             'CHECKPOINT',
317             'CHILD',
318             'CHOOSE',
319             'CHUNK',
320             'CLASS',
321             'CLEAR',
322             'CLONE',
323             'CLOSE',
324             'CLOSE_CACHED_OPEN_CURSORS',
325             'CLUSTER',
326             'COALESCE',
327             'COLUMN',
328             'COLUMNS',
329             'COLUMN_VALUE',
330             'COMMENT',
331             'COMMIT',
332             'COMMITTED',
333             'COMPATIBILITY',
334             'COMPILE',
335             'COMPLETE',
336             'COMPOSITE_LIMIT',
337             'COMPRESS',
338             'COMPUTE',
339             'CONNECT',
340             'CONNECT_TIME',
341             'CONSIDER',
342             'CONSISTENT',
343             'CONSTANT',
344             'CONSTRAINT',
345             'CONSTRAINTS',
346             'CONTAINER',
347             'CONTENTS',
348             'CONTEXT',
349             'CONTINUE',
350             'CONTROLFILE',
351             'COPY',
352             'COST',
353             'CPU_PER_CALL',
354             'CPU_PER_SESSION',
355             'CREATE',
356             'CREATE_STORED_OUTLINES',
357             'CROSS',
358             'CUBE',
359             'CURRENT',
360             'CURSOR',
361             'CYCLE',
362             'DANGLING',
363             'DATA',
364             'DATABASE',
365             'DATAFILE',
366             'DATAFILES',
367             'DBA',
368             'DDL',
369             'DEALLOCATE',
370             'DEBUG',
371             'DECLARE',
372             'DEFAULT',
373             'DEFERRABLE',
374             'DEFERRED',
375             'DEFINER',
376             'DEGREE',
377             'DELETE',
378             'DEMAND',
379             'DESC',
380             'DETERMINES',
381             'DICTIONARY',
382             'DIMENSION',
383             'DIRECTORY',
384             'DISABLE',
385             'DISASSOCIATE',
386             'DISCONNECT',
387             'DISKGROUP',
388             'DISMOUNT',
389             'DISTINCT',
390             'DISTRIBUTED',
391             'DOMAIN',
392             'DROP',
393             'DYNAMIC',
394             'EACH',
395             'ELSE',
396             'EMPTY',
397             'ENABLE',
398             'END',
399             'ENFORCE',
400             'ENTRY',
401             'ESCAPE',
402             'ESTIMATE',
403             'EVENTS',
404             'EXCEPT',
405             'EXCEPTION',
406             'EXCEPTIONS',
407             'EXCHANGE',
408             'EXCLUDING',
409             'EXCLUSIVE',
410             'EXEC',
411             'EXECUTE',
412             'EXISTS',
413             'EXPIRE',
414             'EXPLAIN',
415             'EXPLOSION',
416             'EXTENDS',
417             'EXTENT',
418             'EXTENTS',
419             'EXTERNALLY',
420             'FAILED_LOGIN_ATTEMPTS',
421             'FALSE',
422             'FAST',
423             'FILE',
424             'FILTER',
425             'FIRST_ROWS',
426             'FLAGGER',
427             'FLASHBACK',
428             'FLUSH',
429             'FOLLOWING',
430             'FOR',
431             'FORCE',
432             'FOREIGN',
433             'FREELIST',
434             'FREELISTS',
435             'FRESH',
436             'FROM',
437             'FULL',
438             'FUNCTION',
439             'FUNCTIONS',
440             'GENERATED',
441             'GLOBAL',
442             'GLOBALLY',
443             'GLOBAL_NAME',
444             'GRANT',
445             'GROUP',
446             'GROUPS',
447             'HASH',
448             'HASHKEYS',
449             'HAVING',
450             'HEADER',
451             'HEAP',
452             'HIERARCHY',
453             'HOUR',
454             'ID',
455             'IDENTIFIED',
456             'IDENTIFIER',
457             'IDGENERATORS',
458             'IDLE_TIME',
459             'IF',
460             'IMMEDIATE',
461             'IN',
462             'INCLUDING',
463             'INCREMENT',
464             'INCREMENTAL',
465             'INDEX',
466             'INDEXED',
467             'INDEXES',
468             'INDEXTYPE',
469             'INDEXTYPES',
470             'INDICATOR',
471             'INITIAL',
472             'INITIALIZED',
473             'INITIALLY',
474             'INITRANS',
475             'INNER',
476             'INSERT',
477             'INSTANCE',
478             'INSTANCES',
479             'INSTEAD',
480             'INTERMEDIATE',
481             'INTERSECT',
482             'INTO',
483             'INVALIDATE',
484             'IS',
485             'ISOLATION',
486             'ISOLATION_LEVEL',
487             'JAVA',
488             'JOIN',
489             'KEEP',
490             'KEY',
491             'KILL',
492             'LABEL',
493             'LAYER',
494             'LEADING',
495             'LEFT',
496             'LESS',
497             'LEVEL',
498             'LIBRARY',
499             'LIKE',
500             'LIMIT',
501             'LINK',
502             'LIST',
503             'LOCAL',
504             'LOCATOR',
505             'LOCK',
506             'LOCKED',
507             'LOGFILE',
508             'LOGGING',
509             'LOGICAL_READS_PER_CALL',
510             'LOGICAL_READS_PER_SESSION',
511             'LOGOFF',
512             'LOGON',
513             'MANAGE',
514             'MANAGED',
515             'MANAGEMENT',
516             'MASTER',
517             'MATERIALIZED',
518             'MAXARCHLOGS',
519             'MAXDATAFILES',
520             'MAXEXTENTS',
521             'MAXINSTANCES',
522             'MAXLOGFILES',
523             'MAXLOGHISTORY',
524             'MAXLOGMEMBERS',
525             'MAXSIZE',
526             'MAXTRANS',
527             'MAXVALUE',
528             'MEMBER',
529             'MERGE',
530             'METHOD',
531             'MINEXTENTS',
532             'MINIMIZE',
533             'MINIMUM',
534             'MINUS',
535             'MINUTE',
536             'MINVALUE',
537             'MODE',
538             'MODIFY',
539             'MONITORING',
540             'MOUNT',
541             'MOVE',
542             'MOVEMENT',
543             'MTS_DISPATCHERS',
544             'MULTISET',
545             'NAMED',
546             'NATURAL',
547             'NEEDED',
548             'NESTED',
549             'NESTED_TABLE_ID',
550             'NETWORK',
551             'NEVER',
552             'NEW',
553             'NEXT',
554             'NLS_CALENDAR',
555             'NLS_CHARACTERSET',
556             'NLS_COMP',
557             'NLS_CURRENCY',
558             'NLS_DATE_FORMAT',
559             'NLS_DATE_LANGUAGE',
560             'NLS_ISO_CURRENCY',
561             'NLS_LANG',
562             'NLS_LANGUAGE',
563             'NLS_NUMERIC_CHARACTERS',
564             'NLS_SORT',
565             'NLS_SPECIAL_CHARS',
566             'NLS_TERRITORY',
567             'NO',
568             'NOARCHIVELOG',
569             'NOAUDIT',
570             'NOCACHE',
571             'NOCOMPRESS',
572             'NOCYCLE',
573             'NOFORCE',
574             'NOLOGGING',
575             'NOMAXVALUE',
576             'NOMINIMIZE',
577             'NOMINVALUE',
578             'NOMONITORING',
579             'NONE',
580             'NOORDER',
581             'NOOVERRIDE',
582             'NOPARALLEL',
583             'NORELY',
584             'NORESETLOGS',
585             'NOREVERSE',
586             'NORMAL',
587             'NOSEGMENT',
588             'NOSORT',
589             'NOT',
590             'NOTHING',
591             'NOVALIDATE',
592             'NOWAIT',
593             'NULL',
594             'NULLS',
595             'OBJNO',
596             'OBJNO_REUSE',
597             'OF',
598             'OFF',
599             'OFFLINE',
600             'OID',
601             'OIDINDEX',
602             'OLD',
603             'ON',
604             'ONLINE',
605             'ONLY',
606             'OPCODE',
607             'OPEN',
608             'OPERATOR',
609             'OPTIMAL',
610             'OPTIMIZER_GOAL',
611             'OPTION',
612             'OR',
613             'ORDER',
614             'ORGANIZATION',
615             'OUT',
616             'OUTER',
617             'OUTLINE',
618             'OVER',
619             'OVERFLOW',
620             'OVERLAPS',
621             'OWN',
622             'PACKAGE',
623             'PACKAGES',
624             'PARALLEL',
625             'PARAMETERS',
626             'PARENT',
627             'PARTITION',
628             'PARTITIONS',
629             'PARTITION_HASH',
630             'PARTITION_RANGE',
631             'PASSWORD',
632             'PASSWORD_GRACE_TIME',
633             'PASSWORD_LIFE_TIME',
634             'PASSWORD_LOCK_TIME',
635             'PASSWORD_REUSE_MAX',
636             'PASSWORD_REUSE_TIME',
637             'PASSWORD_VERIFY_FUNCTION',
638             'PCTFREE',
639             'PCTINCREASE',
640             'PCTTHRESHOLD',
641             'PCTUSED',
642             'PCTVERSION',
643             'PERCENT',
644             'PERMANENT',
645             'PLAN',
646             'PLSQL_DEBUG',
647             'POST_TRANSACTION',
648             'PREBUILT',
649             'PRECEDING',
650             'PREPARE',
651             'PRESENT',
652             'PRESERVE',
653             'PREVIOUS',
654             'PRIMARY',
655             'PRIOR',
656             'PRIVATE',
657             'PRIVATE_SGA',
658             'PRIVILEGE',
659             'PRIVILEGES',
660             'PROCEDURE',
661             'PROFILE',
662             'PUBLIC',
663             'PURGE',
664             'QUERY',
665             'QUEUE',
666             'QUOTA',
667             'RANDOM',
668             'RANGE',
669             'RBA',
670             'READ',
671             'READS',
672             'REBUILD',
673             'RECORDS_PER_BLOCK',
674             'RECOVER',
675             'RECOVERABLE',
676             'RECOVERY',
677             'RECYCLE',
678             'REDUCED',
679             'REFERENCES',
680             'REFERENCING',
681             'REFRESH',
682             'RELY',
683             'RENAME',
684             'REPLACE',
685             'RESET',
686             'RESETLOGS',
687             'RESIZE',
688             'RESOLVE',
689             'RESOLVER',
690             'RESOURCE',
691             'RESTRICT',
692             'RESTRICTED',
693             'RESUME',
694             'RETURN',
695             'RETURNING',
696             'REUSE',
697             'REVERSE',
698             'REVOKE',
699             'REWRITE',
700             'RIGHT',
701             'ROLE',
702             'ROLES',
703             'ROLLBACK',
704             'ROLLUP',
705             'ROW',
706             'ROWNUM',
707             'ROWS',
708             'RULE',
709             'SAMPLE',
710             'SAVEPOINT',
711             'SCAN',
712             'SCAN_INSTANCES',
713             'SCHEMA',
714             'SCN',
715             'SCOPE',
716             'SD_ALL',
717             'SD_INHIBIT',
718             'SD_SHOW',
719             'SEGMENT',
720             'SEG_BLOCK',
721             'SEG_FILE',
722             'SELECT',
723             'SELECTIVITY',
724             'SEQUENCE',
725             'SERIALIZABLE',
726             'SERVERERROR',
727             'SESSION',
728             'SESSIONS_PER_USER',
729             'SESSION_CACHED_CURSORS',
730             'SET',
731             'SHARE',
732             'SHARED',
733             'SHARED_POOL',
734             'SHRINK',
735             'SHUTDOWN',
736             'SINGLETASK',
737             'SIZE',
738             'SKIP',
739             'SKIP_UNUSABLE_INDEXES',
740             'SNAPSHOT',
741             'SOME',
742             'SORT',
743             'SOURCE',
744             'SPECIFICATION',
745             'SPLIT',
746             'SQL_TRACE',
747             'STANDBY',
748             'START',
749             'STARTUP',
750             'STATEMENT_ID',
751             'STATIC',
752             'STATISTICS',
753             'STOP',
754             'STORAGE',
755             'STORE',
756             'STRUCTURE',
757             'SUBMULTISET',
758             'SUBPARTITION',
759             'SUBPARTITIONS',
760             'SUCCESSFUL',
761             'SUMMARY',
762             'SUPPLEMENTAL',
763             'SUSPEND',
764             'SWITCH',
765             'SYNONYM',
766             'SYSDBA',
767             'SYSOPER',
768             'SYSTEM',
769             'SYS_OP_BITVEC',
770             'SYS_OP_ENFORCE_NOT_NULL$',
771             'SYS_OP_NOEXPAND',
772             'SYS_OP_NTCIMG$',
773             'TABLE',
774             'TABLES',
775             'TABLESPACE',
776             'TABLESPACE_NO',
777             'TABNO',
778             'TEMPFILE',
779             'TEMPORARY',
780             'THAN',
781             'THE',
782             'THEN',
783             'THREAD',
784             'THROUGH',
785             'TIMEOUT',
786             'TIMEZONE_HOUR',
787             'TIMEZONE_MINUTE',
788             'TIME_ZONE',
789             'TO',
790             'TOPLEVEL',
791             'TRACE',
792             'TRACING',
793             'TRAILING',
794             'TRANSACTION',
795             'TRANSITIONAL',
796             'TRIGGER',
797             'TRIGGERS',
798             'TRUE',
799             'TRUNCATE',
800             'TYPE',
801             'TYPES',
802             'UNARCHIVED',
803             'UNBOUND',
804             'UNBOUNDED',
805             'UNDO',
806             'UNIFORM',
807             'UNION',
808             'UNIQUE',
809             'UNLIMITED',
810             'UNLOCK',
811             'UNRECOVERABLE',
812             'UNTIL',
813             'UNUSABLE',
814             'UNUSED',
815             'UPDATABLE',
816             'UPDATE',
817             'UPD_INDEXES',
818             'UPPPER',
819             'USAGE',
820             'USE',
821             'USER_DEFINED',
822             'USE_STORED_OUTLINES',
823             'USING',
824             'VALIDATE',
825             'VALIDATION',
826             'VALUES',
827             'VIEW',
828             'WHEN',
829             'WHENEVER',
830             'WHERE',
831             'WITH',
832             'WITHOUT',
833             'WORK',
834             'WRITE',
835             );
836 1         5 $self->listAdd('operators',
837             '!=',
838             '*',
839             '**',
840             '+',
841             '-',
842             '..',
843             '/',
844             ':=',
845             '<',
846             '<=',
847             '<>',
848             '=',
849             '=>',
850             '>',
851             '>=',
852             '^=',
853             '||',
854             '~=',
855             );
856 1         7 $self->listAdd('types',
857             'ANYDATA',
858             'ANYDATASET',
859             'ANYTYPE',
860             'ARRAY',
861             'BFILE',
862             'BINARY_DOUBLE',
863             'BINARY_FLOAT',
864             'BINARY_INTEGER',
865             'BLOB',
866             'BOOLEAN',
867             'CFILE',
868             'CHAR',
869             'CHARACTER',
870             'CLOB',
871             'DATE',
872             'DAY',
873             'DBURITYPE',
874             'DEC',
875             'DECIMAL',
876             'DOUBLE',
877             'FLOAT',
878             'FLOB',
879             'HTTPURITYPE',
880             'INT',
881             'INTEGER',
882             'INTERVAL',
883             'LOB',
884             'LONG',
885             'MLSLABEL',
886             'MONTH',
887             'NATIONAL',
888             'NCHAR',
889             'NCLOB',
890             'NUMBER',
891             'NUMERIC',
892             'NVARCHAR',
893             'OBJECT',
894             'PLS_INTEGER',
895             'PRECISION',
896             'RAW',
897             'REAL',
898             'RECORD',
899             'ROWID',
900             'SECOND',
901             'SINGLE',
902             'SMALLINT',
903             'TIME',
904             'TIMESTAMP',
905             'URIFACTORYTYPE',
906             'URITYPE',
907             'UROWID',
908             'VARCHAR',
909             'VARCHAR2',
910             'VARRAY',
911             'VARYING',
912             'XMLTYPE',
913             'YEAR',
914             'ZONE',
915             );
916 1         29 $self->contextdata({
917             'Multiline C-style comment' => {
918             callback => \&parseMultilineCstylecomment,
919             attribute => 'Comment',
920             },
921             'Normal' => {
922             callback => \&parseNormal,
923             attribute => 'Normal Text',
924             },
925             'SQL*Plus directive to include file' => {
926             callback => \&parseSQLPlusdirectivetoincludefile,
927             attribute => 'Preprocessor',
928             lineending => '#pop',
929             },
930             'SQL*Plus remark directive' => {
931             callback => \&parseSQLPlusremarkdirective,
932             attribute => 'Comment',
933             lineending => '#pop',
934             },
935             'Singleline PL/SQL-style comment' => {
936             callback => \&parseSinglelinePLSQLstylecomment,
937             attribute => 'Comment',
938             lineending => '#pop',
939             },
940             'String literal' => {
941             callback => \&parseStringliteral,
942             attribute => 'String',
943             },
944             'User-defined identifier' => {
945             callback => \&parseUserdefinedidentifier,
946             attribute => 'Identifier',
947             lineending => '#pop',
948             },
949             });
950 1         9 $self->deliminators('\\s||\\(|\\)|,|\\%|\\&|;|\\?|\\[|\\]|\\{|\\}|\\\\|\\+|-|\\*|\\/|\\||=|\\!|<|>|\\~|\\^|:|\\.');
951 1         6 $self->basecontext('Normal');
952 1         11 $self->keywordscase(0);
953 1         6 $self->initialize;
954 1         4 bless ($self, $class);
955 1         4 return $self;
956             }
957              
958             sub language {
959 0     0 0   return 'SQL';
960             }
961              
962             sub parseMultilineCstylecomment {
963 0     0 0   my ($self, $text) = @_;
964             # attribute => 'Comment'
965             # char => '*'
966             # char1 => '/'
967             # context => '#pop'
968             # type => 'Detect2Chars'
969 0 0         if ($self->testDetect2Chars($text, '*', '/', 0, 0, 0, undef, 0, '#pop', 'Comment')) {
970 0           return 1
971             }
972 0           return 0;
973             };
974              
975             sub parseNormal {
976 0     0 0   my ($self, $text) = @_;
977             # String => 'keywords'
978             # attribute => 'Keyword'
979             # context => '#stay'
980             # type => 'keyword'
981 0 0         if ($self->testKeyword($text, 'keywords', 0, undef, 0, '#stay', 'Keyword')) {
982 0           return 1
983             }
984             # String => 'operators'
985             # attribute => 'Operator'
986             # context => '#stay'
987             # type => 'keyword'
988 0 0         if ($self->testKeyword($text, 'operators', 0, undef, 0, '#stay', 'Operator')) {
989 0           return 1
990             }
991             # String => 'functions'
992             # attribute => 'Function'
993             # context => '#stay'
994             # type => 'keyword'
995 0 0         if ($self->testKeyword($text, 'functions', 0, undef, 0, '#stay', 'Function')) {
996 0           return 1
997             }
998             # String => 'types'
999             # attribute => 'Data Type'
1000             # context => '#stay'
1001             # type => 'keyword'
1002 0 0         if ($self->testKeyword($text, 'types', 0, undef, 0, '#stay', 'Data Type')) {
1003 0           return 1
1004             }
1005             # String => '%bulk_exceptions\b'
1006             # attribute => 'Data Type'
1007             # context => '#stay'
1008             # insensitive => 'true'
1009             # type => 'RegExpr'
1010 0 0         if ($self->testRegExpr($text, '%bulk_exceptions\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1011 0           return 1
1012             }
1013             # String => '%bulk_rowcount\b'
1014             # attribute => 'Data Type'
1015             # context => '#stay'
1016             # insensitive => 'true'
1017             # type => 'RegExpr'
1018 0 0         if ($self->testRegExpr($text, '%bulk_rowcount\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1019 0           return 1
1020             }
1021             # String => '%found\b'
1022             # attribute => 'Data Type'
1023             # context => '#stay'
1024             # insensitive => 'true'
1025             # type => 'RegExpr'
1026 0 0         if ($self->testRegExpr($text, '%found\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1027 0           return 1
1028             }
1029             # String => '%isopen\b'
1030             # attribute => 'Data Type'
1031             # context => '#stay'
1032             # insensitive => 'true'
1033             # type => 'RegExpr'
1034 0 0         if ($self->testRegExpr($text, '%isopen\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1035 0           return 1
1036             }
1037             # String => '%notfound\b'
1038             # attribute => 'Data Type'
1039             # context => '#stay'
1040             # insensitive => 'true'
1041             # type => 'RegExpr'
1042 0 0         if ($self->testRegExpr($text, '%notfound\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1043 0           return 1
1044             }
1045             # String => '%rowcount\b'
1046             # attribute => 'Data Type'
1047             # context => '#stay'
1048             # insensitive => 'true'
1049             # type => 'RegExpr'
1050 0 0         if ($self->testRegExpr($text, '%rowcount\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1051 0           return 1
1052             }
1053             # String => '%rowtype\b'
1054             # attribute => 'Data Type'
1055             # context => '#stay'
1056             # insensitive => 'true'
1057             # type => 'RegExpr'
1058 0 0         if ($self->testRegExpr($text, '%rowtype\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1059 0           return 1
1060             }
1061             # String => '%type\b'
1062             # attribute => 'Data Type'
1063             # context => '#stay'
1064             # insensitive => 'true'
1065             # type => 'RegExpr'
1066 0 0         if ($self->testRegExpr($text, '%type\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1067 0           return 1
1068             }
1069             # attribute => 'Float'
1070             # context => '#stay'
1071             # type => 'Float'
1072 0 0         if ($self->testFloat($text, 0, undef, 0, '#stay', 'Float')) {
1073 0           return 1
1074             }
1075             # attribute => 'Decimal'
1076             # context => '#stay'
1077             # type => 'Int'
1078 0 0         if ($self->testInt($text, 0, undef, 0, '#stay', 'Decimal')) {
1079 0           return 1
1080             }
1081             # attribute => 'String'
1082             # char => '''
1083             # context => 'String literal'
1084             # type => 'DetectChar'
1085 0 0         if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, 'String literal', 'String')) {
1086 0           return 1
1087             }
1088             # attribute => 'Comment'
1089             # char => '-'
1090             # char1 => '-'
1091             # context => 'Singleline PL/SQL-style comment'
1092             # type => 'Detect2Chars'
1093 0 0         if ($self->testDetect2Chars($text, '-', '-', 0, 0, 0, undef, 0, 'Singleline PL/SQL-style comment', 'Comment')) {
1094 0           return 1
1095             }
1096             # attribute => 'Comment'
1097             # char => '/'
1098             # char1 => '*'
1099             # context => 'Multiline C-style comment'
1100             # type => 'Detect2Chars'
1101 0 0         if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'Multiline C-style comment', 'Comment')) {
1102 0           return 1
1103             }
1104             # String => '^rem\b'
1105             # attribute => 'Comment'
1106             # column => '0'
1107             # context => 'SQL*Plus remark directive'
1108             # insensitive => 'true'
1109             # type => 'RegExpr'
1110 0 0         if ($self->testRegExpr($text, '^rem\\b', 1, 0, 0, 0, 0, 'SQL*Plus remark directive', 'Comment')) {
1111 0           return 1
1112             }
1113             # attribute => 'Identifier'
1114             # char => '"'
1115             # context => 'User-defined identifier'
1116             # type => 'DetectChar'
1117 0 0         if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'User-defined identifier', 'Identifier')) {
1118 0           return 1
1119             }
1120             # String => '(:|&&?)\w+'
1121             # attribute => 'External Variable'
1122             # context => '#stay'
1123             # type => 'RegExpr'
1124 0 0         if ($self->testRegExpr($text, '(:|&&?)\\w+', 0, 0, 0, undef, 0, '#stay', 'External Variable')) {
1125 0           return 1
1126             }
1127             # String => '^/$'
1128             # attribute => 'Symbol'
1129             # column => '0'
1130             # context => '#stay'
1131             # type => 'RegExpr'
1132 0 0         if ($self->testRegExpr($text, '^/$', 0, 0, 0, 0, 0, '#stay', 'Symbol')) {
1133 0           return 1
1134             }
1135             # String => '^@@?[^@ \t\r\n]'
1136             # attribute => 'Preprocessor'
1137             # column => '0'
1138             # context => 'SQL*Plus directive to include file'
1139             # type => 'RegExpr'
1140 0 0         if ($self->testRegExpr($text, '^@@?[^@ \\t\\r\\n]', 0, 0, 0, 0, 0, 'SQL*Plus directive to include file', 'Preprocessor')) {
1141 0           return 1
1142             }
1143 0           return 0;
1144             };
1145              
1146             sub parseSQLPlusdirectivetoincludefile {
1147 0     0 0   my ($self, $text) = @_;
1148 0           return 0;
1149             };
1150              
1151             sub parseSQLPlusremarkdirective {
1152 0     0 0   my ($self, $text) = @_;
1153 0           return 0;
1154             };
1155              
1156             sub parseSinglelinePLSQLstylecomment {
1157 0     0 0   my ($self, $text) = @_;
1158 0           return 0;
1159             };
1160              
1161             sub parseStringliteral {
1162 0     0 0   my ($self, $text) = @_;
1163             # attribute => 'String Char'
1164             # context => '#stay'
1165             # type => 'HlCStringChar'
1166 0 0         if ($self->testHlCStringChar($text, 0, undef, 0, '#stay', 'String Char')) {
1167 0           return 1
1168             }
1169             # String => '&&?\w+'
1170             # attribute => 'External Variable'
1171             # context => '#stay'
1172             # type => 'RegExpr'
1173 0 0         if ($self->testRegExpr($text, '&&?\\w+', 0, 0, 0, undef, 0, '#stay', 'External Variable')) {
1174 0           return 1
1175             }
1176             # attribute => 'String'
1177             # char => '''
1178             # context => '#pop'
1179             # type => 'DetectChar'
1180 0 0         if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, '#pop', 'String')) {
1181 0           return 1
1182             }
1183 0           return 0;
1184             };
1185              
1186             sub parseUserdefinedidentifier {
1187 0     0 0   my ($self, $text) = @_;
1188             # attribute => 'Identifier'
1189             # char => '"'
1190             # context => '#pop'
1191             # type => 'DetectChar'
1192 0 0         if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop', 'Identifier')) {
1193 0           return 1
1194             }
1195 0           return 0;
1196             };
1197              
1198              
1199             1;
1200              
1201             __END__