1" Vim syntax file
2"    Language: SQL*Forms (Oracle 7), based on sql.vim (vim5.0)
3"  Maintainer: Austin Ziegler (austin@halostatue.ca)
4" Last Change: 2003 May 11
5" Prev Change: 19980710
6"	  URL: http://www.halostatue.ca/vim/syntax/proc.vim
7"
8" TODO Find a new maintainer who knows SQL*Forms.
9
10    " For version 5.x, clear all syntax items.
11    " For version 6.x, quit when a syntax file was already loaded.
12if version < 600
13    syntax clear
14elseif exists("b:current_syntax")
15    finish
16endif
17
18syntax case ignore
19
20if version >= 600
21  setlocal iskeyword=a-z,A-Z,48-57,_,.,-,>
22else
23  set iskeyword=a-z,A-Z,48-57,_,.,-,>
24endif
25
26
27    " The SQL reserved words, defined as keywords.
28syntax match sqlTriggers /on-.*$/
29syntax match sqlTriggers /key-.*$/
30syntax match sqlTriggers /post-.*$/
31syntax match sqlTriggers /pre-.*$/
32syntax match sqlTriggers /user-.*$/
33
34syntax keyword sqlSpecial null false true
35
36syntax keyword sqlProcedure abort_query anchor_view bell block_menu break call
37syntax keyword sqlProcedure call_input call_query clear_block clear_eol
38syntax keyword sqlProcedure clear_field clear_form clear_record commit_form
39syntax keyword sqlProcedure copy count_query create_record default_value
40syntax keyword sqlProcedure delete_record display_error display_field down
41syntax keyword sqlProcedure duplicate_field duplicate_record edit_field
42syntax keyword sqlProcedure enter enter_query erase execute_query
43syntax keyword sqlProcedure execute_trigger exit_form first_Record go_block
44syntax keyword sqlProcedure go_field go_record help hide_menu hide_page host
45syntax keyword sqlProcedure last_record list_values lock_record message
46syntax keyword sqlProcedure move_view new_form next_block next_field next_key
47syntax keyword sqlProcedure next_record next_set pause post previous_block
48syntax keyword sqlProcedure previous_field previous_record print redisplay
49syntax keyword sqlProcedure replace_menu resize_view scroll_down scroll_up
50syntax keyword sqlProcedure set_field show_keys show_menu show_page
51syntax keyword sqlProcedure synchronize up user_exit
52
53syntax keyword sqlFunction block_characteristic error_code error_text
54syntax keyword sqlFunction error_type field_characteristic form_failure
55syntax keyword sqlFunction form_fatal form_success name_in
56
57syntax keyword sqlParameters hide no_hide replace no_replace ask_commit
58syntax keyword sqlParameters do_commit no_commit no_validate all_records
59syntax keyword sqlParameters for_update no_restrict restrict no_screen
60syntax keyword sqlParameters bar full_screen pull_down auto_help auto_skip
61syntax keyword sqlParameters fixed_length enterable required echo queryable
62syntax keyword sqlParameters updateable update_null upper_case attr_on
63syntax keyword sqlParameters attr_off base_table first_field last_field
64syntax keyword sqlParameters datatype displayed display_length field_length
65syntax keyword sqlParameters list page primary_key query_length x_pos y_pos
66
67syntax match sqlSystem /system\.block_status/
68syntax match sqlSystem /system\.current_block/
69syntax match sqlSystem /system\.current_field/
70syntax match sqlSystem /system\.current_form/
71syntax match sqlSystem /system\.current_value/
72syntax match sqlSystem /system\.cursor_block/
73syntax match sqlSystem /system\.cursor_field/
74syntax match sqlSystem /system\.cursor_record/
75syntax match sqlSystem /system\.cursor_value/
76syntax match sqlSystem /system\.form_status/
77syntax match sqlSystem /system\.last_query/
78syntax match sqlSystem /system\.last_record/
79syntax match sqlSystem /system\.message_level/
80syntax match sqlSystem /system\.record_status/
81syntax match sqlSystem /system\.trigger_block/
82syntax match sqlSystem /system\.trigger_field/
83syntax match sqlSystem /system\.trigger_record/
84syntax match sqlSystem /\$\$date\$\$/
85syntax match sqlSystem /\$\$time\$\$/
86
87syntax keyword sqlKeyword accept access add as asc by check cluster column
88syntax keyword sqlKeyword compress connect current decimal default
89syntax keyword sqlKeyword desc exclusive file for from group
90syntax keyword sqlKeyword having identified immediate increment index
91syntax keyword sqlKeyword initial into is level maxextents mode modify
92syntax keyword sqlKeyword nocompress nowait of offline on online start
93syntax keyword sqlKeyword successful synonym table to trigger uid
94syntax keyword sqlKeyword unique user validate values view whenever
95syntax keyword sqlKeyword where with option order pctfree privileges
96syntax keyword sqlKeyword public resource row rowlabel rownum rows
97syntax keyword sqlKeyword session share size smallint sql\*forms_version
98syntax keyword sqlKeyword terse define form name title procedure begin
99syntax keyword sqlKeyword default_menu_application trigger block field
100syntax keyword sqlKeyword enddefine declare exception raise when cursor
101syntax keyword sqlKeyword definition base_table pragma
102syntax keyword sqlKeyword column_name global trigger_type text description
103syntax match sqlKeyword "<<<"
104syntax match sqlKeyword ">>>"
105
106syntax keyword sqlOperator not and or out to_number to_date message erase
107syntax keyword sqlOperator in any some all between exists substr nvl
108syntax keyword sqlOperator exception_init
109syntax keyword sqlOperator like escape trunc lpad rpad sum
110syntax keyword sqlOperator union intersect minus to_char greatest
111syntax keyword sqlOperator prior distinct decode least avg
112syntax keyword sqlOperator sysdate true false field_characteristic
113syntax keyword sqlOperator display_field call host
114
115syntax keyword sqlStatement alter analyze audit comment commit create
116syntax keyword sqlStatement delete drop explain grant insert lock noaudit
117syntax keyword sqlStatement rename revoke rollback savepoint select set
118syntax keyword sqlStatement truncate update if elsif loop then
119syntax keyword sqlStatement open fetch close else end
120
121syntax keyword sqlType char character date long raw mlslabel number rowid
122syntax keyword sqlType varchar varchar2 float integer boolean global
123
124syntax keyword sqlCodes sqlcode no_data_found too_many_rows others
125syntax keyword sqlCodes form_trigger_failure notfound found
126syntax keyword sqlCodes validate no_commit
127
128    " Comments:
129syntax region sqlComment    start="/\*"  end="\*/"
130syntax match sqlComment  "--.*"
131
132    " Strings and characters:
133syntax region sqlString  start=+"+  skip=+\\\\\|\\"+  end=+"+
134syntax region sqlString  start=+'+  skip=+\\\\\|\\"+  end=+'+
135
136    " Numbers:
137syntax match sqlNumber  "-\=\<[0-9]*\.\=[0-9_]\>"
138
139syntax sync ccomment sqlComment
140
141if version >= 508 || !exists("did_sqlforms_syn_inits")
142    if version < 508
143	let did_sqlforms_syn_inits = 1
144	command -nargs=+ HiLink hi link <args>
145    else
146	command -nargs=+ HiLink hi def link <args>
147    endif
148
149    HiLink sqlComment Comment
150    HiLink sqlKeyword Statement
151    HiLink sqlNumber Number
152    HiLink sqlOperator Statement
153    HiLink sqlProcedure Statement
154    HiLink sqlFunction Statement
155    HiLink sqlSystem Identifier
156    HiLink sqlSpecial Special
157    HiLink sqlStatement Statement
158    HiLink sqlString String
159    HiLink sqlType Type
160    HiLink sqlCodes Identifier
161    HiLink sqlTriggers PreProc
162
163    delcommand HiLink
164endif
165
166let b:current_syntax = "sqlforms"
167
168" vim: ts=8 sw=4
169