Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Syntax / Highlight / Engine / Kate / SQL.pm
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.06';
16
17 use strict;
18 use warnings;
19 use base('Syntax::Highlight::Engine::Kate::Template');
20
21 sub new {
22    my $proto = shift;
23    my $class = ref($proto) || $proto;
24    my $self = $class->SUPER::new(@_);
25    $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    $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    $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    $self->listAdd('operators',
837       '!=',
838       '*',
839       '**',
840       '+',
841       '-',
842       '..',
843       '/',
844       ':=',
845       '<',
846       '<=',
847       '<>',
848       '=',
849       '=>',
850       '>',
851       '>=',
852       '^=',
853       '||',
854       '~=',
855    );
856    $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    $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    $self->deliminators('\\s||\\(|\\)|,|\\%|\\&|;|\\?|\\[|\\]|\\{|\\}|\\\\|\\+|-|\\*|\\/|\\||=|\\!|<|>|\\~|\\^|:|\\.');
951    $self->basecontext('Normal');
952    $self->keywordscase(0);
953    $self->initialize;
954    bless ($self, $class);
955    return $self;
956 }
957
958 sub language {
959    return 'SQL';
960 }
961
962 sub parseMultilineCstylecomment {
963    my ($self, $text) = @_;
964    # attribute => 'Comment'
965    # char => '*'
966    # char1 => '/'
967    # context => '#pop'
968    # type => 'Detect2Chars'
969    if ($self->testDetect2Chars($text, '*', '/', 0, 0, 0, undef, 0, '#pop', 'Comment')) {
970       return 1
971    }
972    return 0;
973 };
974
975 sub parseNormal {
976    my ($self, $text) = @_;
977    # String => 'keywords'
978    # attribute => 'Keyword'
979    # context => '#stay'
980    # type => 'keyword'
981    if ($self->testKeyword($text, 'keywords', 0, undef, 0, '#stay', 'Keyword')) {
982       return 1
983    }
984    # String => 'operators'
985    # attribute => 'Operator'
986    # context => '#stay'
987    # type => 'keyword'
988    if ($self->testKeyword($text, 'operators', 0, undef, 0, '#stay', 'Operator')) {
989       return 1
990    }
991    # String => 'functions'
992    # attribute => 'Function'
993    # context => '#stay'
994    # type => 'keyword'
995    if ($self->testKeyword($text, 'functions', 0, undef, 0, '#stay', 'Function')) {
996       return 1
997    }
998    # String => 'types'
999    # attribute => 'Data Type'
1000    # context => '#stay'
1001    # type => 'keyword'
1002    if ($self->testKeyword($text, 'types', 0, undef, 0, '#stay', 'Data Type')) {
1003       return 1
1004    }
1005    # String => '%bulk_exceptions\b'
1006    # attribute => 'Data Type'
1007    # context => '#stay'
1008    # insensitive => 'true'
1009    # type => 'RegExpr'
1010    if ($self->testRegExpr($text, '%bulk_exceptions\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1011       return 1
1012    }
1013    # String => '%bulk_rowcount\b'
1014    # attribute => 'Data Type'
1015    # context => '#stay'
1016    # insensitive => 'true'
1017    # type => 'RegExpr'
1018    if ($self->testRegExpr($text, '%bulk_rowcount\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1019       return 1
1020    }
1021    # String => '%found\b'
1022    # attribute => 'Data Type'
1023    # context => '#stay'
1024    # insensitive => 'true'
1025    # type => 'RegExpr'
1026    if ($self->testRegExpr($text, '%found\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1027       return 1
1028    }
1029    # String => '%isopen\b'
1030    # attribute => 'Data Type'
1031    # context => '#stay'
1032    # insensitive => 'true'
1033    # type => 'RegExpr'
1034    if ($self->testRegExpr($text, '%isopen\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1035       return 1
1036    }
1037    # String => '%notfound\b'
1038    # attribute => 'Data Type'
1039    # context => '#stay'
1040    # insensitive => 'true'
1041    # type => 'RegExpr'
1042    if ($self->testRegExpr($text, '%notfound\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1043       return 1
1044    }
1045    # String => '%rowcount\b'
1046    # attribute => 'Data Type'
1047    # context => '#stay'
1048    # insensitive => 'true'
1049    # type => 'RegExpr'
1050    if ($self->testRegExpr($text, '%rowcount\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1051       return 1
1052    }
1053    # String => '%rowtype\b'
1054    # attribute => 'Data Type'
1055    # context => '#stay'
1056    # insensitive => 'true'
1057    # type => 'RegExpr'
1058    if ($self->testRegExpr($text, '%rowtype\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1059       return 1
1060    }
1061    # String => '%type\b'
1062    # attribute => 'Data Type'
1063    # context => '#stay'
1064    # insensitive => 'true'
1065    # type => 'RegExpr'
1066    if ($self->testRegExpr($text, '%type\\b', 1, 0, 0, undef, 0, '#stay', 'Data Type')) {
1067       return 1
1068    }
1069    # attribute => 'Float'
1070    # context => '#stay'
1071    # type => 'Float'
1072    if ($self->testFloat($text, 0, undef, 0, '#stay', 'Float')) {
1073       return 1
1074    }
1075    # attribute => 'Decimal'
1076    # context => '#stay'
1077    # type => 'Int'
1078    if ($self->testInt($text, 0, undef, 0, '#stay', 'Decimal')) {
1079       return 1
1080    }
1081    # attribute => 'String'
1082    # char => '''
1083    # context => 'String literal'
1084    # type => 'DetectChar'
1085    if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, 'String literal', 'String')) {
1086       return 1
1087    }
1088    # attribute => 'Comment'
1089    # char => '-'
1090    # char1 => '-'
1091    # context => 'Singleline PL/SQL-style comment'
1092    # type => 'Detect2Chars'
1093    if ($self->testDetect2Chars($text, '-', '-', 0, 0, 0, undef, 0, 'Singleline PL/SQL-style comment', 'Comment')) {
1094       return 1
1095    }
1096    # attribute => 'Comment'
1097    # char => '/'
1098    # char1 => '*'
1099    # context => 'Multiline C-style comment'
1100    # type => 'Detect2Chars'
1101    if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'Multiline C-style comment', 'Comment')) {
1102       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    if ($self->testRegExpr($text, '^rem\\b', 1, 0, 0, 0, 0, 'SQL*Plus remark directive', 'Comment')) {
1111       return 1
1112    }
1113    # attribute => 'Identifier'
1114    # char => '"'
1115    # context => 'User-defined identifier'
1116    # type => 'DetectChar'
1117    if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'User-defined identifier', 'Identifier')) {
1118       return 1
1119    }
1120    # String => '(:|&&?)\w+'
1121    # attribute => 'External Variable'
1122    # context => '#stay'
1123    # type => 'RegExpr'
1124    if ($self->testRegExpr($text, '(:|&&?)\\w+', 0, 0, 0, undef, 0, '#stay', 'External Variable')) {
1125       return 1
1126    }
1127    # String => '^/$'
1128    # attribute => 'Symbol'
1129    # column => '0'
1130    # context => '#stay'
1131    # type => 'RegExpr'
1132    if ($self->testRegExpr($text, '^/$', 0, 0, 0, 0, 0, '#stay', 'Symbol')) {
1133       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    if ($self->testRegExpr($text, '^@@?[^@ \\t\\r\\n]', 0, 0, 0, 0, 0, 'SQL*Plus directive to include file', 'Preprocessor')) {
1141       return 1
1142    }
1143    return 0;
1144 };
1145
1146 sub parseSQLPlusdirectivetoincludefile {
1147    my ($self, $text) = @_;
1148    return 0;
1149 };
1150
1151 sub parseSQLPlusremarkdirective {
1152    my ($self, $text) = @_;
1153    return 0;
1154 };
1155
1156 sub parseSinglelinePLSQLstylecomment {
1157    my ($self, $text) = @_;
1158    return 0;
1159 };
1160
1161 sub parseStringliteral {
1162    my ($self, $text) = @_;
1163    # attribute => 'String Char'
1164    # context => '#stay'
1165    # type => 'HlCStringChar'
1166    if ($self->testHlCStringChar($text, 0, undef, 0, '#stay', 'String Char')) {
1167       return 1
1168    }
1169    # String => '&&?\w+'
1170    # attribute => 'External Variable'
1171    # context => '#stay'
1172    # type => 'RegExpr'
1173    if ($self->testRegExpr($text, '&&?\\w+', 0, 0, 0, undef, 0, '#stay', 'External Variable')) {
1174       return 1
1175    }
1176    # attribute => 'String'
1177    # char => '''
1178    # context => '#pop'
1179    # type => 'DetectChar'
1180    if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, '#pop', 'String')) {
1181       return 1
1182    }
1183    return 0;
1184 };
1185
1186 sub parseUserdefinedidentifier {
1187    my ($self, $text) = @_;
1188    # attribute => 'Identifier'
1189    # char => '"'
1190    # context => '#pop'
1191    # type => 'DetectChar'
1192    if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop', 'Identifier')) {
1193       return 1
1194    }
1195    return 0;
1196 };
1197
1198
1199 1;
1200
1201 __END__
1202
1203 =head1 NAME
1204
1205 Syntax::Highlight::Engine::Kate::SQL - a Plugin for SQL syntax highlighting
1206
1207 =head1 SYNOPSIS
1208
1209  require Syntax::Highlight::Engine::Kate::SQL;
1210  my $sh = new Syntax::Highlight::Engine::Kate::SQL([
1211  ]);
1212
1213 =head1 DESCRIPTION
1214
1215 Syntax::Highlight::Engine::Kate::SQL is a  plugin module that provides syntax highlighting
1216 for SQL to the Syntax::Haghlight::Engine::Kate highlighting engine.
1217
1218 This code is generated from the syntax definition files used
1219 by the Kate project.
1220 It works quite fine, but can use refinement and optimization.
1221
1222 It inherits Syntax::Higlight::Engine::Kate::Template. See also there.
1223
1224 =cut
1225
1226 =head1 AUTHOR
1227
1228 Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
1229
1230 =cut
1231
1232 =head1 BUGS
1233
1234 Unknown. If you find any, please contact the author
1235
1236 =cut
1237