1" Vim syntax file 2" Language: bc - An arbitrary precision calculator language 3" Maintainer: Vladimir Scholtz <[email protected]> 4" Last change: 2012 Jun 01 5" (Dominique Pelle added @Spell) 6" Available on: www.gjh.sk/~vlado/bc.vim 7 8" quit when a syntax file was already loaded 9if exists("b:current_syntax") 10 finish 11endif 12 13syn case ignore 14 15" Keywords 16syn keyword bcKeyword if else while for break continue return limits halt quit 17syn keyword bcKeyword define 18syn keyword bcKeyword length read sqrt print 19 20" Variable 21syn keyword bcType auto 22 23" Constant 24syn keyword bcConstant scale ibase obase last 25syn keyword bcConstant BC_BASE_MAX BC_DIM_MAX BC_SCALE_MAX BC_STRING_MAX 26syn keyword bcConstant BC_ENV_ARGS BC_LINE_LENGTH 27 28" Any other stuff 29syn match bcIdentifier "[a-z_][a-z0-9_]*" 30 31" String 32 syn match bcString "\"[^"]*\"" contains=@Spell 33 34" Number 35syn match bcNumber "[0-9]\+" 36 37" Comment 38syn match bcComment "\#.*" contains=@Spell 39syn region bcComment start="/\*" end="\*/" contains=@Spell 40 41" Parent () 42syn cluster bcAll contains=bcList,bcIdentifier,bcNumber,bcKeyword,bcType,bcConstant,bcString,bcParentError 43syn region bcList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@bcAll 44syn region bcList matchgroup=Delimiter start="\[" skip="|.\{-}|" matchgroup=Delimiter end="\]" contains=@bcAll 45syn match bcParenError "]" 46syn match bcParenError ")" 47 48 49 50syn case match 51 52" Define the default highlighting. 53" Only when an item doesn't have highlighting yet 54command -nargs=+ HiLink hi def link <args> 55 56HiLink bcKeyword Statement 57HiLink bcType Type 58HiLink bcConstant Constant 59HiLink bcNumber Number 60HiLink bcComment Comment 61HiLink bcString String 62HiLink bcSpecialChar SpecialChar 63HiLink bcParenError Error 64 65delcommand HiLink 66 67let b:current_syntax = "bc" 68" vim: ts=8 69