updated for version 7.0001
diff --git a/runtime/syntax/sas.vim b/runtime/syntax/sas.vim
new file mode 100644
index 0000000..68e8788
--- /dev/null
+++ b/runtime/syntax/sas.vim
@@ -0,0 +1,236 @@
+" Vim syntax file
+" Language:	SAS
+" Maintainer:	James Kidd <james.kidd@covance.com>
+" Last Change:	02 Jun 2003
+"		Added highlighting for additional keywords and such;
+"		Attempted to match SAS default syntax colors;
+"		Changed syncing so it doesn't lose colors on large blocks;
+"		Much thanks to Bob Heckel for knowledgeable tweaking.
+"  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
+
+syn case ignore
+
+syn region sasString	start=+"+  skip=+\\\\\|\\"+  end=+"+
+syn region sasString	start=+'+  skip=+\\\\\|\\"+  end=+'+
+
+" Want region from 'cards;' to ';' to be captured (Bob Heckel)
+syn region sasCards	start="^\s*CARDS.*" end="^\s*;\s*$"
+syn region sasCards	start="^\s*DATALINES.*" end="^\s*;\s*$"
+
+syn match sasNumber	"-\=\<\d*\.\=[0-9_]\>"
+
+syn region sasComment	start="/\*"  end="\*/" contains=sasTodo
+" Ignore misleading //JCL SYNTAX... (Bob Heckel)
+syn region sasComment	start="[^/][^/]/\*"  end="\*/" contains=sasTodo
+
+" Allow highlighting of embedded TODOs (Bob Heckel)
+syn match sasComment	"^\s*\*.*;" contains=sasTodo
+
+" Allow highlighting of embedded TODOs (Bob Heckel)
+syn match sasComment	";\s*\*.*;"hs=s+1 contains=sasTodo
+
+" Handle macro comments too (Bob Heckel).
+syn match sasComment	"^\s*%*\*.*;" contains=sasTodo
+
+" This line defines macro variables in code.  HiLink at end of file
+" defines the color scheme. Begin region with ampersand and end with
+" any non-word character offset by -1; put ampersand in the skip list
+" just in case it is used to concatenate macro variable values.
+
+" Thanks to ronald höllwarth for this fix to an intra-versioning
+" problem with this little feature
+
+if version < 600
+   syn region sasMacroVar	start="\&" skip="[_&]" end="\W"he=e-1
+else		 " for the older Vim's just do it their way ...
+   syn region sasMacroVar	start="&" skip="[_&]" end="\W"he=e-1
+endif
+
+
+" I dont think specific PROCs need to be listed if use this line (Bob Heckel).
+syn match sasProc		"^\s*PROC \w\+"
+syn keyword sasStep		RUN QUIT DATA
+
+
+" Base SAS Procs - version 8.1
+
+syn keyword sasConditional	DO ELSE END IF THEN UNTIL WHILE
+
+syn keyword sasStatement	ABORT ARRAY ATTRIB BY CALL CARDS CARDS4 CATNAME
+syn keyword sasStatement	CONTINUE DATALINES DATALINES4 DELETE DISPLAY
+syn keyword sasStatement	DM DROP ENDSAS ERROR FILE FILENAME FOOTNOTE
+syn keyword sasStatement	FORMAT GOTO INFILE INFORMAT INPUT KEEP
+syn keyword sasStatement	LABEL LEAVE LENGTH LIBNAME LINK LIST LOSTCARD
+syn keyword sasStatement	MERGE MISSING MODIFY OPTIONS OUTPUT PAGE
+syn keyword sasStatement	PUT REDIRECT REMOVE RENAME REPLACE RETAIN
+syn keyword sasStatement	RETURN SELECT SET SKIP STARTSAS STOP TITLE
+syn keyword sasStatement	UPDATE WAITSAS WHERE WINDOW X SYSTASK
+
+" Keywords that are used in Proc SQL
+" I left them as statements because SAS's enhanced editor highlights
+" them the same as normal statements used in data steps (Jim Kidd)
+
+syn keyword sasStatement	ADD AND ALTER AS CASCADE CHECK CREATE
+syn keyword sasStatement	DELETE DESCRIBE DISTINCT DROP FOREIGN
+syn keyword sasStatement	FROM GROUP HAVING INDEX INSERT INTO IN
+syn keyword sasStatement	KEY LIKE MESSAGE MODIFY MSGTYPE NOT
+syn keyword sasStatement	NULL ON OR ORDER PRIMARY REFERENCES
+syn keyword sasStatement	RESET RESTRICT SELECT SET TABLE
+syn keyword sasStatement	UNIQUE UPDATE VALIDATE VIEW WHERE
+
+
+syn match sasStatement	"FOOTNOTE\d" "TITLE\d"
+
+syn match sasMacro	"%BQUOTE" "%NRBQUOTE" "%CMPRES" "%QCMPRES"
+syn match sasMacro	"%COMPSTOR" "%DATATYP" "%DISPLAY" "%DO"
+syn match sasMacro	"%ELSE" "%END" "%EVAL" "%GLOBAL"
+syn match sasMacro	"%GOTO" "%IF" "%INDEX" "%INPUT"
+syn match sasMacro	"%KEYDEF" "%LABEL" "%LEFT" "%LENGTH"
+syn match sasMacro	"%LET" "%LOCAL" "%LOWCASE" "%MACRO"
+syn match sasMacro	"%MEND" "%NRBQUOTE" "%NRQUOTE" "%NRSTR"
+syn match sasMacro	"%PUT" "%QCMPRES" "%QLEFT" "%QLOWCASE"
+syn match sasMacro	"%QSCAN" "%QSUBSTR" "%QSYSFUNC" "%QTRIM"
+syn match sasMacro	"%QUOTE" "%QUPCASE" "%SCAN" "%STR"
+syn match sasMacro	"%SUBSTR" "%SUPERQ" "%SYSCALL" "%SYSEVALF"
+syn match sasMacro	"%SYSEXEC" "%SYSFUNC" "%SYSGET" "%SYSLPUT"
+syn match sasMacro	"%SYSPROD" "%SYSRC" "%SYSRPUT" "%THEN"
+syn match sasMacro	"%TO" "%TRIM" "%UNQUOTE" "%UNTIL"
+syn match sasMacro	"%UPCASE" "%VERIFY" "%WHILE" "%WINDOW"
+
+" SAS Functions
+
+syn keyword sasFunction	ABS ADDR AIRY ARCOS ARSIN ATAN ATTRC ATTRN
+syn keyword sasFunction	BAND BETAINV BLSHIFT BNOT BOR BRSHIFT BXOR
+syn keyword sasFunction	BYTE CDF CEIL CEXIST CINV CLOSE CNONCT COLLATE
+syn keyword sasFunction	COMPBL COMPOUND COMPRESS COS COSH CSS CUROBS
+syn keyword sasFunction	CV DACCDB DACCDBSL DACCSL DACCSYD DACCTAB
+syn keyword sasFunction	DAIRY DATE DATEJUL DATEPART DATETIME DAY
+syn keyword sasFunction	DCLOSE DEPDB DEPDBSL DEPDBSL DEPSL DEPSL
+syn keyword sasFunction	DEPSYD DEPSYD DEPTAB DEPTAB DEQUOTE DHMS
+syn keyword sasFunction	DIF DIGAMMA DIM DINFO DNUM DOPEN DOPTNAME
+syn keyword sasFunction	DOPTNUM DREAD DROPNOTE DSNAME ERF ERFC EXIST
+syn keyword sasFunction	EXP FAPPEND FCLOSE FCOL FDELETE FETCH FETCHOBS
+syn keyword sasFunction	FEXIST FGET FILEEXIST FILENAME FILEREF FINFO
+syn keyword sasFunction	FINV FIPNAME FIPNAMEL FIPSTATE FLOOR FNONCT
+syn keyword sasFunction	FNOTE FOPEN FOPTNAME FOPTNUM FPOINT FPOS
+syn keyword sasFunction	FPUT FREAD FREWIND FRLEN FSEP FUZZ FWRITE
+syn keyword sasFunction	GAMINV GAMMA GETOPTION GETVARC GETVARN HBOUND
+syn keyword sasFunction	HMS HOSTHELP HOUR IBESSEL INDEX INDEXC
+syn keyword sasFunction	INDEXW INPUT INPUTC INPUTN INT INTCK INTNX
+syn keyword sasFunction	INTRR IRR JBESSEL JULDATE KURTOSIS LAG LBOUND
+syn keyword sasFunction	LEFT LENGTH LGAMMA LIBNAME LIBREF LOG LOG10
+syn keyword sasFunction	LOG2 LOGPDF LOGPMF LOGSDF LOWCASE MAX MDY
+syn keyword sasFunction	MEAN MIN MINUTE MOD MONTH MOPEN MORT N
+syn keyword sasFunction	NETPV NMISS NORMAL NOTE NPV OPEN ORDINAL
+syn keyword sasFunction	PATHNAME PDF PEEK PEEKC PMF POINT POISSON POKE
+syn keyword sasFunction	PROBBETA PROBBNML PROBCHI PROBF PROBGAM
+syn keyword sasFunction	PROBHYPR PROBIT PROBNEGB PROBNORM PROBT PUT
+syn keyword sasFunction	PUTC PUTN QTR QUOTE RANBIN RANCAU RANEXP
+syn keyword sasFunction	RANGAM RANGE RANK RANNOR RANPOI RANTBL RANTRI
+syn keyword sasFunction	RANUNI REPEAT RESOLVE REVERSE REWIND RIGHT
+syn keyword sasFunction	ROUND SAVING SCAN SDF SECOND SIGN SIN SINH
+syn keyword sasFunction	SKEWNESS SOUNDEX SPEDIS SQRT STD STDERR STFIPS
+syn keyword sasFunction	STNAME STNAMEL SUBSTR SUM SYMGET SYSGET SYSMSG
+syn keyword sasFunction	SYSPROD SYSRC SYSTEM TAN TANH TIME TIMEPART
+syn keyword sasFunction	TINV TNONCT TODAY TRANSLATE TRANWRD TRIGAMMA
+syn keyword sasFunction	TRIM TRIMN TRUNC UNIFORM UPCASE USS VAR
+syn keyword sasFunction	VARFMT VARINFMT VARLABEL VARLEN VARNAME
+syn keyword sasFunction	VARNUM VARRAY VARRAYX VARTYPE VERIFY VFORMAT
+syn keyword sasFunction	VFORMATD VFORMATDX VFORMATN VFORMATNX VFORMATW
+syn keyword sasFunction	VFORMATWX VFORMATX VINARRAY VINARRAYX VINFORMAT
+syn keyword sasFunction	VINFORMATD VINFORMATDX VINFORMATN VINFORMATNX
+syn keyword sasFunction	VINFORMATW VINFORMATWX VINFORMATX VLABEL
+syn keyword sasFunction	VLABELX VLENGTH VLENGTHX VNAME VNAMEX VTYPE
+syn keyword sasFunction	VTYPEX WEEKDAY YEAR YYQ ZIPFIPS ZIPNAME ZIPNAMEL
+syn keyword sasFunction	ZIPSTATE
+
+" Handy settings for using vim with log files
+syn keyword sasLogMsg	NOTE
+syn keyword sasWarnMsg	WARNING
+syn keyword sasErrMsg	ERROR
+
+" Always contained in a comment (Bob Heckel)
+syn keyword sasTodo	TODO TBD FIXME contained
+
+" These don't fit anywhere else (Bob Heckel).
+syn match sasUnderscore	"_NULL_"
+syn match sasUnderscore	"_INFILE_"
+syn match sasUnderscore	"_N_"
+syn match sasUnderscore	"_WEBOUT_"
+syn match sasUnderscore	"_NUMERIC_"
+syn match sasUnderscore	"_CHARACTER_"
+syn match sasUnderscore	"_ALL_"
+
+" End of SAS Functions
+
+"  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 highlighting yet
+
+if version >= 508 || !exists("did_sas_syntax_inits")
+   if version < 508
+      let did_sas_syntax_inits = 1
+      command -nargs=+ HiLink hi link <args>
+   else
+      command -nargs=+ HiLink hi def link <args>
+   endif
+
+   " Default sas enhanced editor color syntax
+	hi sComment	term=bold cterm=NONE ctermfg=Green ctermbg=Black gui=NONE guifg=DarkGreen guibg=White
+	hi sCard	term=bold cterm=NONE ctermfg=Black ctermbg=Yellow gui=NONE guifg=Black guibg=LightYellow
+	hi sDate_Time	term=NONE cterm=bold ctermfg=Green ctermbg=Black gui=bold guifg=SeaGreen guibg=White
+	hi sKeyword	term=NONE cterm=NONE ctermfg=Blue  ctermbg=Black gui=NONE guifg=Blue guibg=White
+	hi sFmtInfmt	term=NONE cterm=NONE ctermfg=LightGreen ctermbg=Black gui=NONE guifg=SeaGreen guibg=White
+	hi sString	term=NONE cterm=NONE ctermfg=Magenta ctermbg=Black gui=NONE guifg=Purple guibg=White
+	hi sText	term=NONE cterm=NONE ctermfg=White ctermbg=Black gui=bold guifg=Black guibg=White
+	hi sNumber	term=NONE cterm=bold ctermfg=Green ctermbg=Black gui=bold guifg=SeaGreen guibg=White
+	hi sProc	term=NONE cterm=bold ctermfg=Blue ctermbg=Black gui=bold guifg=Navy guibg=White
+	hi sSection	term=NONE cterm=bold ctermfg=Blue ctermbg=Black gui=bold guifg=Navy guibg=White
+	hi mDefine	term=NONE cterm=bold ctermfg=White ctermbg=Black gui=bold guifg=Black guibg=White
+	hi mKeyword	term=NONE cterm=NONE ctermfg=Blue ctermbg=Black gui=NONE guifg=Blue guibg=White
+	hi mReference	term=NONE cterm=bold ctermfg=White ctermbg=Black gui=bold guifg=Blue guibg=White
+	hi mSection	term=NONE cterm=NONE ctermfg=Blue ctermbg=Black gui=bold guifg=Navy guibg=White
+	hi mText	term=NONE cterm=NONE ctermfg=White ctermbg=Black gui=bold guifg=Black guibg=White
+
+" Colors that closely match SAS log colors for default color scheme
+	hi lError	term=NONE cterm=NONE ctermfg=Red ctermbg=Black gui=none guifg=Red guibg=White
+	hi lWarning	term=NONE cterm=NONE ctermfg=Green ctermbg=Black gui=none guifg=Green guibg=White
+	hi lNote	term=NONE cterm=NONE ctermfg=Cyan ctermbg=Black gui=none guifg=Blue guibg=White
+
+
+   " Special hilighting for the SAS proc section
+
+	HiLink	sasComment	sComment
+	HiLink	sasConditional	sKeyword
+	HiLink	sasStep		sSection
+	HiLink	sasFunction	sKeyword
+	HiLink	sasMacro	mKeyword
+	HiLink	sasMacroVar	NonText
+	HiLink	sasNumber	sNumber
+	HiLink	sasStatement	sKeyword
+	HiLink	sasString	sString
+	HiLink	sasProc		sProc
+   " (Bob Heckel)
+	HiLink	sasTodo		Todo
+	HiLink	sasErrMsg	lError
+	HiLink	sasWarnMsg	lWarning
+	HiLink	sasLogMsg	lNote
+	HiLink	sasCards	sCard
+  " (Bob Heckel)
+	HiLink	sasUnderscore	PreProc
+	delcommand HiLink
+endif
+
+" Syncronize from beginning to keep large blocks from losing
+" syntax coloring while moving through code.
+syn sync fromstart
+
+let b:current_syntax = "sas"
+
+" vim: ts=8