2 <!-- $Id: sql.xml,v 1.1 2007-06-03 02:35:28 ssttoo Exp $ -->
4 <highlight lang="sql" case="no">
7 <author name="Andrey Demenev" email="demenev@gmail.com"/>
11 <comment>Based on SQL-99</comment>
13 <default innerClass="code" />
15 <region name="qidentifier" delimClass="quotes" innerClass="identifier"
18 <region name="mlcomment" delimClass="comment" innerClass="comment"
19 start="\/\*" end="\*\/" />
21 <block name="comment" match="(#|--\s).*" innerClass="comment" />
23 <block name="identifier" match="[a-z_]\w*" innerClass="identifier" />
25 <region name="strdouble" delimClass="quotes" innerClass="string"
26 start=""" end=""" >
29 <region name="brackets" delimClass="brackets" innerClass="code"
34 <region name="strsingle" delimClass="quotes" innerClass="string"
37 <block name="escaped" match="\\." innerClass="special" contained="yes">
38 <onlyin region="strsingle"/>
39 <onlyin region="strdouble"/>
42 <block name="exponent"
43 match="((\d+|((\d*\.\d+)|(\d+\.\d*)))[eE][+-]?\d+)"
44 innerClass="number" />
46 <block name="float" match="(\d*\.\d+)|(\d+\.\d*)" innerClass="number"/>
48 <block name="integer" match="\d+l?|\b0l?\b" innerClass="number" />
50 <block name="hexinteger" match="0[xX][\da-f]+l?" innerClass="number" />
52 <keywords name="reserved" inherits="identifier" innerClass="reserved" case = "no">
53 <keyword match="ABSOLUTE" />
54 <keyword match="ACTION" />
55 <keyword match="ADD" />
56 <keyword match="ADMIN" />
57 <keyword match="AFTER" />
58 <keyword match="AGGREGATE" />
59 <keyword match="ALIAS" />
60 <keyword match="ALL" />
61 <keyword match="ALLOCATE" />
62 <keyword match="ALTER" />
63 <keyword match="AND" />
64 <keyword match="ANY" />
65 <keyword match="ARE" />
66 <keyword match="ARRAY" />
67 <keyword match="AS" />
68 <keyword match="ASC" />
69 <keyword match="ASSERTION" />
70 <keyword match="AT" />
71 <keyword match="AUTHORIZATION" />
72 <keyword match="BEFORE" />
73 <keyword match="BEGIN" />
74 <keyword match="BINARY" />
75 <keyword match="BIT" />
76 <keyword match="BLOB" />
77 <keyword match="BOOLEAN" />
78 <keyword match="BOTH" />
79 <keyword match="BREADTH" />
80 <keyword match="BY" />
81 <keyword match="CALL" />
82 <keyword match="CASCADE" />
83 <keyword match="CASCADED" />
84 <keyword match="CASE" />
85 <keyword match="CAST" />
86 <keyword match="CATALOG" />
87 <keyword match="CHAR" />
88 <keyword match="CHARACTER" />
89 <keyword match="CHECK" />
90 <keyword match="CLASS" />
91 <keyword match="CLOB" />
92 <keyword match="CLOSE" />
93 <keyword match="COLLATE" />
94 <keyword match="COLLATION" />
95 <keyword match="COLUMN" />
96 <keyword match="COMMIT" />
97 <keyword match="COMPLETION" />
98 <keyword match="CONNECT" />
99 <keyword match="CONNECTION" />
100 <keyword match="CONSTRAINT" />
101 <keyword match="CONSTRAINTS" />
102 <keyword match="CONSTRUCTOR" />
103 <keyword match="CONTINUE" />
104 <keyword match="CORRESPONDING" />
105 <keyword match="CREATE" />
106 <keyword match="CROSS" />
107 <keyword match="CUBE" />
108 <keyword match="CURRENT" />
109 <keyword match="CURRENT_DATE" />
110 <keyword match="CURRENT_PATH" />
111 <keyword match="CURRENT_ROLE" />
112 <keyword match="CURRENT_TIME" />
113 <keyword match="CURRENT_TIMESTAMP" />
114 <keyword match="CURRENT_USER" />
115 <keyword match="CURSOR" />
116 <keyword match="CYCLE" />
117 <keyword match="DATA" />
118 <keyword match="DATE" />
119 <keyword match="DAY" />
120 <keyword match="DEALLOCATE" />
121 <keyword match="DEC" />
122 <keyword match="DECIMAL" />
123 <keyword match="DECLARE" />
124 <keyword match="DEFAULT" />
125 <keyword match="DEFERRABLE" />
126 <keyword match="DEFERRED" />
127 <keyword match="DELETE" />
128 <keyword match="DEPTH" />
129 <keyword match="DEREF" />
130 <keyword match="DESC" />
131 <keyword match="DESCRIBE" />
132 <keyword match="DESCRIPTOR" />
133 <keyword match="DESTROY" />
134 <keyword match="DESTRUCTOR" />
135 <keyword match="DETERMINISTIC" />
136 <keyword match="DIAGNOSTICS" />
137 <keyword match="DICTIONARY" />
138 <keyword match="DISCONNECT" />
139 <keyword match="DISTINCT" />
140 <keyword match="DOMAIN" />
141 <keyword match="DOUBLE" />
142 <keyword match="DROP" />
143 <keyword match="DYNAMIC" />
144 <keyword match="EACH" />
145 <keyword match="ELSE" />
146 <keyword match="END" />
147 <keyword match="END-EXEC" />
148 <keyword match="EQUALS" />
149 <keyword match="ESCAPE" />
150 <keyword match="EVERY" />
151 <keyword match="EXCEPT" />
152 <keyword match="EXCEPTION" />
153 <keyword match="EXEC" />
154 <keyword match="EXECUTE" />
155 <keyword match="EXTERNAL" />
156 <keyword match="FALSE" />
157 <keyword match="FETCH" />
158 <keyword match="FIRST" />
159 <keyword match="FLOAT" />
160 <keyword match="FOR" />
161 <keyword match="FOREIGN" />
162 <keyword match="FOUND" />
163 <keyword match="FREE" />
164 <keyword match="FROM" />
165 <keyword match="FULL" />
166 <keyword match="FUNCTION" />
167 <keyword match="GENERAL" />
168 <keyword match="GET" />
169 <keyword match="GLOBAL" />
170 <keyword match="GO" />
171 <keyword match="GOTO" />
172 <keyword match="GRANT" />
173 <keyword match="GROUP" />
174 <keyword match="GROUPING" />
175 <keyword match="HAVING" />
176 <keyword match="HOST" />
177 <keyword match="HOUR" />
178 <keyword match="IDENTITY" />
179 <keyword match="IGNORE" />
180 <keyword match="IMMEDIATE" />
181 <keyword match="IN" />
182 <keyword match="INDICATOR" />
183 <keyword match="INITIALIZE" />
184 <keyword match="INITIALLY" />
185 <keyword match="INNER" />
186 <keyword match="INOUT" />
187 <keyword match="INPUT" />
188 <keyword match="INSERT" />
189 <keyword match="INT" />
190 <keyword match="INTEGER" />
191 <keyword match="INTERSECT" />
192 <keyword match="INTERVAL" />
193 <keyword match="INTO" />
194 <keyword match="IS" />
195 <keyword match="ISOLATION" />
196 <keyword match="ITERATE" />
197 <keyword match="JOIN" />
198 <keyword match="KEY" />
199 <keyword match="LANGUAGE" />
200 <keyword match="LARGE" />
201 <keyword match="LAST" />
202 <keyword match="LATERAL" />
203 <keyword match="LEADING" />
204 <keyword match="LEFT" />
205 <keyword match="LESS" />
206 <keyword match="LEVEL" />
207 <keyword match="LIKE" />
208 <keyword match="LIMIT" />
209 <keyword match="LOCAL" />
210 <keyword match="LOCALTIME" />
211 <keyword match="LOCALTIMESTAMP" />
212 <keyword match="LOCATOR" />
213 <keyword match="MAP" />
214 <keyword match="MATCH" />
215 <keyword match="MINUTE" />
216 <keyword match="MODIFIES" />
217 <keyword match="MODIFY" />
218 <keyword match="MODULE" />
219 <keyword match="MONTH" />
220 <keyword match="NAMES" />
221 <keyword match="NATIONAL" />
222 <keyword match="NATURAL" />
223 <keyword match="NCHAR" />
224 <keyword match="NCLOB" />
225 <keyword match="NEW" />
226 <keyword match="NEXT" />
227 <keyword match="NO" />
228 <keyword match="NONE" />
229 <keyword match="NOT" />
230 <keyword match="NULL" />
231 <keyword match="NUMERIC" />
232 <keyword match="OBJECT" />
233 <keyword match="OF" />
234 <keyword match="OFF" />
235 <keyword match="OLD" />
236 <keyword match="ON" />
237 <keyword match="ONLY" />
238 <keyword match="OPEN" />
239 <keyword match="OPERATION" />
240 <keyword match="OPTION" />
241 <keyword match="OR" />
242 <keyword match="ORDER" />
243 <keyword match="ORDINALITY" />
244 <keyword match="OUT" />
245 <keyword match="OUTER" />
246 <keyword match="OUTPUT" />
247 <keyword match="PAD" />
248 <keyword match="PARAMETER" />
249 <keyword match="PARAMETERS" />
250 <keyword match="PARTIAL" />
251 <keyword match="PATH" />
252 <keyword match="POSTFIX" />
253 <keyword match="PRECISION" />
254 <keyword match="PREFIX" />
255 <keyword match="PREORDER" />
256 <keyword match="PREPARE" />
257 <keyword match="PRESERVE" />
258 <keyword match="PRIMARY" />
259 <keyword match="PRIOR" />
260 <keyword match="PRIVILEGES" />
261 <keyword match="PROCEDURE" />
262 <keyword match="PUBLIC" />
263 <keyword match="READ" />
264 <keyword match="READS" />
265 <keyword match="REAL" />
266 <keyword match="RECURSIVE" />
267 <keyword match="REF" />
268 <keyword match="REFERENCES" />
269 <keyword match="REFERENCING" />
270 <keyword match="RELATIVE" />
271 <keyword match="RESTRICT" />
272 <keyword match="RESULT" />
273 <keyword match="RETURN" />
274 <keyword match="RETURNS" />
275 <keyword match="REVOKE" />
276 <keyword match="RIGHT" />
277 <keyword match="ROLE" />
278 <keyword match="ROLLBACK" />
279 <keyword match="ROLLUP" />
280 <keyword match="ROUTINE" />
281 <keyword match="ROW" />
282 <keyword match="ROWS" />
283 <keyword match="SAVEPOINT" />
284 <keyword match="SCHEMA" />
285 <keyword match="SCOPE" />
286 <keyword match="SCROLL" />
287 <keyword match="SEARCH" />
288 <keyword match="SECOND" />
289 <keyword match="SECTION" />
290 <keyword match="SELECT" />
291 <keyword match="SEQUENCE" />
292 <keyword match="SESSION" />
293 <keyword match="SESSION_USER" />
294 <keyword match="SET" />
295 <keyword match="SETS" />
296 <keyword match="SIZE" />
297 <keyword match="SMALLINT" />
298 <keyword match="SOME" />
299 <keyword match="SPACE" />
300 <keyword match="SPECIFIC" />
301 <keyword match="SPECIFICTYPE" />
302 <keyword match="SQL" />
303 <keyword match="SQLEXCEPTION" />
304 <keyword match="SQLSTATE" />
305 <keyword match="SQLWARNING" />
306 <keyword match="START" />
307 <keyword match="STATE" />
308 <keyword match="STATEMENT" />
309 <keyword match="STATIC" />
310 <keyword match="STRUCTURE" />
311 <keyword match="SYSTEM_USER" />
312 <keyword match="TABLE" />
313 <keyword match="TEMPORARY" />
314 <keyword match="TERMINATE" />
315 <keyword match="THAN" />
316 <keyword match="THEN" />
317 <keyword match="TIME" />
318 <keyword match="TIMESTAMP" />
319 <keyword match="TIMEZONE_HOUR" />
320 <keyword match="TIMEZONE_MINUTE" />
321 <keyword match="TO" />
322 <keyword match="TRAILING" />
323 <keyword match="TRANSACTION" />
324 <keyword match="TRANSLATION" />
325 <keyword match="TREAT" />
326 <keyword match="TRIGGER" />
327 <keyword match="TRUE" />
328 <keyword match="UNDER" />
329 <keyword match="UNION" />
330 <keyword match="UNIQUE" />
331 <keyword match="UNKNOWN" />
332 <keyword match="UNNEST" />
333 <keyword match="UPDATE" />
334 <keyword match="USAGE" />
335 <keyword match="USER" />
336 <keyword match="USING" />
337 <keyword match="VALUE" />
338 <keyword match="VALUES" />
339 <keyword match="VARCHAR" />
340 <keyword match="VARIABLE" />
341 <keyword match="VARYING" />
342 <keyword match="VIEW" />
343 <keyword match="WHEN" />
344 <keyword match="WHENEVER" />
345 <keyword match="WHERE" />
346 <keyword match="WITH" />
347 <keyword match="WITHOUT" />
348 <keyword match="WORK" />
349 <keyword match="WRITE" />
350 <keyword match="YEAR" />
351 <keyword match="ZONE" />
353 <keywords name="keyword" inherits="identifier" innerClass="var" case = "no">
354 <keyword match="ABS" />
355 <keyword match="ADA" />
356 <keyword match="ASENSITIVE" />
357 <keyword match="ASSIGNMENT" />
358 <keyword match="ASYMMETRIC" />
359 <keyword match="ATOMIC" />
360 <keyword match="AVG" />
361 <keyword match="BETWEEN" />
362 <keyword match="BITVAR" />
363 <keyword match="BIT_LENGTH" />
364 <keyword match="C" />
365 <keyword match="CALLED" />
366 <keyword match="CARDINALITY" />
367 <keyword match="CATALOG_NAME" />
368 <keyword match="CHAIN" />
369 <keyword match="CHARACTER_LENGTH" />
370 <keyword match="CHARACTER_SET_CATALOG" />
371 <keyword match="CHARACTER_SET_NAME" />
372 <keyword match="CHARACTER_SET_SCHEMA" />
373 <keyword match="CHAR_LENGTH" />
374 <keyword match="CHECKED" />
375 <keyword match="CLASS_ORIGIN" />
376 <keyword match="COALESCE" />
377 <keyword match="COBOL" />
378 <keyword match="COLLATION_CATALOG" />
379 <keyword match="COLLATION_NAME" />
380 <keyword match="COLLATION_SCHEMA" />
381 <keyword match="COLUMN_NAME" />
382 <keyword match="COMMAND_FUNCTION" />
383 <keyword match="COMMAND_FUNCTION_CODE" />
384 <keyword match="COMMITTED" />
385 <keyword match="CONDITION_NUMBER" />
386 <keyword match="CONNECTION_NAME" />
387 <keyword match="CONSTRAINT_CATALOG" />
388 <keyword match="CONSTRAINT_NAME" />
389 <keyword match="CONSTRAINT_SCHEMA" />
390 <keyword match="CONTAINS" />
391 <keyword match="CONVERT" />
392 <keyword match="COUNT" />
393 <keyword match="CURSOR_NAME" />
394 <keyword match="DATETIME_INTERVAL_CODE" />
395 <keyword match="DATETIME_INTERVAL_PRECISION" />
396 <keyword match="DEFINED" />
397 <keyword match="DEFINER" />
398 <keyword match="DISPATCH" />
399 <keyword match="DYNAMIC_FUNCTION" />
400 <keyword match="DYNAMIC_FUNCTION_CODE" />
401 <keyword match="EXISTING" />
402 <keyword match="EXISTS" />
403 <keyword match="EXTRACT" />
404 <keyword match="FINAL" />
405 <keyword match="FORTRAN" />
406 <keyword match="G" />
407 <keyword match="GENERATED" />
408 <keyword match="GRANTED" />
409 <keyword match="HIERARCHY" />
410 <keyword match="HOLD" />
411 <keyword match="IMPLEMENTATION" />
412 <keyword match="INFIX" />
413 <keyword match="INSENSITIVE" />
414 <keyword match="INSTANCE" />
415 <keyword match="INSTANTIABLE" />
416 <keyword match="INVOKER" />
417 <keyword match="K" />
418 <keyword match="KEY_MEMBER" />
419 <keyword match="KEY_TYPE" />
420 <keyword match="LENGTH" />
421 <keyword match="LOWER" />
422 <keyword match="M" />
423 <keyword match="MAX" />
424 <keyword match="MESSAGE_LENGTH" />
425 <keyword match="MESSAGE_OCTET_LENGTH" />
426 <keyword match="MESSAGE_TEXT" />
427 <keyword match="METHOD" />
428 <keyword match="MIN" />
429 <keyword match="MOD" />
430 <keyword match="MORE" />
431 <keyword match="MUMPS" />
432 <keyword match="NAME" />
433 <keyword match="NULLABLE" />
434 <keyword match="NULLIF" />
435 <keyword match="NUMBER" />
436 <keyword match="OCTET_LENGTH" />
437 <keyword match="OPTIONS" />
438 <keyword match="OVERLAPS" />
439 <keyword match="OVERLAY" />
440 <keyword match="OVERRIDING" />
441 <keyword match="PARAMETER_MODE" />
442 <keyword match="PARAMETER_NAME" />
443 <keyword match="PARAMETER_ORDINAL_POSITION" />
444 <keyword match="PARAMETER_SPECIFIC_CATALOG" />
445 <keyword match="PARAMETER_SPECIFIC_NAME" />
446 <keyword match="PARAMETER_SPECIFIC_SCHEMA" />
447 <keyword match="PASCAL" />
448 <keyword match="PLI" />
449 <keyword match="POSITION" />
450 <keyword match="REPEATABLE" />
451 <keyword match="RETURNED_LENGTH" />
452 <keyword match="RETURNED_OCTET_LENGTH" />
453 <keyword match="RETURNED_SQLSTATE" />
454 <keyword match="ROUTINE_CATALOG" />
455 <keyword match="ROUTINE_NAME" />
456 <keyword match="ROUTINE_SCHEMA" />
457 <keyword match="ROW_COUNT" />
458 <keyword match="SCALE" />
459 <keyword match="SCHEMA_NAME" />
460 <keyword match="SECURITY" />
461 <keyword match="SELF" />
462 <keyword match="SENSITIVE" />
463 <keyword match="SERIALIZABLE" />
464 <keyword match="SERVER_NAME" />
465 <keyword match="SIMILAR" />
466 <keyword match="SIMPLE" />
467 <keyword match="SOURCE" />
468 <keyword match="SPECIFIC_NAME" />
469 <keyword match="STYLE" />
470 <keyword match="SUBCLASS_ORIGIN" />
471 <keyword match="SUBLIST" />
472 <keyword match="SUBSTRING" />
473 <keyword match="SUM" />
474 <keyword match="SYMMETRIC" />
475 <keyword match="SYSTEM" />
476 <keyword match="TABLE_NAME" />
477 <keyword match="TRANSACTIONS_COMMITTED" />
478 <keyword match="TRANSACTIONS_ROLLED_BACK" />
479 <keyword match="TRANSACTION_ACTIVE" />
480 <keyword match="TRANSFORM" />
481 <keyword match="TRANSFORMS" />
482 <keyword match="TRANSLATE" />
483 <keyword match="TRIGGER_CATALOG" />
484 <keyword match="TRIGGER_NAME" />
485 <keyword match="TRIGGER_SCHEMA" />
486 <keyword match="TRIM" />
487 <keyword match="TYPE" />
488 <keyword match="UNCOMMITTED" />
489 <keyword match="UNNAMED" />
490 <keyword match="UPPER" />
491 <keyword match="USER_DEFINED_TYPE_CATALOG" />
492 <keyword match="USER_DEFINED_TYPE_NAME" />
493 <keyword match="USER_DEFINED_TYPE_SCHEMA" />