" Vim syntax file " Language: SAS command files (.sas) " Maintainer: Kent Nassen (knassen@umich.edu) " Last Change: 2003 February 21 " Creation: 1997 October 24 syntax clear syntax case ignore " Not really necessary? "syntax sync lines=500 "syntax sync minlines=100 " Missing are such SAS modules as AF, FSP, ETS, IML QC, and QR, as well " as any highlighting of SAS formats/informats. Some of the commands " here may be specific to SAS in a Unix environment " SAS Language keywords syntax keyword sasKeyword data syntax keyword sasKeyword abend abort after analysis array attrib syntax keyword sasKeyword before bell blank break by call cards cards4 syntax keyword sasKeyword close define delete display dm do drop syntax keyword sasKeyword end endsas error file filename go to syntax keyword sasKeyword format headline headskip id if infile syntax keyword sasKeyword informat keep label length link syntax keyword sasKeyword list listing lostcard merge missing syntax keyword sasKeyword noinput nowd ods output over page put syntax keyword sasKeyword quit rbreak rename retain return run syntax keyword sasKeyword run select set skip split stop until syntax keyword sasKeyword update where while window x symput syntax keyword sasKeyword symget create table view join insert syntax keyword sasKeyword into values from separated "syntax keyword sasKeyword nextgroup=sasComment " Misc. subcommands syntax keyword sasSubcommands value max var position tables missing syntax keyword sasSubcommands default list _all_ _infile_ overprint syntax keyword sasSubcommands _page_ _break_ cancel when otherwise syntax keyword sasSubcommands point nobs color icolumn irow keys menu syntax keyword sasSubcommands rows group order attr blink hi rev_video syntax keyword sasSubcommands underine autoskip auto pdf rtf txt persist syntax keyword sasSubcommands protect required _cmd_ _msg_ flow spacing syntax keyword sasSubcommands style just justify width suppress " These are SAS System Options + misc. option subcommands syntax keyword sasOptions options option syntax keyword sasOptions altlog altprint autoexec batch best bufno syntax keyword sasOptions bufsize caps cardimage catcache center syntax keyword sasOptions charcode chinese cleanup comamid compress syntax keyword sasOptions config date dbcs dbcslang dbcstype dec syntax keyword sasOptions device dg dmr dms dsnferr echoauto engine syntax keyword sasOptions errorabend errors euc facom filelocks syntax keyword sasOptions firstobs fmterr formchar formdlim forms syntax keyword sasOptions fsdevice fsimm fullstimer gwindow hitac syntax keyword sasOptions host hp15 ibm implmac initstmt invaliddata syntax keyword sasOptions japanese label korean _last_ linesize lmode syntax keyword sasOptions lptype log macro mautosource maps merror syntax keyword sasOptions missing mlogic mprint mrecall msgcase syntax keyword sasOptions msglevel news nocaps nocardimage nocenter syntax keyword sasOptions nocharcode nocleanup nodate nodbcs nodmr syntax keyword sasOptions nodms nodsnferr noechoauto noerrorabend syntax keyword sasOptions nofmterr nofullstimer nogwindow noimplmac syntax keyword sasOptions nolabel nomacro nomautosource nomerror syntax keyword sasOptions nomlogic nomprint nomrecall nonotes syntax keyword sasOptions nonumber nooplist notes noovp noreplace syntax keyword sasOptions noserror nosetinit nosource nosource2 syntax keyword sasOptions nospool nostdio nostimer nosymbolgen syntax keyword sasOptions noterminal noverbose novnferr noworkinit syntax keyword sasOptions noworkterm noxwait number obs oplist ovp syntax keyword sasOptions pageno pagesize parm parmcards pcibm prime syntax keyword sasOptions print probsig procleave remote replace syntax keyword sasOptions reuse s= sas sasautos sashelp sasmsg syntax keyword sasOptions sasuser seq serror setinit siteinfo sjis syntax keyword sasOptions sortpgm sortsize source source2 spool stdio syntax keyword sasOptions stimer symbolgen sysin sysleave sysparm syntax keyword sasOptions sysprint s2 taiwanese tapeclose terminal syntax keyword sasOptions unknown user validvarname verbose vnferr syntax keyword sasOptions work workinit workterm yearcutoff xwait " SAS Data Step Options syntax keyword sasDataOptions bufno bufsize cntllev compress drop syntax keyword sasDataOptions fileclose firstobs in keep label obs syntax keyword sasDataOptions rename replace reuse _type_ type mem syntax keyword sasDataOptions rec disp leave reread rewind " These are Base SAS procs syntax keyword sasProcs proc append calendar catalog chart cimport syntax keyword sasProcs compare contents copy corr cport datasets syntax keyword sasProcs format forms freq means plot pmenu print syntax keyword sasProcs printto rank report sort spell sql standard syntax keyword sasProcs summary tabulate timeplot transpose syntax keyword sasProcs univariate v5tov6 " These are the Stat procs syntax keyword sasProcs aceclus anova calis cancorr candisc catmod syntax keyword sasProcs cluster corresp discrim factor fastclus syntax keyword sasProcs freq glm lifereg lifetest loess logistic syntax keyword sasProcs nested nlin npar1way orthoreg plan princomp syntax keyword sasProcs prinqual probit reg rsreg score stepdisc syntax keyword sasProcs transreg tree ttest varclus varcomp " SAS Functions syntax keyword sasFunctions abs arcos arsin atan betainv byte ceil syntax keyword sasFunctions cinv collate compound compress cos cosh syntax keyword sasFunctions css cv daccdb daccdbsl daccsl daccsyd syntax keyword sasFunctions dacctab date datejul datepart datetime day syntax keyword sasFunctions depdb depdbsl depsl depsyd deptab dhms syntax keyword sasFunctions dif digamma dim erf erfc exp finv fipname syntax keyword sasFunctions fipnamel fipstate floor fuzz gaminv gamma syntax keyword sasFunctions hbound hms hour index indexc input int syntax keyword sasFunctions intck intnx intrr irr juldate kurtosis lag syntax keyword sasFunctions lbound left length lgamma log log10 log2 syntax keyword sasFunctions max mdy mean min minute mod month mort n syntax keyword sasFunctions netpv ordinal poisson probbeta probbnml syntax keyword sasFunctions probchi probf probgam probhypr probit syntax keyword sasFunctions probnegb probnorm probt put qtr ranbin syntax keyword sasFunctions rancau ranexp rangam range rank rannor syntax keyword sasFunctions ranpoi rantbl rantri ranuni repeat reverse syntax keyword sasFunctions right round saving scan second sign sin syntax keyword sasFunctions sinh skewness sqrt std stderr stfips stname syntax keyword sasFunctions stnamel substr sum symget tan tanh time syntax keyword sasFunctions timepart tinv today translate trigamma trim syntax keyword sasFunctions trunc uniform upcase uss var verify weekday syntax keyword sasFunctions year yyq zipfips zipname zipnamel zipstate " SAS file-related keywords syntax keyword sasFiles log blksize column col dropover syntax keyword sasFiles filevar flowover header line _null_ syntax keyword sasFiles linesize ls linesleft ll lrecl mod syntax keyword sasFiles pagesize ps notitle notitles old pad syntax keyword sasFiles nopad noprint recfm stopover clear syntax keyword sasFiles printer plotter terminal dummy source2 syntax keyword sasFiles s2 delimiter dlm eof eov expandtabs syntax keyword sasFiles noexpandtabs firstobs missover obs recfm syntax keyword sasFiles sharebuffers sharebufs start unbuffered syntax keyword sasFiles unbuf syntax match sasFiles "n\=" " Special Characters, Comparisons, and Numbers syntax keyword sasSysmis ".[A-Z]*" syntax keyword sasDelim ";" syntax keyword sasOperators eq ne gt ge lt le yes no not as and or inap syntax keyword sasOperators if then else syntax match sasLogic "\&\||" syntax match sasLogic2 "\^\~\=\>\|\|\<\>\=\<" syntax match sasInput "@" syntax match sasNumber "-\=\<\d*\.\=[0-9_]\>" " Need to match hexadecimal numbers, too (next three lines are one line) "syntax match sasNumber "[A-Z0-9]*\|[A-Z0-9]*[_\.][A-Z0-9]*\|[_\.]*[A-Z]*[0-9]*[\.]\|_[0-9]* "[\.]\|:[ 0-9]*[\.]\|[0-9]_[0-9]" contains=ALLBUT,sasKeyword "syntax match sasMChar "%" syntax region sasMacroCall start="%[^\*]" end="\h\w*" syntax match sasTitle "title" syntax match sasTitle "title\d" syntax match sasFootnote "footnote\d" syntax match sasError "ERROR:" syntax match sasWarning "WARNING:" syntax match sasNote "NOTE:" " SAS Macro stuff syntax keyword sasMacroVars sysbuffr syscmd sysdate sysday sysdevic syntax keyword sasMacroVars sysdsn sysenv syserr sysindex sysinfo syntax keyword sasMacroVars sysjobid syslast sysmenv sysmsg sysparm syntax keyword sasMacroVars syspbuff sysrc sysscp systime sysver syntax match sasMacroVars2 '%let' syntax match sasMacroVars2 '%cms' syntax match sasMacroVars2 '%display' syntax match sasMacroVars2 '%do' syntax match sasMacroVars2 '%until' syntax match sasMacroVars2 '%while' syntax match sasMacroVars2 '%end' syntax region sasMacroVars2 start="%global" end=";" syntax match sasMacroVars2 '%go' syntax match sasMacroVars2 '%goto' syntax match sasMacroVars2 '%if' syntax match sasMacroVars2 '%then' syntax match sasMacroVars2 '%else' syntax match sasMacroVars2 '%input' syntax match sasMacroVars2 '%keydef' syntax region sasMacroVars2 start="%local" end=";" syntax region sasMacroVars2 start="%macro" end="\<\h\w*" syntax region sasMacroVars2 start="%mend" end="\<\h\w*" syntax match sasMacroVars2 '%put' syntax match sasMacroVars2 '%sysexec' syntax match sasMacroVars2 '%tso' syntax match sasMacroVars2 '%window' syntax match sasMacroVars2 '%include' syntax match sasMacroVars2 '%list' syntax match sasMacroVars2 '%run' syntax match sasMacroFunctions '%bquote' syntax match sasMacroFunctions '%eval' syntax match sasMacroFunctions '%index' syntax match sasMacroFunctions '%length' syntax match sasMacroFunctions '%nrbquote' syntax match sasMacroFunctions '%nrstr' syntax match sasMacroFunctions '%quote' syntax match sasMacroFunctions '%qscan' syntax match sasMacroFunctions '%qsubstr' syntax match sasMacroFunctions '%qupcase' syntax match sasMacroFunctions '%scan' syntax match sasMacroFunctions '%str' syntax match sasMacroFunctions '%substr' syntax match sasMacroFunctions '%superq' syntax match sasMacroFunctions '%unquote' syntax match sasMacroFunctions '%upcase' syntax match sasMacroFunctions '%cmpres' syntax match sasMacroFunctions '%datatyp' syntax match sasMacroFunctions '%left' syntax match sasMacroFunctions '%qcmpres' syntax match sasMacroFunctions '%qleft' syntax match sasMacroFunctions '%qtrim' syntax match sasMacroFunctions '%trim' syntax match sasMacroFunctions '%verify' syntax match sasMacroFunctions '%sysfunc' syntax match sasMacroFunctions '%syslput' " Comments and Strings syntax region sasComment start="/\*" end="\*/" syntax region sasComment start="%\*" end=";" "he=e-1" syntax match sasComment "^\s*\*.*;" syntax region sasString start=+"+ skip=+\\\\\|\\"+ end=+"+ syntax region sasString start=+'+ skip=+\\\\\|\\"+ end=+'+ " libname should highlight the keyword 'libname' and also the libname " itself (the next word or words after 'libname") but not any strings. syntax region sasKeyword start="libname" end=";" contains=sasString syn region sasKeyword start="data" end="\h\w*" syn region sasMacroVar start="&" end="\h\w*" syn match sasVar "[(, ][\w_]\w\s*=" " Available: Comment, Statement, Function, PreProc, NonText, Number, " String, ErrorMsg WarningMsg, MoreMsg hi link sasComment Comment hi link sasError Error hi link sasDataOptions Statement hi link sasFiles Statement hi link sasFunctions Statement hi link sasInput Number hi link sasKeyword Statement hi link sasMacroFunctions Statement hi link sasMacroName Error hi link sasMacroVar Function hi link sasMacroVars Statement hi link sasMChar Error hi link sasNumber Number hi link sasNumber2 Number hi link sasOptions Statement hi link sasProcs Statement hi link sasSubcommands Statement hi link sasTitle Statement hi link sasFootnote Statement hi link sasError Error hi link sasWarning Error hi link sasNote Statement " These are specific to this highlighting file hi sasLogic cterm=NONE ctermfg=3 gui=NONE guifg=orange hi sasLogic2 cterm=NONE ctermfg=3 gui=NONE guifg=Goldenrod hi sasSysmis cterm=NONE ctermfg=1 gui=NONE guifg=LightSkyBlue hi sasString cterm=NONE ctermfg=5 gui=NONE guifg=PowderBlue hi sasSysmis cterm=NONE ctermfg=3 gui=NONE guifg=gold "hi sasDelim cterm=NONE ctermfg=4 gui=NONE guifg=violet hi sasMacroVars2 cterm=NONE ctermfg=4 gui=NONE guifg=orange hi sasMacroCall cterm=NONE ctermfg=4 gui=bold guifg=orange hi sasMacroFunctions cterm=NONE ctermfg=4 gui=NONE guifg=orange hi sasVar cterm=NONE ctermfg=4 gui=NONE guifg=blue hi sasOperators cterm=NONE ctermfg=4 gui=NONE guifg=orchid let b:current_syntax = "sas"