blob: 4cd9d6388a1e62474bd9234bdbb7d367a69440bc [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
Bram Moolenaar071d4272004-06-13 20:20:40 +000054
Bram Moolenaarf37506f2016-08-31 22:22:10 +020055hi def link bcKeyword Statement
56hi def link bcType Type
57hi def link bcConstant Constant
58hi def link bcNumber Number
59hi def link bcComment Comment
60hi def link bcString String
61hi def link bcSpecialChar SpecialChar
62hi def link bcParenError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000063
Bram Moolenaar071d4272004-06-13 20:20:40 +000064
65let b:current_syntax = "bc"
66" vim: ts=8