diff --git a/runtime/syntax/sqr.vim b/runtime/syntax/sqr.vim
new file mode 100644
index 0000000..8749447
--- /dev/null
+++ b/runtime/syntax/sqr.vim
@@ -0,0 +1,295 @@
+" Vim syntax file
+"    Language: Structured Query Report Writer (SQR)
+"  Maintainer: Nathan Stratton Treadway (nathanst at ontko dot com)
+"	  URL: http://www.ontko.com/sqr/#editor_config_files
+"
+" Modification History:
+"     2002-Apr-12: Updated for SQR v6.x
+"     2002-Jul-30: Added { and } to iskeyword definition
+"     2003-Oct-15: Allow "." in variable names
+"		   highlight entire open '... literal when it contains
+"		      "''" inside it (e.g. "'I can''t say" is treated
+"		      as one open string, not one terminated and one open)
+"		   {} variables can occur inside of '...' literals
+"
+"  Thanks to the previous maintainer of this file, Jeff Lanzarotta:
+"    http://lanzarotta.tripod.com/vim.html
+"    jefflanzarotta at yahoo dot com
+
+" For version 5.x, clear all syntax items.
+" For version 6.x, quit when a syntax file was already loaded.
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+if version >= 600
+  setlocal iskeyword=@,48-57,_,-,#,$,{,}
+else
+  set iskeyword=@,48-57,_,-,#,$,{,}
+endif
+
+syn case ignore
+
+" BEGIN GENERATED SECTION ============================================
+
+" Generated by generate_vim_syntax.sqr at 2002/04/11 13:04
+" (based on the UltraEdit syntax file for SQR 6.1.4
+" found at http://www.ontko.com/sqr/#editor_config_files )
+
+syn keyword    sqrSection     begin-footing begin-heading begin-procedure
+syn keyword    sqrSection     begin-program begin-report begin-setup
+syn keyword    sqrSection     end-footing end-heading end-procedure
+syn keyword    sqrSection     end-program end-report end-setup
+
+syn keyword    sqrParagraph   alter-color-map alter-conection
+syn keyword    sqrParagraph   alter-locale alter-printer alter-report
+syn keyword    sqrParagraph   begin-document begin-execute begin-select
+syn keyword    sqrParagraph   begin-sql declare-chart declare-image
+syn keyword    sqrParagraph   declare-color-map declare-conection
+syn keyword    sqrParagraph   declare-layout declare-printer
+syn keyword    sqrParagraph   declare-report declare-procedure
+syn keyword    sqrParagraph   declare-toc declare-variable end-declare
+syn keyword    sqrParagraph   end-document end-select exit-select end-sql
+syn keyword    sqrParagraph   load-lookup
+
+syn keyword    sqrReserved    #current-column #current-date #current-line
+syn keyword    sqrReserved    #end-file #page-count #return-status
+syn keyword    sqrReserved    #sql-count #sql-status #sqr-max-columns
+syn keyword    sqrReserved    #sqr-max-lines #sqr-pid #sqr-toc-level
+syn keyword    sqrReserved    #sqr-toc-page $sqr-database {sqr-database}
+syn keyword    sqrReserved    $sqr-dbcs {sqr-dbcs} $sqr-encoding
+syn keyword    sqrReserved    {sqr-encoding} $sqr-encoding-console
+syn keyword    sqrReserved    {sqr-encoding-console}
+syn keyword    sqrReserved    $sqr-encoding-database
+syn keyword    sqrReserved    {sqr-encoding-database}
+syn keyword    sqrReserved    $sqr-encoding-file-input
+syn keyword    sqrReserved    {sqr-encoding-file-input}
+syn keyword    sqrReserved    $sqr-encoding-file-output
+syn keyword    sqrReserved    {sqr-encoding-file-output}
+syn keyword    sqrReserved    $sqr-encoding-report-input
+syn keyword    sqrReserved    {sqr-encoding-report-input}
+syn keyword    sqrReserved    $sqr-encoding-report-output
+syn keyword    sqrReserved    {sqr-encoding-report-output}
+syn keyword    sqrReserved    $sqr-encoding-source {sqr-encoding-source}
+syn keyword    sqrReserved    $sql-error $sqr-hostname {sqr-hostname}
+syn keyword    sqrReserved    $sqr-locale $sqr-platform {sqr-platform}
+syn keyword    sqrReserved    $sqr-program $sqr-report $sqr-toc-text
+syn keyword    sqrReserved    $sqr-ver $username
+
+syn keyword    sqrPreProc     #define #else #end-if #endif #if #ifdef
+syn keyword    sqrPreProc     #ifndef #include
+
+syn keyword    sqrCommand     add array-add array-divide array-multiply
+syn keyword    sqrCommand     array-subtract ask break call clear-array
+syn keyword    sqrCommand     close columns commit concat connect
+syn keyword    sqrCommand     create-array create-color-palette date-time
+syn keyword    sqrCommand     display divide do dollar-symbol else encode
+syn keyword    sqrCommand     end-evaluate end-if end-while evaluate
+syn keyword    sqrCommand     execute extract find get get-color goto
+syn keyword    sqrCommand     graphic if input last-page let lookup
+syn keyword    sqrCommand     lowercase mbtosbs money-symbol move
+syn keyword    sqrCommand     multiply new-page new-report next-column
+syn keyword    sqrCommand     next-listing no-formfeed open page-number
+syn keyword    sqrCommand     page-size position print print-bar-code
+syn keyword    sqrCommand     print-chart print-direct print-image
+syn keyword    sqrCommand     printer-deinit printer-init put read
+syn keyword    sqrCommand     rollback security set-color set-delay-print
+syn keyword    sqrCommand     set-generations set-levels set-members
+syn keyword    sqrCommand     sbtombs show stop string subtract toc-entry
+syn keyword    sqrCommand     unstring uppercase use use-column
+syn keyword    sqrCommand     use-printer-type use-procedure use-report
+syn keyword    sqrCommand     while write
+
+syn keyword    sqrParam       3d-effects after after-bold after-page
+syn keyword    sqrParam       after-report after-toc and as at-end before
+syn keyword    sqrParam       background batch-mode beep before-bold
+syn keyword    sqrParam       before-page before-report before-toc blink
+syn keyword    sqrParam       bold border bottom-margin box break by
+syn keyword    sqrParam       caption center char char-size char-width
+syn keyword    sqrParam       chars-inch chart-size checksum cl
+syn keyword    sqrParam       clear-line clear-screen color color-palette
+syn keyword    sqrParam       cs color_ data-array
+syn keyword    sqrParam       data-array-column-count
+syn keyword    sqrParam       data-array-column-labels
+syn keyword    sqrParam       data-array-row-count data-labels date
+syn keyword    sqrParam       date-edit-mask date-seperator
+syn keyword    sqrParam       day-of-week-case day-of-week-full
+syn keyword    sqrParam       day-of-week-short decimal decimal-seperator
+syn keyword    sqrParam       default-numeric delay distinct dot-leader
+syn keyword    sqrParam       edit-option-ad edit-option-am
+syn keyword    sqrParam       edit-option-bc edit-option-na
+syn keyword    sqrParam       edit-option-pm encoding entry erase-page
+syn keyword    sqrParam       extent field fill fixed fixed_nolf float
+syn keyword    sqrParam       font font-style font-type footing
+syn keyword    sqrParam       footing-size foreground for-append
+syn keyword    sqrParam       for-reading for-reports for-tocs
+syn keyword    sqrParam       for-writing format formfeed from goto-top
+syn keyword    sqrParam       group having heading heading-size height
+syn keyword    sqrParam       horz-line image-size in indentation
+syn keyword    sqrParam       init-string input-date-edit-mask insert
+syn keyword    sqrParam       integer into item-color item-size key
+syn keyword    sqrParam       layout left-margin legend legend-placement
+syn keyword    sqrParam       legend-presentation legend-title level
+syn keyword    sqrParam       line-height line-size line-width lines-inch
+syn keyword    sqrParam       local locale loops max-columns max-lines
+syn keyword    sqrParam       maxlen money money-edit-mask money-sign
+syn keyword    sqrParam       money-sign-location months-case months-full
+syn keyword    sqrParam       months-short name need newline newpage
+syn keyword    sqrParam       no-advance nolf noline noprompt normal not
+syn keyword    sqrParam       nowait number number-edit-mask on-break
+syn keyword    sqrParam       on-error or order orientation page-depth
+syn keyword    sqrParam       paper-size pie-segment-explode
+syn keyword    sqrParam       pie-segment-percent-display
+syn keyword    sqrParam       pie-segment-quantity-display pitch
+syn keyword    sqrParam       point-markers point-size printer
+syn keyword    sqrParam       printer-type quiet record reset-string
+syn keyword    sqrParam       return_value reverse right-margin rows save
+syn keyword    sqrParam       select size skip skiplines sort source
+syn keyword    sqrParam       sqr-database sqr-platform startup-file
+syn keyword    sqrParam       status stop sub-title symbol-set system
+syn keyword    sqrParam       table text thousand-seperator
+syn keyword    sqrParam       time-seperator times title to toc
+syn keyword    sqrParam       top-margin type underline update using
+syn keyword    sqrParam       value vary vert-line wait warn when
+syn keyword    sqrParam       when-other where with x-axis-grid
+syn keyword    sqrParam       x-axis-label x-axis-major-increment
+syn keyword    sqrParam       x-axis-major-tick-marks x-axis-max-value
+syn keyword    sqrParam       x-axis-min-value x-axis-minor-increment
+syn keyword    sqrParam       x-axis-minor-tick-marks x-axis-rotate
+syn keyword    sqrParam       x-axis-scale x-axis-tick-mark-placement xor
+syn keyword    sqrParam       y-axis-grid y-axis-label
+syn keyword    sqrParam       y-axis-major-increment
+syn keyword    sqrParam       y-axis-major-tick-marks y-axis-max-value
+syn keyword    sqrParam       y-axis-min-value y-axis-minor-increment
+syn keyword    sqrParam       y-axis-minor-tick-marks y-axis-scale
+syn keyword    sqrParam       y-axis-tick-mark-placement y2-type
+syn keyword    sqrParam       y2-data-array y2-data-array-row-count
+syn keyword    sqrParam       y2-data-array-column-count
+syn keyword    sqrParam       y2-data-array-column-labels
+syn keyword    sqrParam       y2-axis-color-palette y2-axis-label
+syn keyword    sqrParam       y2-axis-major-increment
+syn keyword    sqrParam       y2-axis-major-tick-marks y2-axis-max-value
+syn keyword    sqrParam       y2-axis-min-value y2-axis-minor-increment
+syn keyword    sqrParam       y2-axis-minor-tick-marks y2-axis-scale
+
+syn keyword    sqrFunction    abs acos asin atan array ascii asciic ceil
+syn keyword    sqrFunction    cos cosh chr cond deg delete dateadd
+syn keyword    sqrFunction    datediff datenow datetostr e10 exp edit
+syn keyword    sqrFunction    exists floor getenv instr instrb isblank
+syn keyword    sqrFunction    isnull log log10 length lengthb lengthp
+syn keyword    sqrFunction    lengtht lower lpad ltrim mod nvl power rad
+syn keyword    sqrFunction    round range replace roman rpad rtrim rename
+syn keyword    sqrFunction    sign sin sinh sqrt substr substrb substrp
+syn keyword    sqrFunction    substrt strtodate tan tanh trunc to_char
+syn keyword    sqrFunction    to_multi_byte to_number to_single_byte
+syn keyword    sqrFunction    transform translate unicode upper wrapdepth
+
+" END GENERATED SECTION ==============================================
+
+" Variables
+syn match	  sqrVariable	/\(\$\|#\|&\)\(\k\|\.\)*/
+
+
+" Debug compiler directives
+syn match	  sqrPreProc	/\s*#debug\a\=\(\s\|$\)/
+syn match	  sqrSubstVar	/{\k*}/
+
+
+" Strings
+" Note: if an undoubled ! is found, this is not a valid string
+" (SQR will treat the end of the line as a comment)
+syn match	  sqrString	/'\(!!\|[^!']\)*'/      contains=sqrSubstVar
+syn match	  sqrStrOpen	/'\(!!\|''\|[^!']\)*$/
+" If we find a ' followed by an unmatched ! before a matching ',
+" flag the error.
+syn match	  sqrError	/'\(!!\|[^'!]\)*![^!]/me=e-1
+syn match	  sqrError	/'\(!!\|[^'!]\)*!$/
+
+" Numbers:
+syn match	  sqrNumber	/-\=\<\d*\.\=[0-9_]\>/
+
+
+
+" Comments:
+" Handle comments that start with "!=" specially; they are only valid
+" in the first column of the source line.  Also, "!!" is only treated
+" as a start-comment if there is only whitespace ahead of it on the line.
+
+syn keyword	sqrTodo		TODO FIXME XXX DEBUG NOTE ###
+syn match	sqrTodo		/???/
+
+if version >= 600
+  " See also the sqrString section above for handling of ! characters
+  " inside of strings.  (Those patterns override the ones below.)
+  syn match	sqrComment	/!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
+  "				  the ! can't be preceeded by another !,
+  "				  and must be followed by at least one
+  "				  character other than ! or =, or immediately
+  "				  by the end-of-line
+  syn match	sqrComment	/^!=.*/ contains=sqrTodo
+  syn match	sqrComment	/^!!.*/ contains=sqrTodo
+  syn match	sqrError	/^\s\+\zs!=.*/
+  "				  it's an error to have "!=" preceeded by
+  "				  just whitespace on the line ("!="
+  "				  preceeded by non-whitespace is treated
+  "				  as neither a comment nor an error, since
+  "				  it is often correct, i.e.
+  "				    if #count != 7
+  syn match	sqrError	/.\+\zs!!.*/
+  "				  a "!!" anywhere but at the beginning of
+  "				  the line is always an error
+else "For versions before 6.0, same idea as above but we are limited
+     "to simple patterns only.  Also, the sqrString patterns above
+     "don't seem to take precedence in v5 as they do in v6, so
+     "we split the last rule to ignore comments found inside of
+     "string literals.
+  syn match	sqrComment	/!\([^!=].*\|$\)/ contains=sqrTodo
+  syn match	sqrComment	/^!=.*/ contains=sqrTodo
+  syn match	sqrComment	/^!!.*/ contains=sqrTodo
+  syn match	sqrError	/^\s\+!=.*/
+  syn match	sqrError	/^[^'!]\+!!/
+  "				flag !! on lines that don't have ! or '
+  syn match	sqrError	/^\([^!']*'[^']*'[^!']*\)\+!!/
+  "				flag !! found after matched ' ' chars
+  "				(that aren't also commented)
+endif
+
+
+" Define the default highlighting.
+" For version 5.7 and earlier, only when not done already.
+" For version 5.8 and later, only when an item doesn;t have hightlighting yet.
+if version >= 508 || !exists("did_sqr_syn_inits")
+  if version < 508
+    let did_sqr_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink sqrSection Statement
+  HiLink sqrParagraph Statement
+  HiLink sqrReserved Statement
+  HiLink sqrParameter Statement
+  HiLink sqrPreProc PreProc
+  HiLink sqrSubstVar PreProc
+  HiLink sqrCommand Statement
+  HiLink sqrParam Type
+  HiLink sqrFunction Special
+
+  HiLink sqrString String
+  HiLink sqrStrOpen Todo
+  HiLink sqrNumber Number
+  HiLink sqrVariable Identifier
+
+  HiLink sqrComment Comment
+  HiLink sqrTodo Todo
+  HiLink sqrError Error
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "sqr"
+
+" vim: ts=8 sw=2
