blob: 6457803a06e9bc62643d258efd2433802142e569 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: RPL/2
3" Version: 0.15.15 against RPL/2 version 4.00pre7i
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +01004" Last Change: 2012 Feb 03 by Thilo Six
Bram Moolenaar071d4272004-06-13 20:20:40 +00005" Maintainer: Joël BERTRAND <rpl2@free.fr>
6" URL: http://www.makalis.fr/~bertrand/rpl2/download/vim/indent/rpl.vim
7" Credits: Nothing
8
9" For version 5.x: Clear all syntax items
10" For version 6.x: Quit when a syntax file was already loaded
11if version < 600
12 syntax clear
13elseif exists("b:current_syntax")
14 finish
15endif
16
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +010017let s:cpo_save = &cpo
18set cpo&vim
19
Bram Moolenaar071d4272004-06-13 20:20:40 +000020" Keyword characters (not used)
21" set iskeyword=33-127
22
23" Case sensitive
24syntax case match
25
26" Constants
27syntax match rplConstant "\(^\|\s\+\)\(e\|i\)\ze\($\|\s\+\)"
28
29" Any binary number
30syntax match rplBinaryError "\(^\|\s\+\)#\s*\S\+b\ze"
31syntax match rplBinary "\(^\|\s\+\)#\s*[01]\+b\ze\($\|\s\+\)"
32syntax match rplOctalError "\(^\|\s\+\)#\s*\S\+o\ze"
33syntax match rplOctal "\(^\|\s\+\)#\s*\o\+o\ze\($\|\s\+\)"
34syntax match rplDecimalError "\(^\|\s\+\)#\s*\S\+d\ze"
35syntax match rplDecimal "\(^\|\s\+\)#\s*\d\+d\ze\($\|\s\+\)"
36syntax match rplHexadecimalError "\(^\|\s\+\)#\s*\S\+h\ze"
37syntax match rplHexadecimal "\(^\|\s\+\)#\s*\x\+h\ze\($\|\s\+\)"
38
39" Case unsensitive
40syntax case ignore
41
42syntax match rplControl "\(^\|\s\+\)abort\ze\($\|\s\+\)"
43syntax match rplControl "\(^\|\s\+\)kill\ze\($\|\s\+\)"
44syntax match rplControl "\(^\|\s\+\)cont\ze\($\|\s\+\)"
45syntax match rplControl "\(^\|\s\+\)halt\ze\($\|\s\+\)"
46syntax match rplControl "\(^\|\s\+\)cmlf\ze\($\|\s\+\)"
47syntax match rplControl "\(^\|\s\+\)sst\ze\($\|\s\+\)"
48
49syntax match rplConstant "\(^\|\s\+\)pi\ze\($\|\s\+\)"
50
51syntax match rplStatement "\(^\|\s\+\)return\ze\($\|\s\+\)"
52syntax match rplStatement "\(^\|\s\+\)last\ze\($\|\s\+\)"
53syntax match rplStatement "\(^\|\s\+\)syzeval\ze\($\|\s\+\)"
54syntax match rplStatement "\(^\|\s\+\)wait\ze\($\|\s\+\)"
55syntax match rplStatement "\(^\|\s\+\)type\ze\($\|\s\+\)"
56syntax match rplStatement "\(^\|\s\+\)kind\ze\($\|\s\+\)"
57syntax match rplStatement "\(^\|\s\+\)eval\ze\($\|\s\+\)"
58syntax match rplStatement "\(^\|\s\+\)use\ze\($\|\s\+\)"
59syntax match rplStatement "\(^\|\s\+\)remove\ze\($\|\s\+\)"
60syntax match rplStatement "\(^\|\s\+\)external\ze\($\|\s\+\)"
61syntax match rplStatement "\(^\|\s\+\)dup\([2n]\|\)\ze\($\|\s\+\)"
62syntax match rplStatement "\(^\|\s\+\)drop\([2n]\|\)\ze\($\|\s\+\)"
63syntax match rplStatement "\(^\|\s\+\)depth\ze\($\|\s\+\)"
64syntax match rplStatement "\(^\|\s\+\)roll\(d\|\)\ze\($\|\s\+\)"
65syntax match rplStatement "\(^\|\s\+\)pick\ze\($\|\s\+\)"
66syntax match rplStatement "\(^\|\s\+\)rot\ze\($\|\s\+\)"
67syntax match rplStatement "\(^\|\s\+\)swap\ze\($\|\s\+\)"
68syntax match rplStatement "\(^\|\s\+\)over\ze\($\|\s\+\)"
69syntax match rplStatement "\(^\|\s\+\)clear\ze\($\|\s\+\)"
70syntax match rplStatement "\(^\|\s\+\)warranty\ze\($\|\s\+\)"
71syntax match rplStatement "\(^\|\s\+\)copyright\ze\($\|\s\+\)"
72syntax match rplStatement "\(^\|\s\+\)convert\ze\($\|\s\+\)"
73syntax match rplStatement "\(^\|\s\+\)date\ze\($\|\s\+\)"
74syntax match rplStatement "\(^\|\s\+\)time\ze\($\|\s\+\)"
75syntax match rplStatement "\(^\|\s\+\)mem\ze\($\|\s\+\)"
76syntax match rplStatement "\(^\|\s\+\)clmf\ze\($\|\s\+\)"
77syntax match rplStatement "\(^\|\s\+\)->num\ze\($\|\s\+\)"
78syntax match rplStatement "\(^\|\s\+\)help\ze\($\|\s\+\)"
79
80syntax match rplStorage "\(^\|\s\+\)get\(i\|r\|c\|\)\ze\($\|\s\+\)"
81syntax match rplStorage "\(^\|\s\+\)put\(i\|r\|c\|\)\ze\($\|\s\+\)"
82syntax match rplStorage "\(^\|\s\+\)rcl\ze\($\|\s\+\)"
83syntax match rplStorage "\(^\|\s\+\)purge\ze\($\|\s\+\)"
84syntax match rplStorage "\(^\|\s\+\)sinv\ze\($\|\s\+\)"
85syntax match rplStorage "\(^\|\s\+\)sneg\ze\($\|\s\+\)"
86syntax match rplStorage "\(^\|\s\+\)sconj\ze\($\|\s\+\)"
87syntax match rplStorage "\(^\|\s\+\)steq\ze\($\|\s\+\)"
88syntax match rplStorage "\(^\|\s\+\)rceq\ze\($\|\s\+\)"
89syntax match rplStorage "\(^\|\s\+\)vars\ze\($\|\s\+\)"
90syntax match rplStorage "\(^\|\s\+\)clusr\ze\($\|\s\+\)"
91syntax match rplStorage "\(^\|\s\+\)sto\([+-/\*]\|\)\ze\($\|\s\+\)"
92
93syntax match rplAlgConditional "\(^\|\s\+\)ift\(e\|\)\ze\($\|\s\+\)"
94
95syntax match rplOperator "\(^\|\s\+\)and\ze\($\|\s\+\)"
96syntax match rplOperator "\(^\|\s\+\)\(x\|\)or\ze\($\|\s\+\)"
97syntax match rplOperator "\(^\|\s\+\)not\ze\($\|\s\+\)"
98syntax match rplOperator "\(^\|\s\+\)same\ze\($\|\s\+\)"
99syntax match rplOperator "\(^\|\s\+\)==\ze\($\|\s\+\)"
100syntax match rplOperator "\(^\|\s\+\)<=\ze\($\|\s\+\)"
101syntax match rplOperator "\(^\|\s\+\)=<\ze\($\|\s\+\)"
102syntax match rplOperator "\(^\|\s\+\)=>\ze\($\|\s\+\)"
103syntax match rplOperator "\(^\|\s\+\)>=\ze\($\|\s\+\)"
104syntax match rplOperator "\(^\|\s\+\)<>\ze\($\|\s\+\)"
105syntax match rplOperator "\(^\|\s\+\)>\ze\($\|\s\+\)"
106syntax match rplOperator "\(^\|\s\+\)<\ze\($\|\s\+\)"
107syntax match rplOperator "\(^\|\s\+\)[+-]\ze\($\|\s\+\)"
108syntax match rplOperator "\(^\|\s\+\)[/\*]\ze\($\|\s\+\)"
109syntax match rplOperator "\(^\|\s\+\)\^\ze\($\|\s\+\)"
110syntax match rplOperator "\(^\|\s\+\)\*\*\ze\($\|\s\+\)"
111
112syntax match rplBoolean "\(^\|\s\+\)true\ze\($\|\s\+\)"
113syntax match rplBoolean "\(^\|\s\+\)false\ze\($\|\s\+\)"
114
115syntax match rplReadWrite "\(^\|\s\+\)store\ze\($\|\s\+\)"
116syntax match rplReadWrite "\(^\|\s\+\)recall\ze\($\|\s\+\)"
117syntax match rplReadWrite "\(^\|\s\+\)\(\|wf\|un\)lock\ze\($\|\s\+\)"
118syntax match rplReadWrite "\(^\|\s\+\)open\ze\($\|\s\+\)"
119syntax match rplReadWrite "\(^\|\s\+\)close\ze\($\|\s\+\)"
120syntax match rplReadWrite "\(^\|\s\+\)delete\ze\($\|\s\+\)"
121syntax match rplReadWrite "\(^\|\s\+\)create\ze\($\|\s\+\)"
122syntax match rplReadWrite "\(^\|\s\+\)format\ze\($\|\s\+\)"
123syntax match rplReadWrite "\(^\|\s\+\)rewind\ze\($\|\s\+\)"
124syntax match rplReadWrite "\(^\|\s\+\)backspace\ze\($\|\s\+\)"
125syntax match rplReadWrite "\(^\|\s\+\)\(\|re\)write\ze\($\|\s\+\)"
126syntax match rplReadWrite "\(^\|\s\+\)read\ze\($\|\s\+\)"
127syntax match rplReadWrite "\(^\|\s\+\)inquire\ze\($\|\s\+\)"
128syntax match rplReadWrite "\(^\|\s\+\)sync\ze\($\|\s\+\)"
129syntax match rplReadWrite "\(^\|\s\+\)append\ze\($\|\s\+\)"
130syntax match rplReadWrite "\(^\|\s\+\)suppress\ze\($\|\s\+\)"
131syntax match rplReadWrite "\(^\|\s\+\)seek\ze\($\|\s\+\)"
132syntax match rplReadWrite "\(^\|\s\+\)pr\(1\|int\|st\|stc\|lcd\|var\|usr\|md\)\ze\($\|\s\+\)"
133syntax match rplReadWrite "\(^\|\s\+\)paper\ze\($\|\s\+\)"
134syntax match rplReadWrite "\(^\|\s\+\)cr\($\|\s\+\)"
135syntax match rplReadWrite "\(^\|\s\+\)erase\ze\($\|\s\+\)"
136syntax match rplReadWrite "\(^\|\s\+\)disp\ze\($\|\s\+\)"
137syntax match rplReadWrite "\(^\|\s\+\)input\ze\($\|\s\+\)"
138syntax match rplReadWrite "\(^\|\s\+\)prompt\ze\($\|\s\+\)"
139syntax match rplReadWrite "\(^\|\s\+\)key\ze\($\|\s\+\)"
140syntax match rplReadWrite "\(^\|\s\+\)cllcd\ze\($\|\s\+\)"
141syntax match rplReadWrite "\(^\|\s\+\)\(\|re\)draw\ze\($\|\s\+\)"
142syntax match rplReadWrite "\(^\|\s\+\)drax\ze\($\|\s\+\)"
143syntax match rplReadWrite "\(^\|\s\+\)indep\ze\($\|\s\+\)"
144syntax match rplReadWrite "\(^\|\s\+\)depnd\ze\($\|\s\+\)"
145syntax match rplReadWrite "\(^\|\s\+\)res\ze\($\|\s\+\)"
146syntax match rplReadWrite "\(^\|\s\+\)axes\ze\($\|\s\+\)"
147syntax match rplReadWrite "\(^\|\s\+\)label\ze\($\|\s\+\)"
148syntax match rplReadWrite "\(^\|\s\+\)pmin\ze\($\|\s\+\)"
149syntax match rplReadWrite "\(^\|\s\+\)pmax\ze\($\|\s\+\)"
150syntax match rplReadWrite "\(^\|\s\+\)centr\ze\($\|\s\+\)"
151syntax match rplReadWrite "\(^\|\s\+\)persist\ze\($\|\s\+\)"
152syntax match rplReadWrite "\(^\|\s\+\)title\ze\($\|\s\+\)"
153syntax match rplReadWrite "\(^\|\s\+\)\(slice\|auto\|log\|\)scale\ze\($\|\s\+\)"
154syntax match rplReadWrite "\(^\|\s\+\)eyept\ze\($\|\s\+\)"
155syntax match rplReadWrite "\(^\|\s\+\)\(p\|s\)par\ze\($\|\s\+\)"
156syntax match rplReadWrite "\(^\|\s\+\)function\ze\($\|\s\+\)"
157syntax match rplReadWrite "\(^\|\s\+\)polar\ze\($\|\s\+\)"
158syntax match rplReadWrite "\(^\|\s\+\)scatter\ze\($\|\s\+\)"
159syntax match rplReadWrite "\(^\|\s\+\)plotter\ze\($\|\s\+\)"
160syntax match rplReadWrite "\(^\|\s\+\)wireframe\ze\($\|\s\+\)"
161syntax match rplReadWrite "\(^\|\s\+\)parametric\ze\($\|\s\+\)"
162syntax match rplReadWrite "\(^\|\s\+\)slice\ze\($\|\s\+\)"
163syntax match rplReadWrite "\(^\|\s\+\)\*w\ze\($\|\s\+\)"
164syntax match rplReadWrite "\(^\|\s\+\)\*h\ze\($\|\s\+\)"
165syntax match rplReadWrite "\(^\|\s\+\)\*d\ze\($\|\s\+\)"
166syntax match rplReadWrite "\(^\|\s\+\)\*s\ze\($\|\s\+\)"
167syntax match rplReadWrite "\(^\|\s\+\)->lcd\ze\($\|\s\+\)"
168syntax match rplReadWrite "\(^\|\s\+\)lcd->\ze\($\|\s\+\)"
169syntax match rplReadWrite "\(^\|\s\+\)edit\ze\($\|\s\+\)"
170syntax match rplReadWrite "\(^\|\s\+\)visit\ze\($\|\s\+\)"
171
172syntax match rplIntrinsic "\(^\|\s\+\)abs\ze\($\|\s\+\)"
173syntax match rplIntrinsic "\(^\|\s\+\)arg\ze\($\|\s\+\)"
174syntax match rplIntrinsic "\(^\|\s\+\)conj\ze\($\|\s\+\)"
175syntax match rplIntrinsic "\(^\|\s\+\)re\ze\($\|\s\+\)"
176syntax match rplIntrinsic "\(^\|\s\+\)im\ze\($\|\s\+\)"
177syntax match rplIntrinsic "\(^\|\s\+\)mant\ze\($\|\s\+\)"
178syntax match rplIntrinsic "\(^\|\s\+\)xpon\ze\($\|\s\+\)"
179syntax match rplIntrinsic "\(^\|\s\+\)ceil\ze\($\|\s\+\)"
180syntax match rplIntrinsic "\(^\|\s\+\)fact\ze\($\|\s\+\)"
181syntax match rplIntrinsic "\(^\|\s\+\)fp\ze\($\|\s\+\)"
182syntax match rplIntrinsic "\(^\|\s\+\)floor\ze\($\|\s\+\)"
183syntax match rplIntrinsic "\(^\|\s\+\)inv\ze\($\|\s\+\)"
184syntax match rplIntrinsic "\(^\|\s\+\)ip\ze\($\|\s\+\)"
185syntax match rplIntrinsic "\(^\|\s\+\)max\ze\($\|\s\+\)"
186syntax match rplIntrinsic "\(^\|\s\+\)min\ze\($\|\s\+\)"
187syntax match rplIntrinsic "\(^\|\s\+\)mod\ze\($\|\s\+\)"
188syntax match rplIntrinsic "\(^\|\s\+\)neg\ze\($\|\s\+\)"
189syntax match rplIntrinsic "\(^\|\s\+\)relax\ze\($\|\s\+\)"
190syntax match rplIntrinsic "\(^\|\s\+\)sign\ze\($\|\s\+\)"
191syntax match rplIntrinsic "\(^\|\s\+\)sq\(\|rt\)\ze\($\|\s\+\)"
192syntax match rplIntrinsic "\(^\|\s\+\)xroot\ze\($\|\s\+\)"
193syntax match rplIntrinsic "\(^\|\s\+\)cos\ze\($\|\s\+\)"
194syntax match rplIntrinsic "\(^\|\s\+\)sin\ze\($\|\s\+\)"
195syntax match rplIntrinsic "\(^\|\s\+\)tan\ze\($\|\s\+\)"
196syntax match rplIntrinsic "\(^\|\s\+\)tg\ze\($\|\s\+\)"
197syntax match rplIntrinsic "\(^\|\s\+\)a\(\|rc\)cos\ze\($\|\s\+\)"
198syntax match rplIntrinsic "\(^\|\s\+\)a\(\|rc\)sin\ze\($\|\s\+\)"
199syntax match rplIntrinsic "\(^\|\s\+\)atan\ze\($\|\s\+\)"
200syntax match rplIntrinsic "\(^\|\s\+\)arctg\ze\($\|\s\+\)"
201syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)cosh\ze\($\|\s\+\)"
202syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)sinh\ze\($\|\s\+\)"
203syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)tanh\ze\($\|\s\+\)"
204syntax match rplIntrinsic "\(^\|\s\+\)\(\|arg\)th\ze\($\|\s\+\)"
205syntax match rplIntrinsic "\(^\|\s\+\)arg[cst]h\ze\($\|\s\+\)"
206syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)log\ze\($\|\s\+\)"
207syntax match rplIntrinsic "\(^\|\s\+\)ln\(\|1\)\ze\($\|\s\+\)"
208syntax match rplIntrinsic "\(^\|\s\+\)exp\(\|m\)\ze\($\|\s\+\)"
209syntax match rplIntrinsic "\(^\|\s\+\)trn\ze\($\|\s\+\)"
210syntax match rplIntrinsic "\(^\|\s\+\)con\ze\($\|\s\+\)"
211syntax match rplIntrinsic "\(^\|\s\+\)idn\ze\($\|\s\+\)"
212syntax match rplIntrinsic "\(^\|\s\+\)rdm\ze\($\|\s\+\)"
213syntax match rplIntrinsic "\(^\|\s\+\)rsd\ze\($\|\s\+\)"
214syntax match rplIntrinsic "\(^\|\s\+\)cnrm\ze\($\|\s\+\)"
215syntax match rplIntrinsic "\(^\|\s\+\)cross\ze\($\|\s\+\)"
216syntax match rplIntrinsic "\(^\|\s\+\)d[eo]t\ze\($\|\s\+\)"
217syntax match rplIntrinsic "\(^\|\s\+\)[cr]swp\ze\($\|\s\+\)"
218syntax match rplIntrinsic "\(^\|\s\+\)rci\(j\|\)\ze\($\|\s\+\)"
219syntax match rplIntrinsic "\(^\|\s\+\)\(in\|de\)cr\ze\($\|\s\+\)"
220syntax match rplIntrinsic "\(^\|\s\+\)bessel\ze\($\|\s\+\)"
221
222syntax match rplIntrinsic "\(^\|\s\+\)\(\|g\)egvl\ze\($\|\s\+\)"
223syntax match rplIntrinsic "\(^\|\s\+\)\(\|g\)\(\|l\|r\)egv\ze\($\|\s\+\)"
224syntax match rplIntrinsic "\(^\|\s\+\)rnrm\ze\($\|\s\+\)"
225syntax match rplIntrinsic "\(^\|\s\+\)\(std\|fix\|sci\|eng\)\ze\($\|\s\+\)"
226syntax match rplIntrinsic "\(^\|\s\+\)\(rad\|deg\)\ze\($\|\s\+\)"
227syntax match rplIntrinsic "\(^\|\s\+\)\(\|n\)rand\ze\($\|\s\+\)"
228syntax match rplIntrinsic "\(^\|\s\+\)rdz\ze\($\|\s\+\)"
229syntax match rplIntrinsic "\(^\|\s\+\)\(\|i\)fft\ze\($\|\s\+\)"
230syntax match rplIntrinsic "\(^\|\s\+\)\(dec\|bin\|oct\|hex\)\ze\($\|\s\+\)"
231syntax match rplIntrinsic "\(^\|\s\+\)rclf\ze\($\|\s\+\)"
232syntax match rplIntrinsic "\(^\|\s\+\)stof\ze\($\|\s\+\)"
233syntax match rplIntrinsic "\(^\|\s\+\)[cs]f\ze\($\|\s\+\)"
234syntax match rplIntrinsic "\(^\|\s\+\)chr\ze\($\|\s\+\)"
235syntax match rplIntrinsic "\(^\|\s\+\)num\ze\($\|\s\+\)"
236syntax match rplIntrinsic "\(^\|\s\+\)pos\ze\($\|\s\+\)"
237syntax match rplIntrinsic "\(^\|\s\+\)sub\ze\($\|\s\+\)"
238syntax match rplIntrinsic "\(^\|\s\+\)size\ze\($\|\s\+\)"
239syntax match rplIntrinsic "\(^\|\s\+\)\(st\|rc\)ws\ze\($\|\s\+\)"
240syntax match rplIntrinsic "\(^\|\s\+\)\(r\|s\)\(r\|l\)\(\|b\)\ze\($\|\s\+\)"
241syntax match rplIntrinsic "\(^\|\s\+\)as\(r\|l\)\ze\($\|\s\+\)"
242syntax match rplIntrinsic "\(^\|\s\+\)\(int\|der\)\ze\($\|\s\+\)"
243syntax match rplIntrinsic "\(^\|\s\+\)stos\ze\($\|\s\+\)"
244syntax match rplIntrinsic "\(^\|\s\+\)\(\|r\)cls\ze\($\|\s\+\)"
245syntax match rplIntrinsic "\(^\|\s\+\)drws\ze\($\|\s\+\)"
246syntax match rplIntrinsic "\(^\|\s\+\)scls\ze\($\|\s\+\)"
247syntax match rplIntrinsic "\(^\|\s\+\)ns\ze\($\|\s\+\)"
248syntax match rplIntrinsic "\(^\|\s\+\)tot\ze\($\|\s\+\)"
249syntax match rplIntrinsic "\(^\|\s\+\)mean\ze\($\|\s\+\)"
250syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)sdev\ze\($\|\s\+\)"
251syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)var\ze\($\|\s\+\)"
252syntax match rplIntrinsic "\(^\|\s\+\)maxs\ze\($\|\s\+\)"
253syntax match rplIntrinsic "\(^\|\s\+\)mins\ze\($\|\s\+\)"
254syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)cov\ze\($\|\s\+\)"
255syntax match rplIntrinsic "\(^\|\s\+\)cols\ze\($\|\s\+\)"
256syntax match rplIntrinsic "\(^\|\s\+\)s\(x\(\|y\|2\)\|y\(\|2\)\)\ze\($\|\s\+\)"
257syntax match rplIntrinsic "\(^\|\s\+\)\(x\|y\)col\ze\($\|\s\+\)"
258syntax match rplIntrinsic "\(^\|\s\+\)corr\ze\($\|\s\+\)"
259syntax match rplIntrinsic "\(^\|\s\+\)utp[cfnt]\ze\($\|\s\+\)"
260syntax match rplIntrinsic "\(^\|\s\+\)comb\ze\($\|\s\+\)"
261syntax match rplIntrinsic "\(^\|\s\+\)perm\ze\($\|\s\+\)"
262syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)lu\ze\($\|\s\+\)"
263syntax match rplIntrinsic "\(^\|\s\+\)[lu]chol\ze\($\|\s\+\)"
264syntax match rplIntrinsic "\(^\|\s\+\)schur\ze\($\|\s\+\)"
265syntax match rplIntrinsic "\(^\|\s\+\)%\ze\($\|\s\+\)"
266syntax match rplIntrinsic "\(^\|\s\+\)%ch\ze\($\|\s\+\)"
267syntax match rplIntrinsic "\(^\|\s\+\)%t\ze\($\|\s\+\)"
268syntax match rplIntrinsic "\(^\|\s\+\)hms->\ze\($\|\s\+\)"
269syntax match rplIntrinsic "\(^\|\s\+\)->hms\ze\($\|\s\+\)"
270syntax match rplIntrinsic "\(^\|\s\+\)hms+\ze\($\|\s\+\)"
271syntax match rplIntrinsic "\(^\|\s\+\)hms-\ze\($\|\s\+\)"
272syntax match rplIntrinsic "\(^\|\s\+\)d->r\ze\($\|\s\+\)"
273syntax match rplIntrinsic "\(^\|\s\+\)r->d\ze\($\|\s\+\)"
274syntax match rplIntrinsic "\(^\|\s\+\)b->r\ze\($\|\s\+\)"
275syntax match rplIntrinsic "\(^\|\s\+\)r->b\ze\($\|\s\+\)"
276syntax match rplIntrinsic "\(^\|\s\+\)c->r\ze\($\|\s\+\)"
277syntax match rplIntrinsic "\(^\|\s\+\)r->c\ze\($\|\s\+\)"
278syntax match rplIntrinsic "\(^\|\s\+\)r->p\ze\($\|\s\+\)"
279syntax match rplIntrinsic "\(^\|\s\+\)p->r\ze\($\|\s\+\)"
280syntax match rplIntrinsic "\(^\|\s\+\)str->\ze\($\|\s\+\)"
281syntax match rplIntrinsic "\(^\|\s\+\)->str\ze\($\|\s\+\)"
282syntax match rplIntrinsic "\(^\|\s\+\)array->\ze\($\|\s\+\)"
283syntax match rplIntrinsic "\(^\|\s\+\)->array\ze\($\|\s\+\)"
284syntax match rplIntrinsic "\(^\|\s\+\)list->\ze\($\|\s\+\)"
285syntax match rplIntrinsic "\(^\|\s\+\)->list\ze\($\|\s\+\)"
286syntax match rplIntrinsic "\(^\|\s\+\)s+\ze\($\|\s\+\)"
287syntax match rplIntrinsic "\(^\|\s\+\)s-\ze\($\|\s\+\)"
288syntax match rplIntrinsic "\(^\|\s\+\)col-\ze\($\|\s\+\)"
289syntax match rplIntrinsic "\(^\|\s\+\)col+\ze\($\|\s\+\)"
290syntax match rplIntrinsic "\(^\|\s\+\)row-\ze\($\|\s\+\)"
291syntax match rplIntrinsic "\(^\|\s\+\)row+\ze\($\|\s\+\)"
292syntax match rplIntrinsic "\(^\|\s\+\)->q\ze\($\|\s\+\)"
293
294syntax match rplObsolete "\(^\|\s\+\)arry->\ze\($\|\s\+\)"hs=e-5
295syntax match rplObsolete "\(^\|\s\+\)->arry\ze\($\|\s\+\)"hs=e-5
296
297" Conditional structures
298syntax match rplConditionalError "\(^\|\s\+\)case\ze\($\|\s\+\)"hs=e-3
299syntax match rplConditionalError "\(^\|\s\+\)then\ze\($\|\s\+\)"hs=e-3
300syntax match rplConditionalError "\(^\|\s\+\)else\ze\($\|\s\+\)"hs=e-3
301syntax match rplConditionalError "\(^\|\s\+\)elseif\ze\($\|\s\+\)"hs=e-5
302syntax match rplConditionalError "\(^\|\s\+\)end\ze\($\|\s\+\)"hs=e-2
303syntax match rplConditionalError "\(^\|\s\+\)\(step\|next\)\ze\($\|\s\+\)"hs=e-3
304syntax match rplConditionalError "\(^\|\s\+\)until\ze\($\|\s\+\)"hs=e-4
305syntax match rplConditionalError "\(^\|\s\+\)repeat\ze\($\|\s\+\)"hs=e-5
306syntax match rplConditionalError "\(^\|\s\+\)default\ze\($\|\s\+\)"hs=e-6
307
308" FOR/(CYCLE)/(EXIT)/NEXT
309" FOR/(CYCLE)/(EXIT)/STEP
310" START/(CYCLE)/(EXIT)/NEXT
311" START/(CYCLE)/(EXIT)/STEP
312syntax match rplCycle "\(^\|\s\+\)\(cycle\|exit\)\ze\($\|\s\+\)"
313syntax region rplForNext matchgroup=rplRepeat start="\(^\|\s\+\)\(for\|start\)\ze\($\|\s\+\)" end="\(^\|\s\+\)\(next\|step\)\ze\($\|\s\+\)" contains=ALL keepend extend
314
315" ELSEIF/END
316syntax region rplElseifEnd matchgroup=rplConditional start="\(^\|\s\+\)elseif\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained contains=ALLBUT,rplElseEnd keepend
317
318" ELSE/END
319syntax region rplElseEnd matchgroup=rplConditional start="\(^\|\s\+\)else\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained contains=ALLBUT,rplElseEnd,rplThenEnd,rplElseifEnd keepend
320
321" THEN/END
322syntax region rplThenEnd matchgroup=rplConditional start="\(^\|\s\+\)then\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained containedin=rplIfEnd contains=ALLBUT,rplThenEnd keepend
323
324" IF/END
325syntax region rplIfEnd matchgroup=rplConditional start="\(^\|\s\+\)if\(err\|\)\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplElseEnd,rplElseifEnd keepend extend
326" if end is accepted !
327" select end too !
328
329" CASE/THEN
330syntax region rplCaseThen matchgroup=rplConditional start="\(^\|\s\+\)case\ze\($\|\s\+\)" end="\(^\|\s\+\)then\ze\($\|\s\+\)" contains=ALLBUT,rplCaseThen,rplCaseEnd,rplThenEnd keepend extend contained containedin=rplCaseEnd
331
332" CASE/END
333syntax region rplCaseEnd matchgroup=rplConditional start="\(^\|\s\+\)case\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplCaseEnd,rplThenEnd,rplElseEnd keepend extend contained containedin=rplSelectEnd
334
335" DEFAULT/END
336syntax region rplDefaultEnd matchgroup=rplConditional start="\(^\|\s\+\)default\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplDefaultEnd keepend contained containedin=rplSelectEnd
337
338" SELECT/END
339syntax region rplSelectEnd matchgroup=rplConditional start="\(^\|\s\+\)select\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplThenEnd keepend extend
340" select end is accepted !
341
342" DO/UNTIL/END
343syntax region rplUntilEnd matchgroup=rplConditional start="\(^\|\s\+\)until\ze\($\|\s\+\)" end="\(^\|\s\+\)\zsend\ze\($\|\s\+\)" contains=ALLBUT,rplUntilEnd contained containedin=rplDoUntil extend keepend
344syntax region rplDoUntil matchgroup=rplConditional start="\(^\|\s\+\)do\ze\($\|\s\+\)" end="\(^\|\s\+\)until\ze\($\|\s\+\)" contains=ALL keepend extend
345
346" WHILE/REPEAT/END
347syntax region rplRepeatEnd matchgroup=rplConditional start="\(^\|\s\+\)repeat\ze\($\|\s\+\)" end="\(^\|\s\+\)\zsend\ze\($\|\s\+\)" contains=ALLBUT,rplRepeatEnd contained containedin=rplWhileRepeat extend keepend
348syntax region rplWhileRepeat matchgroup=rplConditional start="\(^\|\s\+\)while\ze\($\|\s\+\)" end="\(^\|\s\+\)repeat\ze\($\|\s\+\)" contains=ALL keepend extend
349
350" Comments
351syntax match rplCommentError "\*/"
352syntax region rplCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1
353syntax region rplCommentLine start="\(^\|\s\+\)//\ze" skip="\\$" end="$" contains=NONE keepend extend
354syntax region rplComment start="\(^\|\s\+\)/\*\ze" end="\*/" contains=rplCommentString keepend extend
355
356" Catch errors caused by too many right parentheses
357syntax region rplParen transparent start="(" end=")" contains=ALLBUT,rplParenError,rplComplex,rplIncluded keepend extend
358syntax match rplParenError ")"
359
360" Subroutines
361" Catch errors caused by too many right '>>'
362syntax match rplSubError "\(^\|\s\+\)>>\ze\($\|\s\+\)"hs=e-1
363syntax region rplSub matchgroup=rplSubDelimitor start="\(^\|\s\+\)<<\ze\($\|\s\+\)" end="\(^\|\s\+\)>>\ze\($\|\s\+\)" contains=ALLBUT,rplSubError,rplIncluded,rplDefaultEnd,rplStorageSub keepend extend
364
365" Expressions
366syntax region rplExpr start="\(^\|\s\+\)'" end="'\ze\($\|\s\+\)" contains=rplParen,rplParenError
367
368" Local variables
369syntax match rplStorageError "\(^\|\s\+\)->\ze\($\|\s\+\)"hs=e-1
370syntax region rplStorageSub matchgroup=rplStorage start="\(^\|\s\+\)<<\ze\($\|\s\+\)" end="\(^\|\s\+\)>>\ze\($\|\s\+\)" contains=ALLBUT,rplSubError,rplIncluded,rplDefaultEnd,rplStorageExpr contained containedin=rplLocalStorage keepend extend
371syntax region rplStorageExpr matchgroup=rplStorage start="\(^\|\s\+\)'" end="'\ze\($\|\s\+\)" contains=rplParen,rplParenError extend contained containedin=rplLocalStorage
372syntax region rplLocalStorage matchgroup=rplStorage start="\(^\|\s\+\)->\ze\($\|\s\+\)" end="\(^\|\s\+\)\(<<\ze\($\|\s\+\)\|'\)" contains=rplStorageSub,rplStorageExpr,rplComment,rplCommentLine keepend extend
373
374" Catch errors caused by too many right brackets
375syntax match rplArrayError "\]"
376syntax match rplArray "\]" contained containedin=rplArray
377syntax region rplArray matchgroup=rplArray start="\[" end="\]" contains=ALLBUT,rplArrayError keepend extend
378
379" Catch errors caused by too many right '}'
380syntax match rplListError "}"
381syntax match rplList "}" contained containedin=rplList
382syntax region rplList matchgroup=rplList start="{" end="}" contains=ALLBUT,rplListError,rplIncluded keepend extend
383
384" cpp is used by RPL/2
385syntax match rplPreProc "\_^#\s*\(define\|undef\)\>"
386syntax match rplPreProc "\_^#\s*\(warning\|error\)\>"
387syntax match rplPreCondit "\_^#\s*\(if\|ifdef\|ifndef\|elif\|else\|endif\)\>"
388syntax match rplIncluded contained "\<<\s*\S*\s*>\>"
389syntax match rplInclude "\_^#\s*include\>\s*["<]" contains=rplIncluded,rplString
390"syntax match rplExecPath "\%^\_^#!\s*\S*"
391syntax match rplExecPath "\%^\_^#!\p*\_$"
392
393" Any integer
394syntax match rplInteger "\(^\|\s\+\)[-+]\=\d\+\ze\($\|\s\+\)"
395
396" Floating point number
397" [S][ip].[fp]
398syntax match rplFloat "\(^\|\s\+\)[-+]\=\(\d*\)\=[\.,]\(\d*\)\=\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign
399" [S]ip[.fp]E[S]exp
400syntax match rplFloat "\(^\|\s\+\)[-+]\=\d\+\([\.,]\d*\)\=[eE]\([-+]\)\=\d\+\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign
401" [S].fpE[S]exp
402syntax match rplFloat "\(^\|\s\+\)[-+]\=\(\d*\)\=[\.,]\d\+[eE]\([-+]\)\=\d\+\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign
403syntax match rplPoint "\<[\.,]\>"
404syntax match rplSign "\<[+-]\>"
405
406" Complex number
407" (x,y)
408syntax match rplComplex "\(^\|\s\+\)([-+]\=\(\d*\)\=\.\=\d*\([eE][-+]\=\d\+\)\=\s*,\s*[-+]\=\(\d*\)\=\.\=\d*\([eE][-+]\=\d\+\)\=)\ze\($\|\s\+\)"
409" (x.y)
410syntax match rplComplex "\(^\|\s\+\)([-+]\=\(\d*\)\=,\=\d*\([eE][-+]\=\d\+\)\=\s*\.\s*[-+]\=\(\d*\)\=,\=\d*\([eE][-+]\=\d\+\)\=)\ze\($\|\s\+\)"
411
412" Strings
413syntax match rplStringGuilles "\\\""
414syntax match rplStringAntislash "\\\\"
415syntax region rplString start=+\(^\|\s\+\)"+ end=+"\ze\($\|\s\+\)+ contains=rplStringGuilles,rplStringAntislash
416
417syntax match rplTab "\t" transparent
418
419" Define the default highlighting.
420" For version 5.7 and earlier: only when not done already
421" For version 5.8 and later: only when an item doesn't have highlighting yet
422if version >= 508 || !exists("did_rpl_syntax_inits")
423 if version < 508
424 let did_rpl_syntax_inits = 1
425 command -nargs=+ HiLink highlight link <args>
426 else
427 command -nargs=+ HiLink highlight default link <args>
428 endif
429
430 " The default highlighting.
431
432 HiLink rplControl Statement
433 HiLink rplStatement Statement
434 HiLink rplAlgConditional Conditional
435 HiLink rplConditional Repeat
436 HiLink rplConditionalError Error
437 HiLink rplRepeat Repeat
438 HiLink rplCycle Repeat
439 HiLink rplUntil Repeat
440 HiLink rplIntrinsic Special
441 HiLink rplStorage StorageClass
442 HiLink rplStorageExpr StorageClass
443 HiLink rplStorageError Error
444 HiLink rplReadWrite rplIntrinsic
445
446 HiLink rplOperator Operator
447
448 HiLink rplList Special
449 HiLink rplArray Special
450 HiLink rplConstant Identifier
451 HiLink rplExpr Type
452
453 HiLink rplString String
454 HiLink rplStringGuilles String
455 HiLink rplStringAntislash String
456
457 HiLink rplBinary Boolean
458 HiLink rplOctal Boolean
459 HiLink rplDecimal Boolean
460 HiLink rplHexadecimal Boolean
461 HiLink rplInteger Number
462 HiLink rplFloat Float
463 HiLink rplComplex Float
464 HiLink rplBoolean Identifier
465
466 HiLink rplObsolete Todo
467
468 HiLink rplPreCondit PreCondit
469 HiLink rplInclude Include
470 HiLink rplIncluded rplString
471 HiLink rplInclude Include
472 HiLink rplExecPath Include
473 HiLink rplPreProc PreProc
474 HiLink rplComment Comment
475 HiLink rplCommentLine Comment
476 HiLink rplCommentString Comment
477 HiLink rplSubDelimitor rplStorage
478 HiLink rplCommentError Error
479 HiLink rplParenError Error
480 HiLink rplSubError Error
481 HiLink rplArrayError Error
482 HiLink rplListError Error
483 HiLink rplTab Error
484 HiLink rplBinaryError Error
485 HiLink rplOctalError Error
486 HiLink rplDecimalError Error
487 HiLink rplHexadecimalError Error
488
489 delcommand HiLink
490endif
491
492let b:current_syntax = "rpl"
493
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100494let &cpo = s:cpo_save
495unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000496" vim: ts=8 tw=132