home *** CD-ROM | disk | FTP | other *** search
- " Vim syntax file
- " Language: 4Dos batch file
- " Maintainer: John Leo Spetz <jls11@po.cwru.edu>
- " Last Change: 2001 May 09
-
- "//Issues to resolve:
- "//- Boolean operators surrounded by period are recognized but the
- "// periods are not highlighted. The only way to do that would
- "// be separate synmatches for each possibility otherwise a more
- "// general \.\i\+\. will highlight anything delimited by dots.
- "//- After unary operators like "defined" can assume token type.
- "// Should there be more of these?
-
- " 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 keyword btmStatement call off
- syn keyword btmConditional if iff endiff then else elseiff not errorlevel
- syn keyword btmConditional gt lt eq ne ge le
- syn match btmConditional transparent "\.\i\+\." contains=btmDotBoolOp
- syn keyword btmDotBoolOp contained and or xor
- syn match btmConditional "=="
- syn match btmConditional "!="
- syn keyword btmConditional defined errorlevel exist isalias
- syn keyword btmConditional isdir direxist isinternal islabel
- syn keyword btmRepeat for in do enddo
-
- syn keyword btmTodo contained TODO
-
- " String
- syn cluster btmVars contains=btmVariable,btmArgument,btmBIFMatch
- syn region btmString start=+"+ end=+"+ contains=@btmVars
- syn match btmNumber "\<\d\+\>"
-
- "syn match btmIdentifier "\<\h\w*\>"
-
- " If you don't like tabs
- "syn match btmShowTab "\t"
- "syn match btmShowTabc "\t"
- "syn match btmComment "^\ *rem.*$" contains=btmTodo,btmShowTabc
-
- " Some people use this as a comment line
- " In fact this is a Label
- "syn match btmComment "^\ *:\ \+.*$" contains=btmTodo
-
- syn match btmComment "^\ *rem.*$" contains=btmTodo
- syn match btmComment "^\ *::.*$" contains=btmTodo
-
- syn match btmLabelMark "^\ *:[0-9a-zA-Z_\-]\+\>"
- syn match btmLabelMark "goto [0-9a-zA-Z_\-]\+\>"lc=5
- syn match btmLabelMark "gosub [0-9a-zA-Z_\-]\+\>"lc=6
-
- " syn match btmCmdDivider ">[>&][>&]\="
- syn match btmCmdDivider ">[>&]*"
- syn match btmCmdDivider ">>&>"
- syn match btmCmdDivider "|&\="
- syn match btmCmdDivider "%+"
- syn match btmCmdDivider "\^"
-
- syn region btmEcho start="echo" skip="echo" matchgroup=btmCmdDivider end="%+" end="$" end="|&\=" end="\^" end=">[>&]*" contains=@btmEchos oneline
- syn cluster btmEchos contains=@btmVars,btmEchoCommand,btmEchoParam
- syn keyword btmEchoCommand contained echo echoerr echos echoserr
- syn keyword btmEchoParam contained on off
-
- " this is also a valid Label. I don't use it.
- "syn match btmLabelMark "^\ *:\ \+[0-9a-zA-Z_\-]\+\>"
-
- " //Environment variable can be expanded using notation %var in 4DOS
- syn match btmVariable "%[0-9a-z_\-]\+" contains=@btmSpecialVars
- " //Environment variable can be expanded using notation %var%
- syn match btmVariable "%[0-9a-z_\-]*%" contains=@btmSpecialVars
- " //The following are special variable in 4DOS
- syn match btmVariable "%[=#]" contains=@btmSpecialVars
- syn match btmVariable "%??\=" contains=@btmSpecialVars
- " //Environment variable can be expanded using notation %[var] in 4DOS
- syn match btmVariable "%\[[0-9a-z_\-]*\]"
- " //After some keywords next word should be an environment variable
- syn match btmVariable "defined\s\i\+"lc=8
- syn match btmVariable "set\s\i\+"lc=4
- " //Parameters to batchfiles take the format %<digit>
- syn match btmArgument "%\d\>"
- " //4DOS allows format %<digit>& meaning batchfile parameters digit and up
- syn match btmArgument "%\d\>&"
- " //Variable used by FOR loops sometimes use %%<letter> in batchfiles
- syn match btmArgument "%%\a\>"
-
- " //Show 4DOS built-in functions specially
- syn match btmBIFMatch "%@\w\+\["he=e-1 contains=btmBuiltInFunc
- syn keyword btmBuiltInFunc contained alias ascii attrib cdrom
- syn keyword btmBuiltInFunc contained char clip comma convert
- syn keyword btmBuiltInFunc contained date day dec descript
- syn keyword btmBuiltInFunc contained device diskfree disktotal
- syn keyword btmBuiltInFunc contained diskused dosmem dow dowi
- syn keyword btmBuiltInFunc contained doy ems eval exec execstr
- syn keyword btmBuiltInFunc contained expand ext extended
- syn keyword btmBuiltInFunc contained fileage fileclose filedate
- syn keyword btmBuiltInFunc contained filename fileopen fileread
- syn keyword btmBuiltInFunc contained files fileseek fileseekl
- syn keyword btmBuiltInFunc contained filesize filetime filewrite
- syn keyword btmBuiltInFunc contained filewriteb findclose
- syn keyword btmBuiltInFunc contained findfirst findnext format
- syn keyword btmBuiltInFunc contained full if inc index insert
- syn keyword btmBuiltInFunc contained instr int label left len
- syn keyword btmBuiltInFunc contained lfn line lines lower lpt
- syn keyword btmBuiltInFunc contained makeage makedate maketime
- syn keyword btmBuiltInFunc contained master month name numeric
- syn keyword btmBuiltInFunc contained path random readscr ready
- syn keyword btmBuiltInFunc contained remote removable repeat
- syn keyword btmBuiltInFunc contained replace right search
- syn keyword btmBuiltInFunc contained select sfn strip substr
- syn keyword btmBuiltInFunc contained time timer trim truename
- syn keyword btmBuiltInFunc contained unique upper wild word
- syn keyword btmBuiltInFunc contained words xms year
-
- syn cluster btmSpecialVars contains=btmBuiltInVar,btmSpecialVar
-
- " //Show specialized variables specially
- " syn match btmSpecialVar contained "+"
- syn match btmSpecialVar contained "="
- syn match btmSpecialVar contained "#"
- syn match btmSpecialVar contained "??\="
- syn keyword btmSpecialVar contained cmdline colordir comspec
- syn keyword btmSpecialVar contained copycmd dircmd temp temp4dos
- syn keyword btmSpecialVar contained filecompletion path prompt
-
- " //Show 4DOS built-in variables specially specially
- syn keyword btmBuiltInVar contained _4ver _alias _ansi
- syn keyword btmBuiltInVar contained _apbatt _aplife _apmac _batch
- syn keyword btmBuiltInVar contained _batchline _batchname _bg
- syn keyword btmBuiltInVar contained _boot _ci _cmdproc _co
- syn keyword btmBuiltInVar contained _codepage _column _columns
- syn keyword btmBuiltInVar contained _country _cpu _cwd _cwds _cwp
- syn keyword btmBuiltInVar contained _cwps _date _day _disk _dname
- syn keyword btmBuiltInVar contained _dos _dosver _dow _dowi _doy
- syn keyword btmBuiltInVar contained _dpmi _dv _env _fg _hlogfile
- syn keyword btmBuiltInVar contained _hour _kbhit _kstack _lastdisk
- syn keyword btmBuiltInVar contained _logfile _minute _monitor
- syn keyword btmBuiltInVar contained _month _mouse _ndp _row _rows
- syn keyword btmBuiltInVar contained _second _shell _swapping
- syn keyword btmBuiltInVar contained _syserr _time _transient
- syn keyword btmBuiltInVar contained _video _win _wintitle _year
-
- " //Commands in 4DOS and/or DOS
- syn match btmCommand "\s?"
- syn match btmCommand "^?"
- syn keyword btmCommand alias append assign attrib
- syn keyword btmCommand backup beep break cancel case
- syn keyword btmCommand cd cdd cdpath chcp chdir
- syn keyword btmCommand chkdsk cls color comp copy
- syn keyword btmCommand ctty date debug default defrag
- syn keyword btmCommand del delay describe dir
- syn keyword btmCommand dirhistory dirs diskcomp
- syn keyword btmCommand diskcopy doskey dosshell
- syn keyword btmCommand drawbox drawhline drawvline
- "syn keyword btmCommand echo echoerr echos echoserr
- syn keyword btmCommand edit edlin emm386 endlocal
- syn keyword btmCommand endswitch erase eset except
- syn keyword btmCommand exe2bin exit expand fastopen
- syn keyword btmCommand fc fdisk ffind find format
- syn keyword btmCommand free global gosub goto
- syn keyword btmCommand graftabl graphics help history
- syn keyword btmCommand inkey input join keyb keybd
- syn keyword btmCommand keystack label lh list loadbtm
- syn keyword btmCommand loadhigh lock log md mem
- syn keyword btmCommand memory mirror mkdir mode more
- syn keyword btmCommand move nlsfunc on option path
- syn keyword btmCommand pause popd print prompt pushd
- syn keyword btmCommand quit rd reboot recover ren
- syn keyword btmCommand rename replace restore return
- syn keyword btmCommand rmdir scandisk screen scrput
- syn keyword btmCommand select set setdos setlocal
- syn keyword btmCommand setver share shift sort subst
- syn keyword btmCommand swapping switch sys tee text
- syn keyword btmCommand time timer touch tree truename
- syn keyword btmCommand type unalias undelete unformat
- syn keyword btmCommand unlock unset ver verify vol
- syn keyword btmCommand vscrput y
-
- " 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_btm_syntax_inits")
- if version < 508
- let did_btm_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink btmLabel Special
- HiLink btmLabelMark Special
- HiLink btmCmdDivider Special
- HiLink btmConditional btmStatement
- HiLink btmDotBoolOp btmStatement
- HiLink btmRepeat btmStatement
- HiLink btmEchoCommand btmStatement
- HiLink btmEchoParam btmStatement
- HiLink btmStatement Statement
- HiLink btmTodo Todo
- HiLink btmString String
- HiLink btmNumber Number
- HiLink btmComment Comment
- HiLink btmArgument Identifier
- HiLink btmVariable Identifier
- HiLink btmEcho String
- HiLink btmBIFMatch btmStatement
- HiLink btmBuiltInFunc btmStatement
- HiLink btmBuiltInVar btmStatement
- HiLink btmSpecialVar btmStatement
- HiLink btmCommand btmStatement
-
- "optional highlighting
- "HiLink btmShowTab Error
- "HiLink btmShowTabc Error
- "hiLink btmIdentifier Identifier
-
- delcommand HiLink
- endif
-
- let b:current_syntax = "btm"
-
- " vim: ts=8
-