Mercurial > vim
annotate runtime/syntax/csp.vim @ 21084:0768e80dc778
Added tag v8.2.1093 for changeset cc4914752841d409767d6c95c4486df49b748d46
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 29 Jun 2020 23:15:05 +0200 |
parents | 46763b01cd9a |
children |
rev | line source |
---|---|
7 | 1 " Vim syntax file |
2 " Language: CSP (Communication Sequential Processes, using FDR input syntax) | |
3 " Maintainer: Jan Bredereke <brederek@tzi.de> | |
4 " Version: 0.6.0 | |
5 " Last change: Mon Mar 25, 2002 | |
6 " URL: http://www.tzi.de/~brederek/vim/ | |
7 " Copying: You may distribute and use this file freely, in the same | |
8 " way as the vim editor itself. | |
9 " | |
10 " To Do: - Probably I missed some keywords or operators, please | |
11 " fix them and notify me, the maintainer. | |
12 " - Currently, we do lexical highlighting only. It would be | |
13 " nice to have more actual syntax checks, including | |
14 " highlighting of wrong syntax. | |
15 " - The additional syntax for the RT-Tester (pseudo-comments) | |
16 " should be optional. | |
17 | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
18 " quit when a syntax file was already loaded |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
19 if exists("b:current_syntax") |
7 | 20 finish |
21 endif | |
22 | |
23 " case is significant to FDR: | |
24 syn case match | |
25 | |
26 " Block comments in CSP are between {- and -} | |
27 syn region cspComment start="{-" end="-}" contains=cspTodo | |
28 " Single-line comments start with -- | |
29 syn region cspComment start="--" end="$" contains=cspTodo,cspOldRttComment,cspSdlRttComment keepend | |
30 | |
31 " Numbers: | |
32 syn match cspNumber "\<\d\+\>" | |
33 | |
34 " Conditionals: | |
35 syn keyword cspConditional if then else | |
36 | |
37 " Operators on processes: | |
38 " -> ? : ! ' ; /\ \ [] |~| [> & [[..<-..]] ||| [|..|] || [..<->..] ; : @ ||| | |
39 syn match cspOperator "->" | |
40 syn match cspOperator "/\\" | |
41 syn match cspOperator "[^/]\\"lc=1 | |
42 syn match cspOperator "\[\]" | |
43 syn match cspOperator "|\~|" | |
44 syn match cspOperator "\[>" | |
45 syn match cspOperator "\[\[" | |
46 syn match cspOperator "\]\]" | |
47 syn match cspOperator "<-" | |
48 syn match cspOperator "|||" | |
49 syn match cspOperator "[^|]||[^|]"lc=1,me=e-1 | |
50 syn match cspOperator "[^|{\~]|[^|}\~]"lc=1,me=e-1 | |
51 syn match cspOperator "\[|" | |
52 syn match cspOperator "|\]" | |
53 syn match cspOperator "\[[^>]"me=e-1 | |
54 syn match cspOperator "\]" | |
55 syn match cspOperator "<->" | |
56 syn match cspOperator "[?:!';@]" | |
57 syn match cspOperator "&" | |
58 syn match cspOperator "\." | |
59 | |
60 " (not on processes:) | |
61 " syn match cspDelimiter "{|" | |
62 " syn match cspDelimiter "|}" | |
63 " syn match cspDelimiter "{[^-|]"me=e-1 | |
64 " syn match cspDelimiter "[^-|]}"lc=1 | |
65 | |
66 " Keywords: | |
67 syn keyword cspKeyword length null head tail concat elem | |
68 syn keyword cspKeyword union inter diff Union Inter member card | |
69 syn keyword cspKeyword empty set Set Seq | |
70 syn keyword cspKeyword true false and or not within let | |
71 syn keyword cspKeyword nametype datatype diamond normal | |
72 syn keyword cspKeyword sbisim tau_loop_factor model_compress | |
73 syn keyword cspKeyword explicate | |
74 syn match cspKeyword "transparent" | |
75 syn keyword cspKeyword external chase prioritize | |
76 syn keyword cspKeyword channel Events | |
77 syn keyword cspKeyword extensions productions | |
78 syn keyword cspKeyword Bool Int | |
79 | |
80 " Reserved keywords: | |
81 syn keyword cspReserved attribute embed module subtype | |
82 | |
83 " Include: | |
84 syn region cspInclude matchgroup=cspIncludeKeyword start="^include" end="$" keepend contains=cspIncludeArg | |
85 syn region cspIncludeArg start='\s\+\"' end= '\"\s*' contained | |
86 | |
87 " Assertions: | |
88 syn keyword cspAssert assert deterministic divergence free deadlock | |
89 syn keyword cspAssert livelock | |
90 syn match cspAssert "\[T=" | |
91 syn match cspAssert "\[F=" | |
92 syn match cspAssert "\[FD=" | |
93 syn match cspAssert "\[FD\]" | |
94 syn match cspAssert "\[F\]" | |
95 | |
96 " Types and Sets | |
97 " (first char a capital, later at least one lower case, no trailing underscore): | |
98 syn match cspType "\<_*[A-Z][A-Z_0-9]*[a-z]\(\|[A-Za-z_0-9]*[A-Za-z0-9]\)\>" | |
99 | |
100 " Processes (all upper case, no trailing underscore): | |
101 " (For identifiers that could be types or sets, too, this second rule set | |
102 " wins.) | |
103 syn match cspProcess "\<[A-Z_][A-Z_0-9]*[A-Z0-9]\>" | |
104 syn match cspProcess "\<[A-Z_]\>" | |
105 | |
106 " reserved identifiers for tool output (ending in underscore): | |
107 syn match cspReservedIdentifier "\<[A-Za-z_][A-Za-z_0-9]*_\>" | |
108 | |
109 " ToDo markers: | |
110 syn match cspTodo "FIXME" contained | |
111 syn match cspTodo "TODO" contained | |
112 syn match cspTodo "!!!" contained | |
113 | |
114 " RT-Tester pseudo comments: | |
115 " (The now obsolete syntax:) | |
116 syn match cspOldRttComment "^--\$\$AM_UNDEF"lc=2 contained | |
117 syn match cspOldRttComment "^--\$\$AM_ERROR"lc=2 contained | |
118 syn match cspOldRttComment "^--\$\$AM_WARNING"lc=2 contained | |
119 syn match cspOldRttComment "^--\$\$AM_SET_TIMER"lc=2 contained | |
120 syn match cspOldRttComment "^--\$\$AM_RESET_TIMER"lc=2 contained | |
121 syn match cspOldRttComment "^--\$\$AM_ELAPSED_TIMER"lc=2 contained | |
122 syn match cspOldRttComment "^--\$\$AM_OUTPUT"lc=2 contained | |
123 syn match cspOldRttComment "^--\$\$AM_INPUT"lc=2 contained | |
124 " (The current syntax:) | |
125 syn region cspRttPragma matchgroup=cspRttPragmaKeyword start="^pragma\s\+" end="\s*$" oneline keepend contains=cspRttPragmaArg,cspRttPragmaSdl | |
126 syn keyword cspRttPragmaArg AM_ERROR AM_WARNING AM_SET_TIMER contained | |
127 syn keyword cspRttPragmaArg AM_RESET_TIMER AM_ELAPSED_TIMER contained | |
128 syn keyword cspRttPragmaArg AM_OUTPUT AM_INPUT AM_INTERNAL contained | |
129 " the "SDL_MATCH" extension: | |
130 syn region cspRttPragmaSdl matchgroup=cspRttPragmaKeyword start="SDL_MATCH\s\+" end="\s*$" contains=cspRttPragmaSdlArg contained | |
131 syn keyword cspRttPragmaSdlArg TRANSLATE nextgroup=cspRttPragmaSdlTransName contained | |
132 syn keyword cspRttPragmaSdlArg PARAM SKIP OPTIONAL CHOICE ARRAY nextgroup=cspRttPragmaSdlName contained | |
133 syn match cspRttPragmaSdlName "\s*\S\+\s*" nextgroup=cspRttPragmaSdlTail contained | |
134 syn region cspRttPragmaSdlTail start="" end="\s*$" contains=cspRttPragmaSdlTailArg contained | |
135 syn keyword cspRttPragmaSdlTailArg SUBSET_USED DEFAULT_VALUE Present contained | |
136 syn match cspRttPragmaSdlTransName "\s*\w\+\s*" nextgroup=cspRttPragmaSdlTransTail contained | |
137 syn region cspRttPragmaSdlTransTail start="" end="\s*$" contains=cspRttPragmaSdlTransTailArg contained | |
138 syn keyword cspRttPragmaSdlTransTailArg sizeof contained | |
139 syn match cspRttPragmaSdlTransTailArg "\*" contained | |
140 syn match cspRttPragmaSdlTransTailArg "(" contained | |
141 syn match cspRttPragmaSdlTransTailArg ")" contained | |
142 | |
143 " temporary syntax extension for commented-out "pragma SDL_MATCH": | |
144 syn match cspSdlRttComment "pragma\s\+SDL_MATCH\s\+" nextgroup=cspRttPragmaSdlArg contained | |
145 | |
146 syn sync lines=250 | |
147 | |
148 " Define the default highlighting. | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
149 " Only when an item doesn't have highlighting yet |
7 | 150 |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
151 " The default methods for highlighting. Can be overridden later |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
152 " (For vim version <=5.7, the command groups are defined in |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
153 " $VIMRUNTIME/syntax/synload.vim ) |
10051
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
154 hi def link cspComment Comment |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
155 hi def link cspNumber Number |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
156 hi def link cspConditional Conditional |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
157 hi def link cspOperator Delimiter |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
158 hi def link cspKeyword Keyword |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
159 hi def link cspReserved SpecialChar |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
160 hi def link cspInclude Error |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
161 hi def link cspIncludeKeyword Include |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
162 hi def link cspIncludeArg Include |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
163 hi def link cspAssert PreCondit |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
164 hi def link cspType Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
165 hi def link cspProcess Function |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
166 hi def link cspTodo Todo |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
167 hi def link cspOldRttComment Define |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
168 hi def link cspRttPragmaKeyword Define |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
169 hi def link cspSdlRttComment Define |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
170 hi def link cspRttPragmaArg Define |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
171 hi def link cspRttPragmaSdlArg Define |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
172 hi def link cspRttPragmaSdlName Default |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
173 hi def link cspRttPragmaSdlTailArg Define |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
174 hi def link cspRttPragmaSdlTransName Default |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
175 hi def link cspRttPragmaSdlTransTailArg Define |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
176 hi def link cspReservedIdentifier Error |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
177 " (Currently unused vim method: Debug) |
7 | 178 |
179 | |
180 let b:current_syntax = "csp" | |
181 | |
182 " vim: ts=8 |