xref: /vim-8.2.3635/runtime/syntax/bc.vim (revision 89bcfda6)
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