1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: bc - An arbitrary precision calculator language 3071d4279SBram Moolenaar" Maintainer: Vladimir Scholtz <[email protected]> 4c873442bSBram Moolenaar" Last change: 2012 Jun 01 5c873442bSBram Moolenaar" (Dominique Pelle added @Spell) 6071d4279SBram Moolenaar" Available on: www.gjh.sk/~vlado/bc.vim 7071d4279SBram Moolenaar 889bcfda6SBram Moolenaar" quit when a syntax file was already loaded 989bcfda6SBram Moolenaarif exists("b:current_syntax") 10071d4279SBram Moolenaar finish 11071d4279SBram Moolenaarendif 12071d4279SBram Moolenaar 13071d4279SBram Moolenaarsyn case ignore 14071d4279SBram Moolenaar 15071d4279SBram Moolenaar" Keywords 16071d4279SBram Moolenaarsyn keyword bcKeyword if else while for break continue return limits halt quit 17071d4279SBram Moolenaarsyn keyword bcKeyword define 18071d4279SBram Moolenaarsyn keyword bcKeyword length read sqrt print 19071d4279SBram Moolenaar 20071d4279SBram Moolenaar" Variable 21071d4279SBram Moolenaarsyn keyword bcType auto 22071d4279SBram Moolenaar 23071d4279SBram Moolenaar" Constant 24071d4279SBram Moolenaarsyn keyword bcConstant scale ibase obase last 25071d4279SBram Moolenaarsyn keyword bcConstant BC_BASE_MAX BC_DIM_MAX BC_SCALE_MAX BC_STRING_MAX 26071d4279SBram Moolenaarsyn keyword bcConstant BC_ENV_ARGS BC_LINE_LENGTH 27071d4279SBram Moolenaar 28071d4279SBram Moolenaar" Any other stuff 29071d4279SBram Moolenaarsyn match bcIdentifier "[a-z_][a-z0-9_]*" 30071d4279SBram Moolenaar 31071d4279SBram Moolenaar" String 32c873442bSBram Moolenaar syn match bcString "\"[^"]*\"" contains=@Spell 33071d4279SBram Moolenaar 34071d4279SBram Moolenaar" Number 35071d4279SBram Moolenaarsyn match bcNumber "[0-9]\+" 36071d4279SBram Moolenaar 37071d4279SBram Moolenaar" Comment 38c873442bSBram Moolenaarsyn match bcComment "\#.*" contains=@Spell 39c873442bSBram Moolenaarsyn region bcComment start="/\*" end="\*/" contains=@Spell 40071d4279SBram Moolenaar 41071d4279SBram Moolenaar" Parent () 42071d4279SBram Moolenaarsyn cluster bcAll contains=bcList,bcIdentifier,bcNumber,bcKeyword,bcType,bcConstant,bcString,bcParentError 43071d4279SBram Moolenaarsyn region bcList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@bcAll 44071d4279SBram Moolenaarsyn region bcList matchgroup=Delimiter start="\[" skip="|.\{-}|" matchgroup=Delimiter end="\]" contains=@bcAll 45071d4279SBram Moolenaarsyn match bcParenError "]" 46071d4279SBram Moolenaarsyn match bcParenError ")" 47071d4279SBram Moolenaar 48071d4279SBram Moolenaar 49071d4279SBram Moolenaar 50071d4279SBram Moolenaarsyn case match 51071d4279SBram Moolenaar 52071d4279SBram Moolenaar" Define the default highlighting. 5389bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 54071d4279SBram Moolenaar 55*f37506f6SBram Moolenaarhi def link bcKeyword Statement 56*f37506f6SBram Moolenaarhi def link bcType Type 57*f37506f6SBram Moolenaarhi def link bcConstant Constant 58*f37506f6SBram Moolenaarhi def link bcNumber Number 59*f37506f6SBram Moolenaarhi def link bcComment Comment 60*f37506f6SBram Moolenaarhi def link bcString String 61*f37506f6SBram Moolenaarhi def link bcSpecialChar SpecialChar 62*f37506f6SBram Moolenaarhi def link bcParenError Error 63071d4279SBram Moolenaar 64071d4279SBram Moolenaar 65071d4279SBram Moolenaarlet b:current_syntax = "bc" 66071d4279SBram Moolenaar" vim: ts=8 67