1" Vim syntax file
2" Language:	sqlj
3" Maintainer:	Andreas Fischbach <afisch@altavista.com>
4"		This file is based on sql.vim && java.vim (thanx)
5"		with a handful of additional sql words and still
6"		a subset of whatever standard
7" Last change:	31th Dec 2001
8
9" au BufNewFile,BufRead *.sqlj so $VIM/syntax/sqlj.vim
10
11" Remove any old syntax stuff hanging around
12if version < 600
13   syntax clear
14elseif exists("b:current_syntax")
15   finish
16endif
17
18" Read the Java syntax to start with
19source <sfile>:p:h/java.vim
20
21" SQLJ extentions
22" The SQL reserved words, defined as keywords.
23
24syn case ignore
25syn keyword sqljSpecial   null
26
27syn keyword sqljKeyword	access add as asc by check cluster column
28syn keyword sqljKeyword	compress connect current decimal default
29syn keyword sqljKeyword	desc else exclusive file for from group
30syn keyword sqljKeyword	having identified immediate increment index
31syn keyword sqljKeyword	initial into is level maxextents mode modify
32syn keyword sqljKeyword	nocompress nowait of offline on online start
33syn keyword sqljKeyword	successful synonym table then to trigger uid
34syn keyword sqljKeyword	unique user validate values view whenever
35syn keyword sqljKeyword	where with option order pctfree privileges
36syn keyword sqljKeyword	public resource row rowlabel rownum rows
37syn keyword sqljKeyword	session share size smallint
38
39syn keyword sqljKeyword  fetch database context iterator field join
40syn keyword sqljKeyword  foreign outer inner isolation left right
41syn keyword sqljKeyword  match primary key
42
43syn keyword sqljOperator	not and or
44syn keyword sqljOperator	in any some all between exists
45syn keyword sqljOperator	like escape
46syn keyword sqljOperator union intersect minus
47syn keyword sqljOperator prior distinct
48syn keyword sqljOperator	sysdate
49
50syn keyword sqljOperator	max min avg sum count hex
51
52syn keyword sqljStatement	alter analyze audit comment commit create
53syn keyword sqljStatement	delete drop explain grant insert lock noaudit
54syn keyword sqljStatement	rename revoke rollback savepoint select set
55syn keyword sqljStatement	 truncate update begin work
56
57syn keyword sqljType		char character date long raw mlslabel number
58syn keyword sqljType		rowid varchar varchar2 float integer
59
60syn keyword sqljType		byte text serial
61
62
63" Strings and characters:
64syn region sqljString		start=+"+  skip=+\\\\\|\\"+  end=+"+
65syn region sqljString		start=+'+  skip=+\\\\\|\\"+  end=+'+
66
67" Numbers:
68syn match sqljNumber		"-\=\<\d*\.\=[0-9_]\>"
69
70" PreProc
71syn match sqljPre		"#sql"
72
73" Comments:
74syn region sqljComment    start="/\*"  end="\*/"
75syn match sqlComment	"--.*"
76
77syn sync ccomment sqljComment
78
79if version >= 508 || !exists("did_sqlj_syn_inits")
80  if version < 508
81    let did_sqlj_syn_inits = 1
82    command! -nargs=+ HiLink hi link <args>
83  else
84    command! -nargs=+ HiLink hi def link <args>
85  endif
86
87  " The default methods for highlighting. Can be overridden later.
88  HiLink sqljComment	Comment
89  HiLink sqljKeyword	sqljSpecial
90  HiLink sqljNumber	Number
91  HiLink sqljOperator	sqljStatement
92  HiLink sqljSpecial	Special
93  HiLink sqljStatement	Statement
94  HiLink sqljString	String
95  HiLink sqljType	Type
96  HiLink sqljPre	PreProc
97
98  delcommand HiLink
99endif
100
101let b:current_syntax = "sqlj"
102
103