xref: /vim-8.2.3635/runtime/syntax/sqr.vim (revision cf2d8dee)
1" Vim syntax file
2"    Language: Structured Query Report Writer (SQR)
3"  Maintainer: Nathan Stratton Treadway (nathanst at ontko dot com)
4"	  URL: http://www.ontko.com/sqr/#editor_config_files
5"
6" Modification History:
7"     2002-Apr-12: Updated for SQR v6.x
8"     2002-Jul-30: Added { and } to iskeyword definition
9"     2003-Oct-15: Allow "." in variable names
10"		   highlight entire open '... literal when it contains
11"		      "''" inside it (e.g. "'I can''t say" is treated
12"		      as one open string, not one terminated and one open)
13"		   {} variables can occur inside of '...' literals
14"
15"  Thanks to the previous maintainer of this file, Jeff Lanzarotta:
16"    http://lanzarotta.tripod.com/vim.html
17"    jefflanzarotta at yahoo dot com
18
19" For version 5.x, clear all syntax items.
20" For version 6.x, quit when a syntax file was already loaded.
21if version < 600
22  syntax clear
23elseif exists("b:current_syntax")
24  finish
25endif
26
27if version >= 600
28  setlocal iskeyword=@,48-57,_,-,#,$,{,}
29else
30  set iskeyword=@,48-57,_,-,#,$,{,}
31endif
32
33syn case ignore
34
35" BEGIN GENERATED SECTION ============================================
36
37" Generated by generate_vim_syntax.sqr at 2002/04/11 13:04
38" (based on the UltraEdit syntax file for SQR 6.1.4
39" found at http://www.ontko.com/sqr/#editor_config_files )
40
41syn keyword    sqrSection     begin-footing begin-heading begin-procedure
42syn keyword    sqrSection     begin-program begin-report begin-setup
43syn keyword    sqrSection     end-footing end-heading end-procedure
44syn keyword    sqrSection     end-program end-report end-setup
45
46syn keyword    sqrParagraph   alter-color-map alter-connection
47syn keyword    sqrParagraph   alter-locale alter-printer alter-report
48syn keyword    sqrParagraph   begin-document begin-execute begin-select
49syn keyword    sqrParagraph   begin-sql declare-chart declare-image
50syn keyword    sqrParagraph   declare-color-map declare-connection
51syn keyword    sqrParagraph   declare-layout declare-printer
52syn keyword    sqrParagraph   declare-report declare-procedure
53syn keyword    sqrParagraph   declare-toc declare-variable end-declare
54syn keyword    sqrParagraph   end-document end-select exit-select end-sql
55syn keyword    sqrParagraph   load-lookup
56
57syn keyword    sqrReserved    #current-column #current-date #current-line
58syn keyword    sqrReserved    #end-file #page-count #return-status
59syn keyword    sqrReserved    #sql-count #sql-status #sqr-max-columns
60syn keyword    sqrReserved    #sqr-max-lines #sqr-pid #sqr-toc-level
61syn keyword    sqrReserved    #sqr-toc-page $sqr-database {sqr-database}
62syn keyword    sqrReserved    $sqr-dbcs {sqr-dbcs} $sqr-encoding
63syn keyword    sqrReserved    {sqr-encoding} $sqr-encoding-console
64syn keyword    sqrReserved    {sqr-encoding-console}
65syn keyword    sqrReserved    $sqr-encoding-database
66syn keyword    sqrReserved    {sqr-encoding-database}
67syn keyword    sqrReserved    $sqr-encoding-file-input
68syn keyword    sqrReserved    {sqr-encoding-file-input}
69syn keyword    sqrReserved    $sqr-encoding-file-output
70syn keyword    sqrReserved    {sqr-encoding-file-output}
71syn keyword    sqrReserved    $sqr-encoding-report-input
72syn keyword    sqrReserved    {sqr-encoding-report-input}
73syn keyword    sqrReserved    $sqr-encoding-report-output
74syn keyword    sqrReserved    {sqr-encoding-report-output}
75syn keyword    sqrReserved    $sqr-encoding-source {sqr-encoding-source}
76syn keyword    sqrReserved    $sql-error $sqr-hostname {sqr-hostname}
77syn keyword    sqrReserved    $sqr-locale $sqr-platform {sqr-platform}
78syn keyword    sqrReserved    $sqr-program $sqr-report $sqr-toc-text
79syn keyword    sqrReserved    $sqr-ver $username
80
81syn keyword    sqrPreProc     #define #else #end-if #endif #if #ifdef
82syn keyword    sqrPreProc     #ifndef #include
83
84syn keyword    sqrCommand     add array-add array-divide array-multiply
85syn keyword    sqrCommand     array-subtract ask break call clear-array
86syn keyword    sqrCommand     close columns commit concat connect
87syn keyword    sqrCommand     create-array create-color-palette date-time
88syn keyword    sqrCommand     display divide do dollar-symbol else encode
89syn keyword    sqrCommand     end-evaluate end-if end-while evaluate
90syn keyword    sqrCommand     execute extract find get get-color goto
91syn keyword    sqrCommand     graphic if input last-page let lookup
92syn keyword    sqrCommand     lowercase mbtosbs money-symbol move
93syn keyword    sqrCommand     multiply new-page new-report next-column
94syn keyword    sqrCommand     next-listing no-formfeed open page-number
95syn keyword    sqrCommand     page-size position print print-bar-code
96syn keyword    sqrCommand     print-chart print-direct print-image
97syn keyword    sqrCommand     printer-deinit printer-init put read
98syn keyword    sqrCommand     rollback security set-color set-delay-print
99syn keyword    sqrCommand     set-generations set-levels set-members
100syn keyword    sqrCommand     sbtombs show stop string subtract toc-entry
101syn keyword    sqrCommand     unstring uppercase use use-column
102syn keyword    sqrCommand     use-printer-type use-procedure use-report
103syn keyword    sqrCommand     while write
104
105syn keyword    sqrParam       3d-effects after after-bold after-page
106syn keyword    sqrParam       after-report after-toc and as at-end before
107syn keyword    sqrParam       background batch-mode beep before-bold
108syn keyword    sqrParam       before-page before-report before-toc blink
109syn keyword    sqrParam       bold border bottom-margin box break by
110syn keyword    sqrParam       caption center char char-size char-width
111syn keyword    sqrParam       chars-inch chart-size checksum cl
112syn keyword    sqrParam       clear-line clear-screen color color-palette
113syn keyword    sqrParam       cs color_ data-array
114syn keyword    sqrParam       data-array-column-count
115syn keyword    sqrParam       data-array-column-labels
116syn keyword    sqrParam       data-array-row-count data-labels date
117syn keyword    sqrParam       date-edit-mask date-seperator
118syn keyword    sqrParam       day-of-week-case day-of-week-full
119syn keyword    sqrParam       day-of-week-short decimal decimal-seperator
120syn keyword    sqrParam       default-numeric delay distinct dot-leader
121syn keyword    sqrParam       edit-option-ad edit-option-am
122syn keyword    sqrParam       edit-option-bc edit-option-na
123syn keyword    sqrParam       edit-option-pm encoding entry erase-page
124syn keyword    sqrParam       extent field fill fixed fixed_nolf float
125syn keyword    sqrParam       font font-style font-type footing
126syn keyword    sqrParam       footing-size foreground for-append
127syn keyword    sqrParam       for-reading for-reports for-tocs
128syn keyword    sqrParam       for-writing format formfeed from goto-top
129syn keyword    sqrParam       group having heading heading-size height
130syn keyword    sqrParam       horz-line image-size in indentation
131syn keyword    sqrParam       init-string input-date-edit-mask insert
132syn keyword    sqrParam       integer into item-color item-size key
133syn keyword    sqrParam       layout left-margin legend legend-placement
134syn keyword    sqrParam       legend-presentation legend-title level
135syn keyword    sqrParam       line-height line-size line-width lines-inch
136syn keyword    sqrParam       local locale loops max-columns max-lines
137syn keyword    sqrParam       maxlen money money-edit-mask money-sign
138syn keyword    sqrParam       money-sign-location months-case months-full
139syn keyword    sqrParam       months-short name need newline newpage
140syn keyword    sqrParam       no-advance nolf noline noprompt normal not
141syn keyword    sqrParam       nowait number number-edit-mask on-break
142syn keyword    sqrParam       on-error or order orientation page-depth
143syn keyword    sqrParam       paper-size pie-segment-explode
144syn keyword    sqrParam       pie-segment-percent-display
145syn keyword    sqrParam       pie-segment-quantity-display pitch
146syn keyword    sqrParam       point-markers point-size printer
147syn keyword    sqrParam       printer-type quiet record reset-string
148syn keyword    sqrParam       return_value reverse right-margin rows save
149syn keyword    sqrParam       select size skip skiplines sort source
150syn keyword    sqrParam       sqr-database sqr-platform startup-file
151syn keyword    sqrParam       status stop sub-title symbol-set system
152syn keyword    sqrParam       table text thousand-seperator
153syn keyword    sqrParam       time-seperator times title to toc
154syn keyword    sqrParam       top-margin type underline update using
155syn keyword    sqrParam       value vary vert-line wait warn when
156syn keyword    sqrParam       when-other where with x-axis-grid
157syn keyword    sqrParam       x-axis-label x-axis-major-increment
158syn keyword    sqrParam       x-axis-major-tick-marks x-axis-max-value
159syn keyword    sqrParam       x-axis-min-value x-axis-minor-increment
160syn keyword    sqrParam       x-axis-minor-tick-marks x-axis-rotate
161syn keyword    sqrParam       x-axis-scale x-axis-tick-mark-placement xor
162syn keyword    sqrParam       y-axis-grid y-axis-label
163syn keyword    sqrParam       y-axis-major-increment
164syn keyword    sqrParam       y-axis-major-tick-marks y-axis-max-value
165syn keyword    sqrParam       y-axis-min-value y-axis-minor-increment
166syn keyword    sqrParam       y-axis-minor-tick-marks y-axis-scale
167syn keyword    sqrParam       y-axis-tick-mark-placement y2-type
168syn keyword    sqrParam       y2-data-array y2-data-array-row-count
169syn keyword    sqrParam       y2-data-array-column-count
170syn keyword    sqrParam       y2-data-array-column-labels
171syn keyword    sqrParam       y2-axis-color-palette y2-axis-label
172syn keyword    sqrParam       y2-axis-major-increment
173syn keyword    sqrParam       y2-axis-major-tick-marks y2-axis-max-value
174syn keyword    sqrParam       y2-axis-min-value y2-axis-minor-increment
175syn keyword    sqrParam       y2-axis-minor-tick-marks y2-axis-scale
176
177syn keyword    sqrFunction    abs acos asin atan array ascii asciic ceil
178syn keyword    sqrFunction    cos cosh chr cond deg delete dateadd
179syn keyword    sqrFunction    datediff datenow datetostr e10 exp edit
180syn keyword    sqrFunction    exists floor getenv instr instrb isblank
181syn keyword    sqrFunction    isnull log log10 length lengthb lengthp
182syn keyword    sqrFunction    lengtht lower lpad ltrim mod nvl power rad
183syn keyword    sqrFunction    round range replace roman rpad rtrim rename
184syn keyword    sqrFunction    sign sin sinh sqrt substr substrb substrp
185syn keyword    sqrFunction    substrt strtodate tan tanh trunc to_char
186syn keyword    sqrFunction    to_multi_byte to_number to_single_byte
187syn keyword    sqrFunction    transform translate unicode upper wrapdepth
188
189" END GENERATED SECTION ==============================================
190
191" Variables
192syn match	  sqrVariable	/\(\$\|#\|&\)\(\k\|\.\)*/
193
194
195" Debug compiler directives
196syn match	  sqrPreProc	/\s*#debug\a\=\(\s\|$\)/
197syn match	  sqrSubstVar	/{\k*}/
198
199
200" Strings
201" Note: if an undoubled ! is found, this is not a valid string
202" (SQR will treat the end of the line as a comment)
203syn match	  sqrString	/'\(!!\|[^!']\)*'/      contains=sqrSubstVar
204syn match	  sqrStrOpen	/'\(!!\|''\|[^!']\)*$/
205" If we find a ' followed by an unmatched ! before a matching ',
206" flag the error.
207syn match	  sqrError	/'\(!!\|[^'!]\)*![^!]/me=e-1
208syn match	  sqrError	/'\(!!\|[^'!]\)*!$/
209
210" Numbers:
211syn match	  sqrNumber	/-\=\<\d*\.\=[0-9_]\>/
212
213
214
215" Comments:
216" Handle comments that start with "!=" specially; they are only valid
217" in the first column of the source line.  Also, "!!" is only treated
218" as a start-comment if there is only whitespace ahead of it on the line.
219
220syn keyword	sqrTodo		TODO FIXME XXX DEBUG NOTE ###
221syn match	sqrTodo		/???/
222
223if version >= 600
224  " See also the sqrString section above for handling of ! characters
225  " inside of strings.  (Those patterns override the ones below.)
226  syn match	sqrComment	/!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
227  "				  the ! can't be preceded by another !,
228  "				  and must be followed by at least one
229  "				  character other than ! or =, or immediately
230  "				  by the end-of-line
231  syn match	sqrComment	/^!=.*/ contains=sqrTodo
232  syn match	sqrComment	/^!!.*/ contains=sqrTodo
233  syn match	sqrError	/^\s\+\zs!=.*/
234  "				  it's an error to have "!=" preceded by
235  "				  just whitespace on the line ("!="
236  "				  preceded by non-whitespace is treated
237  "				  as neither a comment nor an error, since
238  "				  it is often correct, i.e.
239  "				    if #count != 7
240  syn match	sqrError	/.\+\zs!!.*/
241  "				  a "!!" anywhere but at the beginning of
242  "				  the line is always an error
243else "For versions before 6.0, same idea as above but we are limited
244     "to simple patterns only.  Also, the sqrString patterns above
245     "don't seem to take precedence in v5 as they do in v6, so
246     "we split the last rule to ignore comments found inside of
247     "string literals.
248  syn match	sqrComment	/!\([^!=].*\|$\)/ contains=sqrTodo
249  syn match	sqrComment	/^!=.*/ contains=sqrTodo
250  syn match	sqrComment	/^!!.*/ contains=sqrTodo
251  syn match	sqrError	/^\s\+!=.*/
252  syn match	sqrError	/^[^'!]\+!!/
253  "				flag !! on lines that don't have ! or '
254  syn match	sqrError	/^\([^!']*'[^']*'[^!']*\)\+!!/
255  "				flag !! found after matched ' ' chars
256  "				(that aren't also commented)
257endif
258
259
260" Define the default highlighting.
261" For version 5.7 and earlier, only when not done already.
262" For version 5.8 and later, only when an item doesn't have highlighting yet.
263if version >= 508 || !exists("did_sqr_syn_inits")
264  if version < 508
265    let did_sqr_syn_inits = 1
266    command -nargs=+ HiLink hi link <args>
267  else
268    command -nargs=+ HiLink hi def link <args>
269  endif
270
271  HiLink sqrSection Statement
272  HiLink sqrParagraph Statement
273  HiLink sqrReserved Statement
274  HiLink sqrParameter Statement
275  HiLink sqrPreProc PreProc
276  HiLink sqrSubstVar PreProc
277  HiLink sqrCommand Statement
278  HiLink sqrParam Type
279  HiLink sqrFunction Special
280
281  HiLink sqrString String
282  HiLink sqrStrOpen Todo
283  HiLink sqrNumber Number
284  HiLink sqrVariable Identifier
285
286  HiLink sqrComment Comment
287  HiLink sqrTodo Todo
288  HiLink sqrError Error
289
290  delcommand HiLink
291endif
292
293let b:current_syntax = "sqr"
294
295" vim: ts=8 sw=2
296