1d4755bb0SBram Moolenaar" Vim syntax file
2d4755bb0SBram Moolenaar" Informix Structured Query Language (SQL) and Stored Procedure Language (SPL)
3d4755bb0SBram Moolenaar" Language:	SQL, SPL (Informix Dynamic Server 2000 v9.2)
4d4755bb0SBram Moolenaar" Maintainer:	Dean Hill <[email protected]>
5d4755bb0SBram Moolenaar" Last Change:	2004 Aug 30
6d4755bb0SBram Moolenaar
789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
889bcfda6SBram Moolenaarif exists("b:current_syntax")
9d4755bb0SBram Moolenaar  finish
10d4755bb0SBram Moolenaarendif
11d4755bb0SBram Moolenaar
12d4755bb0SBram Moolenaarsyn case ignore
13d4755bb0SBram Moolenaar
14d4755bb0SBram Moolenaar
15d4755bb0SBram Moolenaar
16d4755bb0SBram Moolenaar" === Comment syntax group ===
17d4755bb0SBram Moolenaarsyn region sqlComment    start="{"  end="}" contains=sqlTodo
18d4755bb0SBram Moolenaarsyn match sqlComment	"--.*$" contains=sqlTodo
19d4755bb0SBram Moolenaarsyn sync ccomment sqlComment
20d4755bb0SBram Moolenaar
21d4755bb0SBram Moolenaar
22d4755bb0SBram Moolenaar
23d4755bb0SBram Moolenaar" === Constant syntax group ===
24d4755bb0SBram Moolenaar" = Boolean subgroup =
25d4755bb0SBram Moolenaarsyn keyword sqlBoolean  true false
26d4755bb0SBram Moolenaarsyn keyword sqlBoolean  null
27d4755bb0SBram Moolenaarsyn keyword sqlBoolean  public user
28d4755bb0SBram Moolenaarsyn keyword sqlBoolean  current today
29d4755bb0SBram Moolenaarsyn keyword sqlBoolean  year month day hour minute second fraction
30d4755bb0SBram Moolenaar
31d4755bb0SBram Moolenaar" = String subgroup =
32d4755bb0SBram Moolenaarsyn region sqlString		start=+"+  end=+"+
33d4755bb0SBram Moolenaarsyn region sqlString		start=+'+  end=+'+
34d4755bb0SBram Moolenaar
35d4755bb0SBram Moolenaar" = Numbers subgroup =
36d4755bb0SBram Moolenaarsyn match sqlNumber		"-\=\<\d*\.\=[0-9_]\>"
37d4755bb0SBram Moolenaar
38d4755bb0SBram Moolenaar
39d4755bb0SBram Moolenaar
40d4755bb0SBram Moolenaar" === Statement syntax group ===
41d4755bb0SBram Moolenaar" SQL
42d4755bb0SBram Moolenaarsyn keyword sqlStatement allocate alter
43d4755bb0SBram Moolenaarsyn keyword sqlStatement begin
44d4755bb0SBram Moolenaarsyn keyword sqlStatement close commit connect create
45d4755bb0SBram Moolenaarsyn keyword sqlStatement database deallocate declare delete describe disconnect drop
46d4755bb0SBram Moolenaarsyn keyword sqlStatement execute fetch flush free get grant info insert
47d4755bb0SBram Moolenaarsyn keyword sqlStatement load lock open output
48d4755bb0SBram Moolenaarsyn keyword sqlStatement prepare put
49d4755bb0SBram Moolenaarsyn keyword sqlStatement rename revoke rollback select set start stop
50d4755bb0SBram Moolenaarsyn keyword sqlStatement truncate unload unlock update
51d4755bb0SBram Moolenaarsyn keyword sqlStatement whenever
52d4755bb0SBram Moolenaar" SPL
53d4755bb0SBram Moolenaarsyn keyword sqlStatement call continue define
54d4755bb0SBram Moolenaarsyn keyword sqlStatement exit
55d4755bb0SBram Moolenaarsyn keyword sqlStatement let
56d4755bb0SBram Moolenaarsyn keyword sqlStatement return system trace
57d4755bb0SBram Moolenaar
58d4755bb0SBram Moolenaar" = Conditional subgroup =
59d4755bb0SBram Moolenaar" SPL
60d4755bb0SBram Moolenaarsyn keyword sqlConditional elif else if then
61d4755bb0SBram Moolenaarsyn keyword sqlConditional case
62d4755bb0SBram Moolenaar" Highlight "end if" with one or more separating spaces
63d4755bb0SBram Moolenaarsyn match  sqlConditional "end \+if"
64d4755bb0SBram Moolenaar
65d4755bb0SBram Moolenaar" = Repeat subgroup =
66d4755bb0SBram Moolenaar" SQL/SPL
67d4755bb0SBram Moolenaar" Handle SQL triggers' "for each row" clause and SPL "for" loop
68d4755bb0SBram Moolenaarsyn match  sqlRepeat "for\( \+each \+row\)\="
69d4755bb0SBram Moolenaar" SPL
70d4755bb0SBram Moolenaarsyn keyword sqlRepeat foreach while
71d4755bb0SBram Moolenaar" Highlight "end for", etc. with one or more separating spaces
72d4755bb0SBram Moolenaarsyn match  sqlRepeat "end \+for"
73d4755bb0SBram Moolenaarsyn match  sqlRepeat "end \+foreach"
74d4755bb0SBram Moolenaarsyn match  sqlRepeat "end \+while"
75d4755bb0SBram Moolenaar
76d4755bb0SBram Moolenaar" = Exception subgroup =
77d4755bb0SBram Moolenaar" SPL
78d4755bb0SBram Moolenaarsyn match  sqlException "on \+exception"
79d4755bb0SBram Moolenaarsyn match  sqlException "end \+exception"
80d4755bb0SBram Moolenaarsyn match  sqlException "end \+exception \+with \+resume"
81d4755bb0SBram Moolenaarsyn match  sqlException "raise \+exception"
82d4755bb0SBram Moolenaar
83d4755bb0SBram Moolenaar" = Keyword subgroup =
84d4755bb0SBram Moolenaar" SQL
85d4755bb0SBram Moolenaarsyn keyword sqlKeyword aggregate add as authorization autofree by
86d4755bb0SBram Moolenaarsyn keyword sqlKeyword cache cascade check cluster collation
87d4755bb0SBram Moolenaarsyn keyword sqlKeyword column connection constraint cross
88d4755bb0SBram Moolenaarsyn keyword sqlKeyword dataskip debug default deferred_prepare
89d4755bb0SBram Moolenaarsyn keyword sqlKeyword descriptor diagnostics
90d4755bb0SBram Moolenaarsyn keyword sqlKeyword each escape explain external
91d4755bb0SBram Moolenaarsyn keyword sqlKeyword file foreign fragment from function
92d4755bb0SBram Moolenaarsyn keyword sqlKeyword group having
93d4755bb0SBram Moolenaarsyn keyword sqlKeyword immediate index inner into isolation
94d4755bb0SBram Moolenaarsyn keyword sqlKeyword join key
95d4755bb0SBram Moolenaarsyn keyword sqlKeyword left level log
96d4755bb0SBram Moolenaarsyn keyword sqlKeyword mode modify mounting new no
97d4755bb0SBram Moolenaarsyn keyword sqlKeyword object of old optical option
98d4755bb0SBram Moolenaarsyn keyword sqlKeyword optimization order outer
99d4755bb0SBram Moolenaarsyn keyword sqlKeyword pdqpriority pload primary procedure
100d4755bb0SBram Moolenaarsyn keyword sqlKeyword references referencing release reserve
101d4755bb0SBram Moolenaarsyn keyword sqlKeyword residency right role routine row
102d4755bb0SBram Moolenaarsyn keyword sqlKeyword schedule schema scratch session set
103d4755bb0SBram Moolenaarsyn keyword sqlKeyword statement statistics synonym
104d4755bb0SBram Moolenaarsyn keyword sqlKeyword table temp temporary timeout to transaction trigger
105d4755bb0SBram Moolenaarsyn keyword sqlKeyword using values view violations
106d4755bb0SBram Moolenaarsyn keyword sqlKeyword where with work
107d4755bb0SBram Moolenaar" Highlight "on" (if it's not followed by some words we've already handled)
108d4755bb0SBram Moolenaarsyn match sqlKeyword "on \+\(exception\)\@!"
109d4755bb0SBram Moolenaar" SPL
110d4755bb0SBram Moolenaar" Highlight "end" (if it's not followed by some words we've already handled)
111d4755bb0SBram Moolenaarsyn match sqlKeyword "end \+\(if\|for\|foreach\|while\|exception\)\@!"
112d4755bb0SBram Moolenaarsyn keyword sqlKeyword resume returning
113d4755bb0SBram Moolenaar
114d4755bb0SBram Moolenaar" = Operator subgroup =
115d4755bb0SBram Moolenaar" SQL
116d4755bb0SBram Moolenaarsyn keyword sqlOperator	not and or
117d4755bb0SBram Moolenaarsyn keyword sqlOperator	in is any some all between exists
118d4755bb0SBram Moolenaarsyn keyword sqlOperator	like matches
119d4755bb0SBram Moolenaarsyn keyword sqlOperator union intersect
120d4755bb0SBram Moolenaarsyn keyword sqlOperator distinct unique
121d4755bb0SBram Moolenaar
122d4755bb0SBram Moolenaar
123d4755bb0SBram Moolenaar
124d4755bb0SBram Moolenaar" === Identifier syntax group ===
125d4755bb0SBram Moolenaar" = Function subgroup =
126d4755bb0SBram Moolenaar" SQL
127d4755bb0SBram Moolenaarsyn keyword sqlFunction	abs acos asin atan atan2 avg
128d4755bb0SBram Moolenaarsyn keyword sqlFunction	cardinality cast char_length character_length cos count
129d4755bb0SBram Moolenaarsyn keyword sqlFunction	exp filetoblob filetoclob hex
130d4755bb0SBram Moolenaarsyn keyword sqlFunction	initcap length logn log10 lower lpad
131d4755bb0SBram Moolenaarsyn keyword sqlFunction	min max mod octet_length pow range replace root round rpad
132d4755bb0SBram Moolenaarsyn keyword sqlFunction	sin sqrt stdev substr substring sum
133d4755bb0SBram Moolenaarsyn keyword sqlFunction	to_char tan to_date trim trunc upper variance
134d4755bb0SBram Moolenaar
135d4755bb0SBram Moolenaar
136d4755bb0SBram Moolenaar
137d4755bb0SBram Moolenaar" === Type syntax group ===
138d4755bb0SBram Moolenaar" SQL
139d4755bb0SBram Moolenaarsyn keyword sqlType	blob boolean byte char character clob
140d4755bb0SBram Moolenaarsyn keyword sqlType	date datetime dec decimal double
141d4755bb0SBram Moolenaarsyn keyword sqlType	float int int8 integer interval list lvarchar
142d4755bb0SBram Moolenaarsyn keyword sqlType	money multiset nchar numeric nvarchar
143d4755bb0SBram Moolenaarsyn keyword sqlType	real serial serial8 smallfloat smallint
144d4755bb0SBram Moolenaarsyn keyword sqlType	text varchar varying
145d4755bb0SBram Moolenaar
146d4755bb0SBram Moolenaar
147d4755bb0SBram Moolenaar
148d4755bb0SBram Moolenaar" === Todo syntax group ===
149d4755bb0SBram Moolenaarsyn keyword sqlTodo TODO FIXME XXX DEBUG NOTE
150d4755bb0SBram Moolenaar
151d4755bb0SBram Moolenaar
152d4755bb0SBram Moolenaar
153d4755bb0SBram Moolenaar" Define the default highlighting.
15489bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
155d4755bb0SBram Moolenaar
156d4755bb0SBram Moolenaar
157d4755bb0SBram Moolenaar" === Comment syntax group ===
158*f37506f6SBram Moolenaarhi def link sqlComment	Comment
159d4755bb0SBram Moolenaar
160d4755bb0SBram Moolenaar" === Constant syntax group ===
161*f37506f6SBram Moolenaarhi def link sqlNumber	Number
162*f37506f6SBram Moolenaarhi def link sqlBoolean	Boolean
163*f37506f6SBram Moolenaarhi def link sqlString	String
164d4755bb0SBram Moolenaar
165d4755bb0SBram Moolenaar" === Statment syntax group ===
166*f37506f6SBram Moolenaarhi def link sqlStatement	Statement
167*f37506f6SBram Moolenaarhi def link sqlConditional	Conditional
168*f37506f6SBram Moolenaarhi def link sqlRepeat		Repeat
169*f37506f6SBram Moolenaarhi def link sqlKeyword		Keyword
170*f37506f6SBram Moolenaarhi def link sqlOperator	Operator
171*f37506f6SBram Moolenaarhi def link sqlException	Exception
172d4755bb0SBram Moolenaar
173d4755bb0SBram Moolenaar" === Identifier syntax group ===
174*f37506f6SBram Moolenaarhi def link sqlFunction	Function
175d4755bb0SBram Moolenaar
176d4755bb0SBram Moolenaar" === Type syntax group ===
177*f37506f6SBram Moolenaarhi def link sqlType	Type
178d4755bb0SBram Moolenaar
179d4755bb0SBram Moolenaar" === Todo syntax group ===
180*f37506f6SBram Moolenaarhi def link sqlTodo	Todo
181d4755bb0SBram Moolenaar
182d4755bb0SBram Moolenaar
183d4755bb0SBram Moolenaarlet b:current_syntax = "sqlinformix"
184