blob: bf4a62afc91c3a29674f2ad46f3ca342cd9196b8 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: bc - An arbitrary precision calculator language
3" Maintainer: Vladimir Scholtz <vlado@gjh.sk>
Bram Moolenaarc8734422012-06-01 22:38:45 +02004" Last change: 2012 Jun 01
5" (Dominique Pelle added @Spell)
Bram Moolenaar071d4272004-06-13 20:20:40 +00006" Available on: www.gjh.sk/~vlado/bc.vim
7
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02008" quit when a syntax file was already loaded
9if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000010 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
Bram Moolenaarc8734422012-06-01 22:38:45 +020032 syn match bcString "\"[^"]*\"" contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000033
34" Number
35syn match bcNumber "[0-9]\+"
36
37" Comment
Bram Moolenaarc8734422012-06-01 22:38:45 +020038syn match bcComment "\#.*" contains=@Spell
39syn region bcComment start="/\*" end="\*/" contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000040
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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020053" Only when an item doesn't have highlighting yet
54command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000055
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020056HiLink bcKeyword Statement
57HiLink bcType Type
58HiLink bcConstant Constant
59HiLink bcNumber Number
60HiLink bcComment Comment
61HiLink bcString String
62HiLink bcSpecialChar SpecialChar
63HiLink bcParenError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000064
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020065delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000066
67let b:current_syntax = "bc"
68" vim: ts=8