xref: /vim-8.2.3635/runtime/syntax/sqr.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar"    Language: Structured Query Report Writer (SQR)
3071d4279SBram Moolenaar"  Maintainer: Nathan Stratton Treadway (nathanst at ontko dot com)
4071d4279SBram Moolenaar"	  URL: http://www.ontko.com/sqr/#editor_config_files
5071d4279SBram Moolenaar"
6071d4279SBram Moolenaar" Modification History:
7071d4279SBram Moolenaar"     2002-Apr-12: Updated for SQR v6.x
8071d4279SBram Moolenaar"     2002-Jul-30: Added { and } to iskeyword definition
9071d4279SBram Moolenaar"     2003-Oct-15: Allow "." in variable names
10071d4279SBram Moolenaar"		   highlight entire open '... literal when it contains
11071d4279SBram Moolenaar"		      "''" inside it (e.g. "'I can''t say" is treated
12071d4279SBram Moolenaar"		      as one open string, not one terminated and one open)
13071d4279SBram Moolenaar"		   {} variables can occur inside of '...' literals
14071d4279SBram Moolenaar"
15071d4279SBram Moolenaar"  Thanks to the previous maintainer of this file, Jeff Lanzarotta:
16071d4279SBram Moolenaar"    http://lanzarotta.tripod.com/vim.html
17071d4279SBram Moolenaar"    jefflanzarotta at yahoo dot com
18071d4279SBram Moolenaar
1989bcfda6SBram Moolenaar" quit when a syntax file was already loaded
2089bcfda6SBram Moolenaarif exists("b:current_syntax")
21071d4279SBram Moolenaar  finish
22071d4279SBram Moolenaarendif
23071d4279SBram Moolenaar
24071d4279SBram Moolenaarsetlocal iskeyword=@,48-57,_,-,#,$,{,}
25071d4279SBram Moolenaar
26071d4279SBram Moolenaarsyn case ignore
27071d4279SBram Moolenaar
28071d4279SBram Moolenaar" BEGIN GENERATED SECTION ============================================
29071d4279SBram Moolenaar
30071d4279SBram Moolenaar" Generated by generate_vim_syntax.sqr at 2002/04/11 13:04
31071d4279SBram Moolenaar" (based on the UltraEdit syntax file for SQR 6.1.4
32071d4279SBram Moolenaar" found at http://www.ontko.com/sqr/#editor_config_files )
33071d4279SBram Moolenaar
34071d4279SBram Moolenaarsyn keyword    sqrSection     begin-footing begin-heading begin-procedure
35071d4279SBram Moolenaarsyn keyword    sqrSection     begin-program begin-report begin-setup
36071d4279SBram Moolenaarsyn keyword    sqrSection     end-footing end-heading end-procedure
37071d4279SBram Moolenaarsyn keyword    sqrSection     end-program end-report end-setup
38071d4279SBram Moolenaar
391514667aSBram Moolenaarsyn keyword    sqrParagraph   alter-color-map alter-connection
40071d4279SBram Moolenaarsyn keyword    sqrParagraph   alter-locale alter-printer alter-report
41071d4279SBram Moolenaarsyn keyword    sqrParagraph   begin-document begin-execute begin-select
42071d4279SBram Moolenaarsyn keyword    sqrParagraph   begin-sql declare-chart declare-image
431514667aSBram Moolenaarsyn keyword    sqrParagraph   declare-color-map declare-connection
44071d4279SBram Moolenaarsyn keyword    sqrParagraph   declare-layout declare-printer
45071d4279SBram Moolenaarsyn keyword    sqrParagraph   declare-report declare-procedure
46071d4279SBram Moolenaarsyn keyword    sqrParagraph   declare-toc declare-variable end-declare
47071d4279SBram Moolenaarsyn keyword    sqrParagraph   end-document end-select exit-select end-sql
48071d4279SBram Moolenaarsyn keyword    sqrParagraph   load-lookup
49071d4279SBram Moolenaar
50071d4279SBram Moolenaarsyn keyword    sqrReserved    #current-column #current-date #current-line
51071d4279SBram Moolenaarsyn keyword    sqrReserved    #end-file #page-count #return-status
52071d4279SBram Moolenaarsyn keyword    sqrReserved    #sql-count #sql-status #sqr-max-columns
53071d4279SBram Moolenaarsyn keyword    sqrReserved    #sqr-max-lines #sqr-pid #sqr-toc-level
54071d4279SBram Moolenaarsyn keyword    sqrReserved    #sqr-toc-page $sqr-database {sqr-database}
55071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-dbcs {sqr-dbcs} $sqr-encoding
56071d4279SBram Moolenaarsyn keyword    sqrReserved    {sqr-encoding} $sqr-encoding-console
57071d4279SBram Moolenaarsyn keyword    sqrReserved    {sqr-encoding-console}
58071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-encoding-database
59071d4279SBram Moolenaarsyn keyword    sqrReserved    {sqr-encoding-database}
60071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-encoding-file-input
61071d4279SBram Moolenaarsyn keyword    sqrReserved    {sqr-encoding-file-input}
62071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-encoding-file-output
63071d4279SBram Moolenaarsyn keyword    sqrReserved    {sqr-encoding-file-output}
64071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-encoding-report-input
65071d4279SBram Moolenaarsyn keyword    sqrReserved    {sqr-encoding-report-input}
66071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-encoding-report-output
67071d4279SBram Moolenaarsyn keyword    sqrReserved    {sqr-encoding-report-output}
68071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-encoding-source {sqr-encoding-source}
69071d4279SBram Moolenaarsyn keyword    sqrReserved    $sql-error $sqr-hostname {sqr-hostname}
70071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-locale $sqr-platform {sqr-platform}
71071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-program $sqr-report $sqr-toc-text
72071d4279SBram Moolenaarsyn keyword    sqrReserved    $sqr-ver $username
73071d4279SBram Moolenaar
74071d4279SBram Moolenaarsyn keyword    sqrPreProc     #define #else #end-if #endif #if #ifdef
75071d4279SBram Moolenaarsyn keyword    sqrPreProc     #ifndef #include
76071d4279SBram Moolenaar
77071d4279SBram Moolenaarsyn keyword    sqrCommand     add array-add array-divide array-multiply
78071d4279SBram Moolenaarsyn keyword    sqrCommand     array-subtract ask break call clear-array
79071d4279SBram Moolenaarsyn keyword    sqrCommand     close columns commit concat connect
80071d4279SBram Moolenaarsyn keyword    sqrCommand     create-array create-color-palette date-time
81071d4279SBram Moolenaarsyn keyword    sqrCommand     display divide do dollar-symbol else encode
82071d4279SBram Moolenaarsyn keyword    sqrCommand     end-evaluate end-if end-while evaluate
83071d4279SBram Moolenaarsyn keyword    sqrCommand     execute extract find get get-color goto
84071d4279SBram Moolenaarsyn keyword    sqrCommand     graphic if input last-page let lookup
85071d4279SBram Moolenaarsyn keyword    sqrCommand     lowercase mbtosbs money-symbol move
86071d4279SBram Moolenaarsyn keyword    sqrCommand     multiply new-page new-report next-column
87071d4279SBram Moolenaarsyn keyword    sqrCommand     next-listing no-formfeed open page-number
88071d4279SBram Moolenaarsyn keyword    sqrCommand     page-size position print print-bar-code
89071d4279SBram Moolenaarsyn keyword    sqrCommand     print-chart print-direct print-image
90071d4279SBram Moolenaarsyn keyword    sqrCommand     printer-deinit printer-init put read
91071d4279SBram Moolenaarsyn keyword    sqrCommand     rollback security set-color set-delay-print
92071d4279SBram Moolenaarsyn keyword    sqrCommand     set-generations set-levels set-members
93071d4279SBram Moolenaarsyn keyword    sqrCommand     sbtombs show stop string subtract toc-entry
94071d4279SBram Moolenaarsyn keyword    sqrCommand     unstring uppercase use use-column
95071d4279SBram Moolenaarsyn keyword    sqrCommand     use-printer-type use-procedure use-report
96071d4279SBram Moolenaarsyn keyword    sqrCommand     while write
97071d4279SBram Moolenaar
98071d4279SBram Moolenaarsyn keyword    sqrParam       3d-effects after after-bold after-page
99071d4279SBram Moolenaarsyn keyword    sqrParam       after-report after-toc and as at-end before
100071d4279SBram Moolenaarsyn keyword    sqrParam       background batch-mode beep before-bold
101071d4279SBram Moolenaarsyn keyword    sqrParam       before-page before-report before-toc blink
102071d4279SBram Moolenaarsyn keyword    sqrParam       bold border bottom-margin box break by
103071d4279SBram Moolenaarsyn keyword    sqrParam       caption center char char-size char-width
104071d4279SBram Moolenaarsyn keyword    sqrParam       chars-inch chart-size checksum cl
105071d4279SBram Moolenaarsyn keyword    sqrParam       clear-line clear-screen color color-palette
106071d4279SBram Moolenaarsyn keyword    sqrParam       cs color_ data-array
107071d4279SBram Moolenaarsyn keyword    sqrParam       data-array-column-count
108071d4279SBram Moolenaarsyn keyword    sqrParam       data-array-column-labels
109071d4279SBram Moolenaarsyn keyword    sqrParam       data-array-row-count data-labels date
110071d4279SBram Moolenaarsyn keyword    sqrParam       date-edit-mask date-seperator
111071d4279SBram Moolenaarsyn keyword    sqrParam       day-of-week-case day-of-week-full
112071d4279SBram Moolenaarsyn keyword    sqrParam       day-of-week-short decimal decimal-seperator
113071d4279SBram Moolenaarsyn keyword    sqrParam       default-numeric delay distinct dot-leader
114071d4279SBram Moolenaarsyn keyword    sqrParam       edit-option-ad edit-option-am
115071d4279SBram Moolenaarsyn keyword    sqrParam       edit-option-bc edit-option-na
116071d4279SBram Moolenaarsyn keyword    sqrParam       edit-option-pm encoding entry erase-page
117071d4279SBram Moolenaarsyn keyword    sqrParam       extent field fill fixed fixed_nolf float
118071d4279SBram Moolenaarsyn keyword    sqrParam       font font-style font-type footing
119071d4279SBram Moolenaarsyn keyword    sqrParam       footing-size foreground for-append
120071d4279SBram Moolenaarsyn keyword    sqrParam       for-reading for-reports for-tocs
121071d4279SBram Moolenaarsyn keyword    sqrParam       for-writing format formfeed from goto-top
122071d4279SBram Moolenaarsyn keyword    sqrParam       group having heading heading-size height
123071d4279SBram Moolenaarsyn keyword    sqrParam       horz-line image-size in indentation
124071d4279SBram Moolenaarsyn keyword    sqrParam       init-string input-date-edit-mask insert
125071d4279SBram Moolenaarsyn keyword    sqrParam       integer into item-color item-size key
126071d4279SBram Moolenaarsyn keyword    sqrParam       layout left-margin legend legend-placement
127071d4279SBram Moolenaarsyn keyword    sqrParam       legend-presentation legend-title level
128071d4279SBram Moolenaarsyn keyword    sqrParam       line-height line-size line-width lines-inch
129071d4279SBram Moolenaarsyn keyword    sqrParam       local locale loops max-columns max-lines
130071d4279SBram Moolenaarsyn keyword    sqrParam       maxlen money money-edit-mask money-sign
131071d4279SBram Moolenaarsyn keyword    sqrParam       money-sign-location months-case months-full
132071d4279SBram Moolenaarsyn keyword    sqrParam       months-short name need newline newpage
133071d4279SBram Moolenaarsyn keyword    sqrParam       no-advance nolf noline noprompt normal not
134071d4279SBram Moolenaarsyn keyword    sqrParam       nowait number number-edit-mask on-break
135071d4279SBram Moolenaarsyn keyword    sqrParam       on-error or order orientation page-depth
136071d4279SBram Moolenaarsyn keyword    sqrParam       paper-size pie-segment-explode
137071d4279SBram Moolenaarsyn keyword    sqrParam       pie-segment-percent-display
138071d4279SBram Moolenaarsyn keyword    sqrParam       pie-segment-quantity-display pitch
139071d4279SBram Moolenaarsyn keyword    sqrParam       point-markers point-size printer
140071d4279SBram Moolenaarsyn keyword    sqrParam       printer-type quiet record reset-string
141071d4279SBram Moolenaarsyn keyword    sqrParam       return_value reverse right-margin rows save
142071d4279SBram Moolenaarsyn keyword    sqrParam       select size skip skiplines sort source
143071d4279SBram Moolenaarsyn keyword    sqrParam       sqr-database sqr-platform startup-file
144071d4279SBram Moolenaarsyn keyword    sqrParam       status stop sub-title symbol-set system
145071d4279SBram Moolenaarsyn keyword    sqrParam       table text thousand-seperator
146071d4279SBram Moolenaarsyn keyword    sqrParam       time-seperator times title to toc
147071d4279SBram Moolenaarsyn keyword    sqrParam       top-margin type underline update using
148071d4279SBram Moolenaarsyn keyword    sqrParam       value vary vert-line wait warn when
149071d4279SBram Moolenaarsyn keyword    sqrParam       when-other where with x-axis-grid
150071d4279SBram Moolenaarsyn keyword    sqrParam       x-axis-label x-axis-major-increment
151071d4279SBram Moolenaarsyn keyword    sqrParam       x-axis-major-tick-marks x-axis-max-value
152071d4279SBram Moolenaarsyn keyword    sqrParam       x-axis-min-value x-axis-minor-increment
153071d4279SBram Moolenaarsyn keyword    sqrParam       x-axis-minor-tick-marks x-axis-rotate
154071d4279SBram Moolenaarsyn keyword    sqrParam       x-axis-scale x-axis-tick-mark-placement xor
155071d4279SBram Moolenaarsyn keyword    sqrParam       y-axis-grid y-axis-label
156071d4279SBram Moolenaarsyn keyword    sqrParam       y-axis-major-increment
157071d4279SBram Moolenaarsyn keyword    sqrParam       y-axis-major-tick-marks y-axis-max-value
158071d4279SBram Moolenaarsyn keyword    sqrParam       y-axis-min-value y-axis-minor-increment
159071d4279SBram Moolenaarsyn keyword    sqrParam       y-axis-minor-tick-marks y-axis-scale
160071d4279SBram Moolenaarsyn keyword    sqrParam       y-axis-tick-mark-placement y2-type
161071d4279SBram Moolenaarsyn keyword    sqrParam       y2-data-array y2-data-array-row-count
162071d4279SBram Moolenaarsyn keyword    sqrParam       y2-data-array-column-count
163071d4279SBram Moolenaarsyn keyword    sqrParam       y2-data-array-column-labels
164071d4279SBram Moolenaarsyn keyword    sqrParam       y2-axis-color-palette y2-axis-label
165071d4279SBram Moolenaarsyn keyword    sqrParam       y2-axis-major-increment
166071d4279SBram Moolenaarsyn keyword    sqrParam       y2-axis-major-tick-marks y2-axis-max-value
167071d4279SBram Moolenaarsyn keyword    sqrParam       y2-axis-min-value y2-axis-minor-increment
168071d4279SBram Moolenaarsyn keyword    sqrParam       y2-axis-minor-tick-marks y2-axis-scale
169071d4279SBram Moolenaar
170071d4279SBram Moolenaarsyn keyword    sqrFunction    abs acos asin atan array ascii asciic ceil
171071d4279SBram Moolenaarsyn keyword    sqrFunction    cos cosh chr cond deg delete dateadd
172071d4279SBram Moolenaarsyn keyword    sqrFunction    datediff datenow datetostr e10 exp edit
173071d4279SBram Moolenaarsyn keyword    sqrFunction    exists floor getenv instr instrb isblank
174071d4279SBram Moolenaarsyn keyword    sqrFunction    isnull log log10 length lengthb lengthp
175071d4279SBram Moolenaarsyn keyword    sqrFunction    lengtht lower lpad ltrim mod nvl power rad
176071d4279SBram Moolenaarsyn keyword    sqrFunction    round range replace roman rpad rtrim rename
177071d4279SBram Moolenaarsyn keyword    sqrFunction    sign sin sinh sqrt substr substrb substrp
178071d4279SBram Moolenaarsyn keyword    sqrFunction    substrt strtodate tan tanh trunc to_char
179071d4279SBram Moolenaarsyn keyword    sqrFunction    to_multi_byte to_number to_single_byte
180071d4279SBram Moolenaarsyn keyword    sqrFunction    transform translate unicode upper wrapdepth
181071d4279SBram Moolenaar
182071d4279SBram Moolenaar" END GENERATED SECTION ==============================================
183071d4279SBram Moolenaar
184071d4279SBram Moolenaar" Variables
185071d4279SBram Moolenaarsyn match	  sqrVariable	/\(\$\|#\|&\)\(\k\|\.\)*/
186071d4279SBram Moolenaar
187071d4279SBram Moolenaar
188071d4279SBram Moolenaar" Debug compiler directives
189071d4279SBram Moolenaarsyn match	  sqrPreProc	/\s*#debug\a\=\(\s\|$\)/
190071d4279SBram Moolenaarsyn match	  sqrSubstVar	/{\k*}/
191071d4279SBram Moolenaar
192071d4279SBram Moolenaar
193071d4279SBram Moolenaar" Strings
194071d4279SBram Moolenaar" Note: if an undoubled ! is found, this is not a valid string
195071d4279SBram Moolenaar" (SQR will treat the end of the line as a comment)
196071d4279SBram Moolenaarsyn match	  sqrString	/'\(!!\|[^!']\)*'/      contains=sqrSubstVar
197071d4279SBram Moolenaarsyn match	  sqrStrOpen	/'\(!!\|''\|[^!']\)*$/
198071d4279SBram Moolenaar" If we find a ' followed by an unmatched ! before a matching ',
199071d4279SBram Moolenaar" flag the error.
200071d4279SBram Moolenaarsyn match	  sqrError	/'\(!!\|[^'!]\)*![^!]/me=e-1
201071d4279SBram Moolenaarsyn match	  sqrError	/'\(!!\|[^'!]\)*!$/
202071d4279SBram Moolenaar
203071d4279SBram Moolenaar" Numbers:
204071d4279SBram Moolenaarsyn match	  sqrNumber	/-\=\<\d*\.\=[0-9_]\>/
205071d4279SBram Moolenaar
206071d4279SBram Moolenaar
207071d4279SBram Moolenaar
208071d4279SBram Moolenaar" Comments:
209071d4279SBram Moolenaar" Handle comments that start with "!=" specially; they are only valid
210071d4279SBram Moolenaar" in the first column of the source line.  Also, "!!" is only treated
211071d4279SBram Moolenaar" as a start-comment if there is only whitespace ahead of it on the line.
212071d4279SBram Moolenaar
213071d4279SBram Moolenaarsyn keyword	sqrTodo		TODO FIXME XXX DEBUG NOTE ###
214071d4279SBram Moolenaarsyn match	sqrTodo		/???/
215071d4279SBram Moolenaar
216071d4279SBram Moolenaar" See also the sqrString section above for handling of ! characters
217071d4279SBram Moolenaar" inside of strings.  (Those patterns override the ones below.)
218071d4279SBram Moolenaarsyn match	sqrComment	/!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
2191514667aSBram Moolenaar"				  the ! can't be preceded by another !,
220071d4279SBram Moolenaar"				  and must be followed by at least one
221071d4279SBram Moolenaar"				  character other than ! or =, or immediately
222071d4279SBram Moolenaar"				  by the end-of-line
223071d4279SBram Moolenaarsyn match	sqrComment	/^!=.*/ contains=sqrTodo
224071d4279SBram Moolenaarsyn match	sqrComment	/^!!.*/ contains=sqrTodo
225071d4279SBram Moolenaarsyn match	sqrError	/^\s\+\zs!=.*/
2261514667aSBram Moolenaar"				  it's an error to have "!=" preceded by
227071d4279SBram Moolenaar"				  just whitespace on the line ("!="
2281514667aSBram Moolenaar"				  preceded by non-whitespace is treated
229071d4279SBram Moolenaar"				  as neither a comment nor an error, since
230071d4279SBram Moolenaar"				  it is often correct, i.e.
231071d4279SBram Moolenaar"				    if #count != 7
232071d4279SBram Moolenaarsyn match	sqrError	/.\+\zs!!.*/
233071d4279SBram Moolenaar"				  a "!!" anywhere but at the beginning of
234071d4279SBram Moolenaar"				  the line is always an error
235071d4279SBram Moolenaar
236071d4279SBram Moolenaar
237071d4279SBram Moolenaar" Define the default highlighting.
23889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet.
239071d4279SBram Moolenaar
240*f37506f6SBram Moolenaarhi def link sqrSection Statement
241*f37506f6SBram Moolenaarhi def link sqrParagraph Statement
242*f37506f6SBram Moolenaarhi def link sqrReserved Statement
243*f37506f6SBram Moolenaarhi def link sqrParameter Statement
244*f37506f6SBram Moolenaarhi def link sqrPreProc PreProc
245*f37506f6SBram Moolenaarhi def link sqrSubstVar PreProc
246*f37506f6SBram Moolenaarhi def link sqrCommand Statement
247*f37506f6SBram Moolenaarhi def link sqrParam Type
248*f37506f6SBram Moolenaarhi def link sqrFunction Special
249071d4279SBram Moolenaar
250*f37506f6SBram Moolenaarhi def link sqrString String
251*f37506f6SBram Moolenaarhi def link sqrStrOpen Todo
252*f37506f6SBram Moolenaarhi def link sqrNumber Number
253*f37506f6SBram Moolenaarhi def link sqrVariable Identifier
254071d4279SBram Moolenaar
255*f37506f6SBram Moolenaarhi def link sqrComment Comment
256*f37506f6SBram Moolenaarhi def link sqrTodo Todo
257*f37506f6SBram Moolenaarhi def link sqrError Error
258071d4279SBram Moolenaar
259071d4279SBram Moolenaar
260071d4279SBram Moolenaarlet b:current_syntax = "sqr"
261071d4279SBram Moolenaar
262071d4279SBram Moolenaar" vim: ts=8 sw=2
263