1" Vim syntax file
2" Language:     SiCAD (procedure language)
3" Maintainer:   Zsolt Branyiczky <zbranyiczky@lmark.mgx.hu>
4" Last Change:  2003 May 11
5" URL:		http://lmark.mgx.hu:81/download/vim/sicad.vim
6
7" quit when a syntax file was already loaded
8if exists("b:current_syntax")
9  finish
10endif
11
12" use SQL highlighting after 'sql' command
13syn include @SQL syntax/sql.vim
14unlet b:current_syntax
15
16" spaces are used in (auto)indents since sicad hates tabulator characters
17setlocal expandtab
18
19" ignore case
20syn case ignore
21
22" most important commands - not listed by ausku
23syn keyword sicadStatement define
24syn keyword sicadStatement dialog
25syn keyword sicadStatement do
26syn keyword sicadStatement dop contained
27syn keyword sicadStatement end
28syn keyword sicadStatement enddo
29syn keyword sicadStatement endp
30syn keyword sicadStatement erroff
31syn keyword sicadStatement erron
32syn keyword sicadStatement exitp
33syn keyword sicadGoto      goto contained
34syn keyword sicadStatement hh
35syn keyword sicadStatement if
36syn keyword sicadStatement in
37syn keyword sicadStatement msgsup
38syn keyword sicadStatement out
39syn keyword sicadStatement padd
40syn keyword sicadStatement parbeg
41syn keyword sicadStatement parend
42syn keyword sicadStatement pdoc
43syn keyword sicadStatement pprot
44syn keyword sicadStatement procd
45syn keyword sicadStatement procn
46syn keyword sicadStatement psav
47syn keyword sicadStatement psel
48syn keyword sicadStatement psymb
49syn keyword sicadStatement ptrace
50syn keyword sicadStatement ptstat
51syn keyword sicadStatement set
52syn keyword sicadStatement sql contained
53syn keyword sicadStatement step
54syn keyword sicadStatement sys
55syn keyword sicadStatement ww
56
57" functions
58syn match sicadStatement "\<atan("me=e-1
59syn match sicadStatement "\<atan2("me=e-1
60syn match sicadStatement "\<cos("me=e-1
61syn match sicadStatement "\<dist("me=e-1
62syn match sicadStatement "\<exp("me=e-1
63syn match sicadStatement "\<log("me=e-1
64syn match sicadStatement "\<log10("me=e-1
65syn match sicadStatement "\<sin("me=e-1
66syn match sicadStatement "\<sqrt("me=e-1
67syn match sicadStatement "\<tanh("me=e-1
68syn match sicadStatement "\<x("me=e-1
69syn match sicadStatement "\<y("me=e-1
70syn match sicadStatement "\<v("me=e-1
71syn match sicadStatement "\<x%g\=p[0-9]\{1,2}\>"me=s+1
72syn match sicadStatement "\<y%g\=p[0-9]\{1,2}\>"me=s+1
73
74" logical operators
75syn match sicadOperator "\.and\."
76syn match sicadOperator "\.ne\."
77syn match sicadOperator "\.not\."
78syn match sicadOperator "\.eq\."
79syn match sicadOperator "\.ge\."
80syn match sicadOperator "\.gt\."
81syn match sicadOperator "\.le\."
82syn match sicadOperator "\.lt\."
83syn match sicadOperator "\.or\."
84syn match sicadOperator "\.eqv\."
85syn match sicadOperator "\.neqv\."
86
87" variable name
88syn match sicadIdentifier "%g\=[irpt][0-9]\{1,2}\>"
89syn match sicadIdentifier "%g\=l[0-9]\>"
90syn match sicadIdentifier "%g\=[irptl]("me=e-1
91syn match sicadIdentifier "%error\>"
92syn match sicadIdentifier "%nsel\>"
93syn match sicadIdentifier "%nvar\>"
94syn match sicadIdentifier "%scl\>"
95syn match sicadIdentifier "%wd\>"
96syn match sicadIdentifier "\$[irt][0-9]\{1,2}\>" contained
97
98" label
99syn match sicadLabel1 "^ *\.[a-z][a-z0-9]\{0,7} \+[^ ]"me=e-1
100syn match sicadLabel1 "^ *\.[a-z][a-z0-9]\{0,7}\*"me=e-1
101syn match sicadLabel2 "\<goto \.\=[a-z][a-z0-9]\{0,7}\>" contains=sicadGoto
102syn match sicadLabel2 "\<goto\.[a-z][a-z0-9]\{0,7}\>" contains=sicadGoto
103
104" boolean
105syn match sicadBoolean "\.[ft]\."
106" integer without sign
107syn match sicadNumber "\<[0-9]\+\>"
108" floating point number, with dot, optional exponent
109syn match sicadFloat "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\>"
110" floating point number, starting with a dot, optional exponent
111syn match sicadFloat "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>"
112" floating point number, without dot, with exponent
113syn match sicadFloat "\<[0-9]\+e[-+]\=[0-9]\+\>"
114
115" without this extraString definition a ' ;  ' could stop the comment
116syn region sicadString_ transparent start=+'+ end=+'+ oneline contained
117" string
118syn region sicadString start=+'+ end=+'+ oneline
119
120" comments - nasty ones in sicad
121
122" - ' *  blabla' or ' *  blabla;'
123syn region sicadComment start="^ *\*" skip='\\ *$' end=";"me=e-1 end="$" contains=sicadString_
124" - ' .LABEL03 *  blabla' or ' .LABEL03 *  blabla;'
125syn region sicadComment start="^ *\.[a-z][a-z0-9]\{0,7} *\*" skip='\\ *$' end=";"me=e-1 end="$" contains=sicadLabel1,sicadString_
126" - '; * blabla' or '; * blabla;'
127syn region sicadComment start="; *\*"ms=s+1 skip='\\ *$' end=";"me=e-1 end="$" contains=sicadString_
128" - comments between docbeg and docend
129syn region sicadComment matchgroup=sicadStatement start="\<docbeg\>" end="\<docend\>"
130
131" catch \ at the end of line
132syn match sicadLineCont "\\ *$"
133
134" parameters in dop block - for the time being it is not used
135"syn match sicadParameter " [a-z][a-z0-9]*[=:]"me=e-1 contained
136" dop block - for the time being it is not used
137syn region sicadDopBlock transparent matchgroup=sicadStatement start='\<dop\>' skip='\\ *$' end=';'me=e-1 end='$' contains=ALL
138
139" sql block - new highlighting mode is used (see syn include)
140syn region sicadSqlBlock transparent matchgroup=sicadStatement start='\<sql\>' skip='\\ *$' end=';'me=e-1 end='$' contains=@SQL,sicadIdentifier,sicadLineCont
141
142" synchronizing
143syn sync clear  " clear sync used in sql.vim
144syn sync match sicadSyncComment groupthere NONE "\<docend\>"
145syn sync match sicadSyncComment grouphere sicadComment "\<docbeg\>"
146" next line must be examined too
147syn sync linecont "\\ *$"
148
149" catch error caused by tabulator key
150syn match sicadError "\t"
151" catch errors caused by wrong parenthesis
152"syn region sicadParen transparent start='(' end=')' contains=ALLBUT,sicadParenError
153syn region sicadParen transparent start='(' skip='\\ *$' end=')' end='$' contains=ALLBUT,sicadParenError
154syn match sicadParenError ')'
155"syn region sicadApostrophe transparent start=+'+ end=+'+ contains=ALLBUT,sicadApostropheError
156"syn match sicadApostropheError +'+
157" not closed apostrophe
158"syn region sicadError start=+'+ end=+$+ contains=ALLBUT,sicadApostropheError
159"syn match sicadApostropheError +'[^']*$+me=s+1 contained
160
161" SICAD keywords
162syn keyword sicadStatement abst add addsim adrin aib
163syn keyword sicadStatement aibzsn aidump aifgeo aisbrk alknam
164syn keyword sicadStatement alknr alksav alksel alktrc alopen
165syn keyword sicadStatement ansbo aractiv ararea arareao ararsfs
166syn keyword sicadStatement arbuffer archeck arcomv arcont arconv
167syn keyword sicadStatement arcopy arcopyo arcorr arcreate arerror
168syn keyword sicadStatement areval arflfm arflop arfrast argbkey
169syn keyword sicadStatement argenf argraph argrapho arinters arkompfl
170syn keyword sicadStatement arlasso arlcopy arlgraph arline arlining
171syn keyword sicadStatement arlisly armakea armemo arnext aroverl
172syn keyword sicadStatement arovers arparkmd arpars arrefp arselect
173syn keyword sicadStatement arset arstruct arunify arupdate arvector
174syn keyword sicadStatement arveinfl arvflfl arvoroni ausku basis
175syn keyword sicadStatement basisaus basisdar basisnr bebos befl
176syn keyword sicadStatement befla befli befls beo beorta
177syn keyword sicadStatement beortn bep bepan bepap bepola
178syn keyword sicadStatement bepoln bepsn bepsp ber berili
179syn keyword sicadStatement berk bewz bkl bli bma
180syn keyword sicadStatement bmakt bmakts bmbm bmerk bmerw
181syn keyword sicadStatement bmerws bminit bmk bmorth bmos
182syn keyword sicadStatement bmoss bmpar bmsl bmsum bmsums
183syn keyword sicadStatement bmver bmvero bmw bo bta
184syn keyword sicadStatement buffer bvl bw bza bzap
185syn keyword sicadStatement bzd bzgera bzorth cat catel
186syn keyword sicadStatement cdbdiff ce cgmparam close closesim
187syn keyword sicadStatement comgener comp comp conclose conclose coninfo
188syn keyword sicadStatement conopen conread contour conwrite cop
189syn keyword sicadStatement copar coparp coparp2 copel cr
190syn keyword sicadStatement cs cstat cursor d da
191syn keyword sicadStatement dal dasp dasps dataout dcol
192syn keyword sicadStatement dd defsr del delel deskrdef
193syn keyword sicadStatement df dfn dfns dfpos dfr
194syn keyword sicadStatement dgd dgm dgp dgr dh
195syn keyword sicadStatement diag diaus dir disbsd dkl
196syn keyword sicadStatement dktx dkur dlgfix dlgfre dma
197syn keyword sicadStatement dprio dr druse dsel dskinfo
198syn keyword sicadStatement dsr dv dve eba ebd
199syn keyword sicadStatement ebdmod ebs edbsdbin edbssnin edbsvtin
200syn keyword sicadStatement edt egaus egdef egdefs eglist
201syn keyword sicadStatement egloe egloenp egloes egxx eib
202syn keyword sicadStatement ekur ekuradd elel elpos epg
203syn keyword sicadStatement esau esauadd esek eta etap
204syn keyword sicadStatement etav feparam ficonv filse fl
205syn keyword sicadStatement fli flin flini flinit flins
206syn keyword sicadStatement flkor fln flnli flop flout
207syn keyword sicadStatement flowert flparam flraster flsy flsyd
208syn keyword sicadStatement flsym flsyms flsymt fmtatt fmtdia
209syn keyword sicadStatement fmtlib fpg gbadddb gbaim gbanrs
210syn keyword sicadStatement gbatw gbau gbaudit gbclosp gbcredic
211syn keyword sicadStatement gbcreem gbcreld gbcresdb gbcretd gbde
212syn keyword sicadStatement gbdeldb gbdeldic gbdelem gbdelld gbdelref
213syn keyword sicadStatement gbdeltd gbdisdb gbdisem gbdisld gbdistd
214syn keyword sicadStatement gbebn gbemau gbepsv gbgetdet gbgetes
215syn keyword sicadStatement gbgetmas gbgqel gbgqelr gbgqsa gbgrant
216syn keyword sicadStatement gbimpdic gbler gblerb gblerf gbles
217syn keyword sicadStatement gblocdic gbmgmg gbmntdb gbmoddb gbnam
218syn keyword sicadStatement gbneu gbopenp gbpoly gbpos gbpruef
219syn keyword sicadStatement gbpruefg gbps gbqgel gbqgsa gbrefdic
220syn keyword sicadStatement gbreftab gbreldic gbresem gbrevoke gbsav
221syn keyword sicadStatement gbsbef gbsddk gbsicu gbsrt gbss
222syn keyword sicadStatement gbstat gbsysp gbszau gbubp gbueb
223syn keyword sicadStatement gbunmdb gbuseem gbw gbweg gbwieh
224syn keyword sicadStatement gbzt gelp gera getvar hgw
225syn keyword sicadStatement hpg hr0 hra hrar icclchan
226syn keyword sicadStatement iccrecon icdescon icfree icgetcon icgtresp
227syn keyword sicadStatement icopchan icputcon icreacon icreqd icreqnw
228syn keyword sicadStatement icreqw icrespd icresrve icwricon imsget
229syn keyword sicadStatement imsgqel imsmget imsplot imsprint inchk
230syn keyword sicadStatement inf infd inst kbml kbmls
231syn keyword sicadStatement kbmm kbmms kbmt kbmtdps kbmts
232syn keyword sicadStatement khboe khbol khdob khe khetap
233syn keyword sicadStatement khfrw khktk khlang khld khmfrp
234syn keyword sicadStatement khmks khms khpd khpfeil khpl
235syn keyword sicadStatement khprofil khrand khsa khsabs khsaph
236syn keyword sicadStatement khsd khsdl khse khskbz khsna
237syn keyword sicadStatement khsnum khsob khspos khsvph khtrn
238syn keyword sicadStatement khver khzpe khzpl kib kldat
239syn keyword sicadStatement klleg klsch klsym klvert kmpg
240syn keyword sicadStatement kmtlage kmtp kmtps kodef kodefp
241syn keyword sicadStatement kodefs kok kokp kolae kom
242syn keyword sicadStatement kontly kopar koparp kopg kosy
243syn keyword sicadStatement kp kr krsek krtclose krtopen
244syn keyword sicadStatement ktk lad lae laesel language
245syn keyword sicadStatement lasso lbdes lcs ldesk ldesks
246syn keyword sicadStatement le leak leattdes leba lebas
247syn keyword sicadStatement lebaznp lebd lebm lebv lebvaus
248syn keyword sicadStatement lebvlist lede ledel ledepo ledepol
249syn keyword sicadStatement ledepos leder ledist ledm lee
250syn keyword sicadStatement leeins lees lege lekr lekrend
251syn keyword sicadStatement lekwa lekwas lel lelh lell
252syn keyword sicadStatement lelp lem lena lend lenm
253syn keyword sicadStatement lep lepe lepee lepko lepl
254syn keyword sicadStatement lepmko lepmkop lepos leposm leqs
255syn keyword sicadStatement leqsl leqssp leqsv leqsvov les
256syn keyword sicadStatement lesch lesr less lestd let
257syn keyword sicadStatement letaum letl lev levm levtm
258syn keyword sicadStatement levtp levtr lew lewm lexx
259syn keyword sicadStatement lfs li lining lldes lmode
260syn keyword sicadStatement loedk loepkt lop lose loses
261syn keyword sicadStatement lp lppg lppruef lr ls
262syn keyword sicadStatement lsop lsta lstat ly lyaus
263syn keyword sicadStatement lz lza lzae lzbz lze
264syn keyword sicadStatement lznr lzo lzpos ma ma0
265syn keyword sicadStatement ma1 mad map mapoly mcarp
266syn keyword sicadStatement mccfr mccgr mcclr mccrf mcdf
267syn keyword sicadStatement mcdma mcdr mcdrp mcdve mcebd
268syn keyword sicadStatement mcgse mcinfo mcldrp md me
269syn keyword sicadStatement mefd mefds minmax mipg ml
270syn keyword sicadStatement mmcmdme mmdbf mmdellb mmdir mmdome
271syn keyword sicadStatement mmfsb mminfolb mmlapp mmlbf mmlistlb
272syn keyword sicadStatement mmloadcm mmmsg mmreadlb mmsetlb mmshowcm
273syn keyword sicadStatement mmstatme mnp mpo mr mra
274syn keyword sicadStatement ms msav msgout msgsnd msp
275syn keyword sicadStatement mspf mtd nasel ncomp new
276syn keyword sicadStatement nlist nlistlt nlistly nlistnp nlistpo
277syn keyword sicadStatement np npa npdes npe npem
278syn keyword sicadStatement npinfa npruef npsat npss npssa
279syn keyword sicadStatement ntz oa oan odel odf
280syn keyword sicadStatement odfx oj oja ojaddsk ojaed
281syn keyword sicadStatement ojaeds ojaef ojaefs ojaen ojak
282syn keyword sicadStatement ojaks ojakt ojakz ojalm ojatkis
283syn keyword sicadStatement ojatt ojatw ojbsel ojcasel ojckon
284syn keyword sicadStatement ojde ojdtl ojeb ojebd ojel
285syn keyword sicadStatement ojelpas ojesb ojesbd ojex ojezge
286syn keyword sicadStatement ojko ojlb ojloe ojlsb ojmerk
287syn keyword sicadStatement ojmos ojnam ojpda ojpoly ojprae
288syn keyword sicadStatement ojs ojsak ojsort ojstrukt ojsub
289syn keyword sicadStatement ojtdef ojvek ojx old oldd
290syn keyword sicadStatement op opa opa1 open opensim
291syn keyword sicadStatement opnbsd orth osanz ot otp
292syn keyword sicadStatement otrefp param paranf pas passw
293syn keyword sicadStatement pcatchf pda pdadd pg pg0
294syn keyword sicadStatement pgauf pgaufsel pgb pgko pgm
295syn keyword sicadStatement pgr pgvs pily pkpg plot
296syn keyword sicadStatement plotf plotfr pmap pmdata pmdi
297syn keyword sicadStatement pmdp pmeb pmep pminfo pmlb
298syn keyword sicadStatement pmli pmlp pmmod pnrver poa
299syn keyword sicadStatement pos posa posaus post printfr
300syn keyword sicadStatement protect prs prssy prsym ps
301syn keyword sicadStatement psadd psclose psopen psparam psprw
302syn keyword sicadStatement psres psstat psw pswr qualif
303syn keyword sicadStatement rahmen raster rasterd rbbackup rbchang2
304syn keyword sicadStatement rbchange rbcmd rbcoldst rbcolor rbcopy
305syn keyword sicadStatement rbcut rbcut2 rbdbcl rbdbload rbdbop
306syn keyword sicadStatement rbdbwin rbdefs rbedit rbfdel rbfill
307syn keyword sicadStatement rbfill2 rbfload rbfload2 rbfnew rbfnew2
308syn keyword sicadStatement rbfpar rbfree rbg rbgetcol rbgetdst
309syn keyword sicadStatement rbinfo rbpaste rbpixel rbrstore rbsnap
310syn keyword sicadStatement rbsta rbtile rbtrpix rbvtor rcol
311syn keyword sicadStatement rd rdchange re reb rebmod
312syn keyword sicadStatement refunc ren renel rk rkpos
313syn keyword sicadStatement rohr rohrpos rpr rr rr0
314syn keyword sicadStatement rra rrar rs samtosdb sav
315syn keyword sicadStatement savd savesim savx scol scopy
316syn keyword sicadStatement scopye sdbtosam sddk sdwr se
317syn keyword sicadStatement selaus selpos seman semi sesch
318syn keyword sicadStatement setscl setvar sfclntpf sfconn sffetchf
319syn keyword sicadStatement sffpropi sfftypi sfqugeoc sfquwhcl sfself
320syn keyword sicadStatement sfstat sftest sge sid sie
321syn keyword sicadStatement sig sigp skk skks sn
322syn keyword sicadStatement sn21 snpa snpar snparp snparps
323syn keyword sicadStatement snpars snpas snpd snpi snpkor
324syn keyword sicadStatement snpl snpm sob sob0 sobloe
325syn keyword sicadStatement sobs sof sop split spr
326syn keyword sicadStatement sqdadd sqdlad sqdold sqdsav
327syn keyword sicadStatement sr sres srt sset stat
328syn keyword sicadStatement stdtxt string strukt strupru suinfl
329syn keyword sicadStatement suinflk suinfls supo supo1 sva
330syn keyword sicadStatement svr sy sya syly sysout
331syn keyword sicadStatement syu syux taa tabeg tabl
332syn keyword sicadStatement tabm tam tanr tapg tapos
333syn keyword sicadStatement tarkd tas tase tb tbadd
334syn keyword sicadStatement tbd tbext tbget tbint tbout
335syn keyword sicadStatement tbput tbsat tbsel tbstr tcaux
336syn keyword sicadStatement tccable tcchkrep tccomm tccond tcdbg
337syn keyword sicadStatement tcgbnr tcgrpos tcinit tclconv tcmodel
338syn keyword sicadStatement tcnwe tcpairs tcpath tcrect tcrmdli
339syn keyword sicadStatement tcscheme tcschmap tcse tcselc tcstar
340syn keyword sicadStatement tcstrman tcsubnet tcsymbol tctable tcthrcab
341syn keyword sicadStatement tctrans tctst tdb tdbdel tdbget
342syn keyword sicadStatement tdblist tdbput tgmod titel tmoff
343syn keyword sicadStatement tmon tp tpa tps tpta
344syn keyword sicadStatement tra trans transkdo transopt transpro
345syn keyword sicadStatement triangle trm trpg trrkd trs
346syn keyword sicadStatement ts tsa tx txa txchk
347syn keyword sicadStatement txcng txju txl txp txpv
348syn keyword sicadStatement txtcmp txv txz uckon uiinfo
349syn keyword sicadStatement uistatus umdk umdk1 umdka umge
350syn keyword sicadStatement umges umr verbo verflli verif
351syn keyword sicadStatement verly versinfo vfg vpactive vpcenter
352syn keyword sicadStatement vpcreate vpdelete vpinfo vpmodify vpscroll
353syn keyword sicadStatement vpsta wabsym wzmerk zdrhf zdrhfn
354syn keyword sicadStatement zdrhfw zdrhfwn zefp zfl zflaus
355syn keyword sicadStatement zka zlel zlels zortf zortfn
356syn keyword sicadStatement zortfw zortfwn zortp zortpn zparb
357syn keyword sicadStatement zparbn zparf zparfn zparfw zparfwn
358syn keyword sicadStatement zparp zparpn zwinkp zwinkpn
359
360" Define the default highlighting.
361" Only when an item doesn't have highlighting yet
362
363hi def link sicadLabel PreProc
364hi def link sicadLabel1 sicadLabel
365hi def link sicadLabel2 sicadLabel
366hi def link sicadConditional Conditional
367hi def link sicadBoolean Boolean
368hi def link sicadNumber Number
369hi def link sicadFloat Float
370hi def link sicadOperator Operator
371hi def link sicadStatement Statement
372hi def link sicadParameter sicadStatement
373hi def link sicadGoto sicadStatement
374hi def link sicadLineCont sicadStatement
375hi def link sicadString String
376hi def link sicadComment Comment
377hi def link sicadSpecial Special
378hi def link sicadIdentifier Type
379"  hi def link sicadIdentifier Identifier
380hi def link sicadError Error
381hi def link sicadParenError sicadError
382hi def link sicadApostropheError sicadError
383hi def link sicadStringError sicadError
384hi def link sicadCommentError sicadError
385"  hi def link sqlStatement Special  " modified highlight group in sql.vim
386
387
388let b:current_syntax = "sicad"
389
390" vim: ts=8 sw=2
391