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