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