annotate runtime/syntax/b.vim @ 1524:50e0337c25ca v7.1.239

updated for version 7.1-239
author vimboss
date Tue, 22 Jan 2008 11:44:47 +0000
parents e63691e7c504
children 73fe8baea242
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim syntax file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Language: B (A Formal Method with refinement and mathematical proof)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 " Maintainer: Mathieu Clabaut <mathieu.clabaut@free.fr>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 " LastChange: 25 Apr 2001
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 " For version 5.x: Clear all syntax items
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 " For version 6.x: Quit when a syntax file was already loaded
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 if version < 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 syntax clear
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 elseif exists("b:current_syntax")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 " A bunch of useful B keywords
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 syn keyword bStatement MACHINE SEES OPERATIONS INCLUDES DEFINITIONS CONSTRAINTS CONSTANTS VARIABLES CONCRETE_CONSTANTS CONCRETE_VARIABLES ABSTRACT_CONSTANTS ABSTRACT_VARIABLES HIDDEN_CONSTANTS HIDDEN_VARIABLES ASSERT ASSERTIONS EXTENDS IMPLEMENTATION REFINEMENT IMPORTS USES INITIALISATION INVARIANT PROMOTES PROPERTIES REFINES SETS VALUES VARIANT VISIBLE_CONSTANTS VISIBLE_VARIABLES THEORY
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 syn keyword bLabel CASE IN EITHER OR CHOICE DO OF
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 syn keyword bConditional IF ELSE SELECT ELSIF THEN WHEN
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 syn keyword bRepeat WHILE FOR
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 syn keyword bOps bool card conc closure closure1 dom first fnc front not or id inter iseq iseq1 iterate last max min mod perm pred prj1 prj2 ran rel rev seq seq1 size skip succ tail union
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 syn keyword bKeywords LET VAR BE IN BEGIN END POW POW1 FIN FIN1 PRE SIGMA STRING UNION IS ANY WHERE
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 syn match bKeywords "||"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 syn keyword bBoolean TRUE FALSE bfalse btrue
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 syn keyword bConstant PI MAXINT MININT User_Pass PatchProver PatchProverH0 PatchProverB0 FLAT ARI DED SUB RES
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 syn keyword bGuard binhyp band bnot bguard bsearch bflat bfresh bguardi bget bgethyp barith bgetresult bresult bgoal bmatch bmodr bnewv bnum btest bpattern bprintf bwritef bsubfrm bvrb blvar bcall bappend bclose
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 syn keyword bLogic or not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 syn match bLogic "\&\|=>\|<=>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 syn keyword cTodo contained TODO FIXME XXX
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 " String and Character constants
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 " Highlight special characters (those which have a backslash) differently
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 syn match bSpecial contained "\\[0-7][0-7][0-7]\=\|\\."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 syn region bString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=bSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 syn match bCharacter "'[^\\]'"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 syn match bSpecialCharacter "'\\.'"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 syn match bSpecialCharacter "'\\[0-7][0-7]'"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 syn match bSpecialCharacter "'\\[0-7][0-7][0-7]'"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 "catch errors caused by wrong parenthesis
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 syn region bParen transparent start='(' end=')' contains=ALLBUT,bParenError,bIncluded,bSpecial,bTodo,bUserLabel,bBitField
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 syn match bParenError ")"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 syn match bInParen contained "[{}]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 "integer number, or floating point number without a dot and with "f".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 syn case ignore
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 syn match bNumber "\<[0-9]\+\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 "syn match bIdentifier "\<[a-z_][a-z0-9_]*\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 syn case match
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 if exists("b_comment_strings")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 " A comment can contain bString, bCharacter and bNumber.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 " But a "*/" inside a bString in a bComment DOES end the comment! So we
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 " need to use a special type of bString: bCommentString, which also ends on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 " "*/", and sees a "*" at the start of the line as comment again.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 " Unfortunately this doesn't very well work for // type of comments :-(
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 syntax match bCommentSkip contained "^\s*\*\($\|\s\+\)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 syntax region bCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=bSpecial,bCommentSkip
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 syntax region bComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=bSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 syntax region bComment start="/\*" end="\*/" contains=bTodo,bCommentString,bCharacter,bNumber,bFloat
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 syntax region bComment start="/\?\*" end="\*\?/" contains=bTodo,bCommentString,bCharacter,bNumber,bFloat
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 syntax match bComment "//.*" contains=bTodo,bComment2String,bCharacter,bNumber
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 syn region bComment start="/\*" end="\*/" contains=bTodo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 syn region bComment start="/\?\*" end="\*\?/" contains=bTodo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 syn match bComment "//.*" contains=bTodo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 syntax match bCommentError "\*/"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 syn keyword bType INT INTEGER BOOL NAT NATURAL NAT1 NATURAL1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 syn region bPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=bComment,bString,bCharacter,bNumber,bCommentError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 syn region bIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 syn match bIncluded contained "<[^>]*>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 syn match bInclude "^\s*#\s*include\>\s*["<]" contains=bIncluded
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 syn region bDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,bPreCondit,bIncluded,bInclude,bDefine,bInParen
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 syn region bPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,bPreCondit,bIncluded,bInclude,bDefine,bInParen
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 syn sync ccomment bComment minlines=10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 " Define the default highlighting.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 " For version 5.7 and earlier: only when not done already
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 " For version 5.8 and later: only when an item doesn't have highlighting yet
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 if version >= 508 || !exists("did_b_syntax_inits")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 if version < 508
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 let did_b_syntax_inits = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 command -nargs=+ HiLink hi link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95 command -nargs=+ HiLink hi def link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 " The default methods for highlighting. Can be overridden later
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 HiLink bLabel Label
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 HiLink bUserLabel Label
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 HiLink bConditional Conditional
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 HiLink bRepeat Repeat
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 HiLink bLogic Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 HiLink bCharacter Character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 HiLink bSpecialCharacter bSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 HiLink bNumber Number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 HiLink bFloat Float
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 HiLink bOctalError bError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 HiLink bParenError bError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 " HiLink bInParen bError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 HiLink bCommentError bError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 HiLink bBoolean Identifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 HiLink bConstant Identifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 HiLink bGuard Identifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 HiLink bOperator Operator
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 HiLink bKeywords Operator
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 HiLink bOps Identifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 HiLink bStructure Structure
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119 HiLink bStorageClass StorageClass
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 HiLink bInclude Include
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 HiLink bPreProc PreProc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 HiLink bDefine Macro
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 HiLink bIncluded bString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 HiLink bError Error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 HiLink bStatement Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 HiLink bPreCondit PreCondit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 HiLink bType Type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 HiLink bCommentError bError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 HiLink bCommentString bString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 HiLink bComment2String bString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 HiLink bCommentSkip bComment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 HiLink bString String
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 HiLink bComment Comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 HiLink bSpecial SpecialChar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 HiLink bTodo Todo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 "hi link bIdentifier Identifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 delcommand HiLink
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 7
diff changeset
140 let b:current_syntax = "b"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 " vim: ts=8