Mercurial > hg > RemoteEditor > vim7
comparison runtime/syntax/splint.vim @ 0:76efa0be13f1
Initial revision
author | atsuki |
---|---|
date | Sat, 10 Nov 2007 15:07:22 +0900 |
parents | |
children | e170173ecb68 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:76efa0be13f1 |
---|---|
1 " Vim syntax file | |
2 " Language: splint (C with lclint/splint Annotations) | |
3 " Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> | |
4 " Splint Home: http://www.splint.org/ | |
5 " Last Change: $Date$ | |
6 " $Revision$ | |
7 | |
8 " Note: Splint annotated files are not detected by default. | |
9 " If you want to use this file for highlighting C code, | |
10 " please make sure splint.vim is sourced instead of c.vim, | |
11 " for example by putting | |
12 " /* vim: set filetype=splint : */ | |
13 " at the end of your code or something like | |
14 " au! BufRead,BufNewFile *.c setfiletype splint | |
15 " in your vimrc file or filetype.vim | |
16 | |
17 | |
18 " For version 5.x: Clear all syntax items | |
19 " For version 6.x: Quit when a syntax file was already loaded | |
20 if version < 600 | |
21 syntax clear | |
22 elseif exists("b:current_syntax") | |
23 finish | |
24 endif | |
25 | |
26 " Read the C syntax to start with | |
27 if version < 600 | |
28 so <sfile>:p:h/c.vim | |
29 else | |
30 runtime! syntax/c.vim | |
31 endif | |
32 | |
33 | |
34 " FIXME: uses and changes several clusters defined in c.vim | |
35 " so watch for changes there | |
36 | |
37 " TODO: make a little more grammar explicit | |
38 " match flags with hyphen and underscore notation | |
39 " match flag expanded forms | |
40 " accept other comment char than @ | |
41 | |
42 syn case match | |
43 " splint annotations (taken from 'splint -help annotations') | |
44 syn match splintStateAnnot contained "\(pre\|post\):\(only\|shared\|owned\|dependent\|observer\|exposed\|isnull\|notnull\)" | |
45 syn keyword splintSpecialAnnot contained special | |
46 syn keyword splintSpecTag contained uses sets defines allocated releases | |
47 syn keyword splintModifies contained modifies | |
48 syn keyword splintRequires contained requires ensures | |
49 syn keyword splintGlobals contained globals | |
50 syn keyword splintGlobitem contained internalState fileSystem | |
51 syn keyword splintGlobannot contained undef killed | |
52 syn keyword splintWarning contained warn | |
53 | |
54 syn keyword splintModitem contained internalState fileSystem nothing | |
55 syn keyword splintReqitem contained MaxSet MaxRead result | |
56 syn keyword splintIter contained iter yield | |
57 syn keyword splintConst contained constant | |
58 syn keyword splintAlt contained alt | |
59 | |
60 syn keyword splintType contained abstract concrete mutable immutable refcounted numabstract | |
61 syn keyword splintGlobalType contained unchecked checkmod checked checkedstrict | |
62 syn keyword splintMemMgm contained dependent keep killref only owned shared temp | |
63 syn keyword splintAlias contained unique returned | |
64 syn keyword splintExposure contained observer exposed | |
65 syn keyword splintDefState contained out in partial reldef | |
66 syn keyword splintGlobState contained undef killed | |
67 syn keyword splintNullState contained null notnull relnull | |
68 syn keyword splintNullPred contained truenull falsenull nullwhentrue falsewhennull | |
69 syn keyword splintExit contained exits mayexit trueexit falseexit neverexit | |
70 syn keyword splintExec contained noreturn maynotreturn noreturnwhentrue noreturnwhenfalse alwaysreturns | |
71 syn keyword splintSef contained sef | |
72 syn keyword splintDecl contained unused external | |
73 syn keyword splintCase contained fallthrough | |
74 syn keyword splintBreak contained innerbreak loopbreak switchbreak innercontinue | |
75 syn keyword splintUnreach contained notreached | |
76 syn keyword splintSpecFunc contained printflike scanflike messagelike | |
77 | |
78 " TODO: make these region or match | |
79 syn keyword splintErrSupp contained i ignore end t | |
80 syn match splintErrSupp contained "[it]\d\+\>" | |
81 syn keyword splintTypeAcc contained access noaccess | |
82 | |
83 syn keyword splintMacro contained notfunction | |
84 syn match splintSpecType contained "\(\|unsigned\|signed\)integraltype" | |
85 | |
86 " Flags taken from 'splint -help flags full' divided in local and global flags | |
87 " Local Flags: | |
88 syn keyword splintFlag contained abstract abstractcompare accessall accessczech accessczechoslovak | |
89 syn keyword splintFlag contained accessfile accessmodule accessslovak aliasunique allblock | |
90 syn keyword splintFlag contained allempty allglobs allimponly allmacros alwaysexits | |
91 syn keyword splintFlag contained annotationerror ansi89limits assignexpose badflag bitwisesigned | |
92 syn keyword splintFlag contained boolcompare boolfalse boolint boolops booltrue | |
93 syn keyword splintFlag contained booltype bounds boundscompacterrormessages boundsread boundswrite | |
94 syn keyword splintFlag contained branchstate bufferoverflow bufferoverflowhigh bugslimit casebreak | |
95 syn keyword splintFlag contained caseinsensitivefilenames castexpose castfcnptr charindex charint | |
96 syn keyword splintFlag contained charintliteral charunsignedchar checkedglobalias checkmodglobalias checkpost | |
97 syn keyword splintFlag contained checkstrictglobalias checkstrictglobs codeimponly commentchar commenterror | |
98 syn keyword splintFlag contained compdef compdestroy compmempass constmacros constprefix | |
99 syn keyword splintFlag contained constprefixexclude constuse continuecomment controlnestdepth cppnames | |
100 syn keyword splintFlag contained csvoverwrite czech czechconsts czechfcns czechmacros | |
101 syn keyword splintFlag contained czechoslovak czechoslovakconsts czechoslovakfcns czechoslovakmacros czechoslovaktypes | |
102 syn keyword splintFlag contained czechoslovakvars czechtypes czechvars debugfcnconstraint declundef | |
103 syn keyword splintFlag contained deepbreak deparrays dependenttrans distinctexternalnames distinctinternalnames | |
104 syn keyword splintFlag contained duplicatecases duplicatequals elseifcomplete emptyret enumindex | |
105 syn keyword splintFlag contained enumint enummembers enummemuse enumprefix enumprefixexclude | |
106 syn keyword splintFlag contained evalorder evalorderuncon exitarg exportany exportconst | |
107 syn keyword splintFlag contained exportfcn exportheader exportheadervar exportiter exportlocal | |
108 syn keyword splintFlag contained exportmacro exporttype exportvar exposetrans externalnamecaseinsensitive | |
109 syn keyword splintFlag contained externalnamelen externalprefix externalprefixexclude fcnderef fcnmacros | |
110 syn keyword splintFlag contained fcnpost fcnuse fielduse fileextensions filestaticprefix | |
111 syn keyword splintFlag contained filestaticprefixexclude firstcase fixedformalarray floatdouble forblock | |
112 syn keyword splintFlag contained forcehints forempty forloopexec formalarray formatcode | |
113 syn keyword splintFlag contained formatconst formattype forwarddecl freshtrans fullinitblock | |
114 syn keyword splintFlag contained globalias globalprefix globalprefixexclude globimponly globnoglobs | |
115 syn keyword splintFlag contained globs globsimpmodsnothing globstate globuse gnuextensions | |
116 syn keyword splintFlag contained grammar hasyield hints htmlfileformat ifblock | |
117 syn keyword splintFlag contained ifempty ignorequals ignoresigns immediatetrans impabstract | |
118 syn keyword splintFlag contained impcheckedglobs impcheckedspecglobs impcheckedstatics impcheckedstrictglobs impcheckedstrictspecglobs | |
119 syn keyword splintFlag contained impcheckedstrictstatics impcheckmodglobs impcheckmodinternals impcheckmodspecglobs impcheckmodstatics | |
120 syn keyword splintFlag contained impconj implementationoptional implictconstraint impouts imptype | |
121 syn keyword splintFlag contained includenest incompletetype incondefs incondefslib indentspaces | |
122 syn keyword splintFlag contained infloops infloopsuncon initallelements initsize internalglobs | |
123 syn keyword splintFlag contained internalglobsnoglobs internalnamecaseinsensitive internalnamelen internalnamelookalike iso99limits | |
124 syn keyword splintFlag contained isoreserved isoreservedinternal iterbalance iterloopexec iterprefix | |
125 syn keyword splintFlag contained iterprefixexclude iteryield its4low its4moderate its4mostrisky | |
126 syn keyword splintFlag contained its4risky its4veryrisky keep keeptrans kepttrans | |
127 syn keyword splintFlag contained legacy libmacros likelyboundsread likelyboundswrite likelybool | |
128 syn keyword splintFlag contained likelybounds limit linelen lintcomments localprefix | |
129 syn keyword splintFlag contained localprefixexclude locindentspaces longint longintegral longsignedintegral | |
130 syn keyword splintFlag contained longunsignedintegral longunsignedunsignedintegral loopexec looploopbreak looploopcontinue | |
131 syn keyword splintFlag contained loopswitchbreak macroassign macroconstdecl macrodecl macroempty | |
132 syn keyword splintFlag contained macrofcndecl macromatchname macroparams macroparens macroredef | |
133 syn keyword splintFlag contained macroreturn macrostmt macrounrecog macrovarprefix macrovarprefixexclude | |
134 syn keyword splintFlag contained maintype matchanyintegral matchfields mayaliasunique memchecks | |
135 syn keyword splintFlag contained memimp memtrans misplacedsharequal misscase modfilesys | |
136 syn keyword splintFlag contained modglobs modglobsnomods modglobsunchecked modinternalstrict modnomods | |
137 syn keyword splintFlag contained modobserver modobserveruncon mods modsimpnoglobs modstrictglobsnomods | |
138 syn keyword splintFlag contained moduncon modunconnomods modunspec multithreaded mustdefine | |
139 syn keyword splintFlag contained mustfree mustfreefresh mustfreeonly mustmod mustnotalias | |
140 syn keyword splintFlag contained mutrep namechecks needspec nestcomment nestedextern | |
141 syn keyword splintFlag contained newdecl newreftrans nextlinemacros noaccess nocomments | |
142 syn keyword splintFlag contained noeffect noeffectuncon noparams nopp noret | |
143 syn keyword splintFlag contained null nullassign nullderef nullinit nullpass | |
144 syn keyword splintFlag contained nullptrarith nullret nullstate nullterminated | |
145 syn keyword splintFlag contained numabstract numabstractcast numabstractindex numabstractlit numabstractprint | |
146 syn keyword splintFlag contained numenummembers numliteral numstructfields observertrans obviousloopexec | |
147 syn keyword splintFlag contained oldstyle onlytrans onlyunqglobaltrans orconstraint overload | |
148 syn keyword splintFlag contained ownedtrans paramimptemp paramuse parenfileformat partial | |
149 syn keyword splintFlag contained passunknown portability predassign predbool predboolint | |
150 syn keyword splintFlag contained predboolothers predboolptr preproc protoparammatch protoparamname | |
151 syn keyword splintFlag contained protoparamprefix protoparamprefixexclude ptrarith ptrcompare ptrnegate | |
152 syn keyword splintFlag contained quiet readonlystrings readonlytrans realcompare redecl | |
153 syn keyword splintFlag contained redef redundantconstraints redundantsharequal refcounttrans relaxquals | |
154 syn keyword splintFlag contained relaxtypes repeatunrecog repexpose retalias retexpose | |
155 syn keyword splintFlag contained retimponly retval retvalbool retvalint retvalother | |
156 syn keyword splintFlag contained sefparams sefuncon shadow sharedtrans shiftimplementation | |
157 syn keyword splintFlag contained shiftnegative shortint showallconjs showcolumn showconstraintlocation | |
158 syn keyword splintFlag contained showconstraintparens showdeephistory showfunc showloadloc showscan | |
159 syn keyword splintFlag contained showsourceloc showsummary sizeofformalarray sizeoftype skipisoheaders | |
160 syn keyword splintFlag contained skipposixheaders slashslashcomment slovak slovakconsts slovakfcns | |
161 syn keyword splintFlag contained slovakmacros slovaktypes slovakvars specglobimponly specimponly | |
162 syn keyword splintFlag contained specmacros specretimponly specstructimponly specundecl specundef | |
163 syn keyword splintFlag contained stackref statemerge statetransfer staticinittrans statictrans | |
164 syn keyword splintFlag contained strictbranchstate strictdestroy strictops strictusereleased stringliterallen | |
165 syn keyword splintFlag contained stringliteralnoroom stringliteralnoroomfinalnull stringliteralsmaller stringliteraltoolong structimponly | |
166 syn keyword splintFlag contained superuser switchloopbreak switchswitchbreak syntax sysdirerrors | |
167 syn keyword splintFlag contained sysdirexpandmacros sysunrecog tagprefix tagprefixexclude temptrans | |
168 syn keyword splintFlag contained tmpcomments toctou topuse trytorecover type | |
169 syn keyword splintFlag contained typeprefix typeprefixexclude typeuse uncheckedglobalias uncheckedmacroprefix | |
170 syn keyword splintFlag contained uncheckedmacroprefixexclude uniondef unixstandard unqualifiedinittrans unqualifiedtrans | |
171 syn keyword splintFlag contained unreachable unrecog unrecogcomments unrecogdirective unrecogflagcomments | |
172 syn keyword splintFlag contained unsignedcompare unusedspecial usedef usereleased usevarargs | |
173 syn keyword splintFlag contained varuse voidabstract warnflags warnlintcomments warnmissingglobs | |
174 syn keyword splintFlag contained warnmissingglobsnoglobs warnposixheaders warnrc warnsysfiles warnunixlib | |
175 syn keyword splintFlag contained warnuse whileblock whileempty whileloopexec zerobool | |
176 syn keyword splintFlag contained zeroptr | |
177 " Global Flags: | |
178 syn keyword splintGlobalFlag contained csv dump errorstream errorstreamstderr errorstreamstdout | |
179 syn keyword splintGlobalFlag contained expect f help i isolib | |
180 syn keyword splintGlobalFlag contained larchpath lclexpect lclimportdir lcs lh | |
181 syn keyword splintGlobalFlag contained load messagestream messagestreamstderr messagestreamstdout mts | |
182 syn keyword splintGlobalFlag contained neverinclude nof nolib posixlib posixstrictlib | |
183 syn keyword splintGlobalFlag contained showalluses singleinclude skipsysheaders stats streamoverwrite | |
184 syn keyword splintGlobalFlag contained strictlib supcounts sysdirs timedist tmpdir | |
185 syn keyword splintGlobalFlag contained unixlib unixstrictlib warningstream warningstreamstderr warningstreamstdout | |
186 syn keyword splintGlobalFlag contained whichlib | |
187 syn match splintFlagExpr contained "[\+\-\=]" nextgroup=splintFlag,splintGlobalFlag | |
188 | |
189 " detect missing /*@ and wrong */ | |
190 syn match splintAnnError "@\*/" | |
191 syn cluster cCommentGroup add=splintAnnError | |
192 syn match splintAnnError2 "[^@]\*/"hs=s+1 contained | |
193 syn region splintAnnotation start="/\*@" end="@\*/" contains=@splintAnnotElem,cType keepend | |
194 syn match splintShortAnn "/\*@\*/" | |
195 syn cluster splintAnnotElem contains=splintStateAnnot,splintSpecialAnnot,splintSpecTag,splintModifies,splintRequires,splintGlobals,splintGlobitem,splintGlobannot,splintWarning,splintModitem,splintIter,splintConst,splintAlt,splintType,splintGlobalType,splintMemMgm,splintAlias,splintExposure,splintDefState,splintGlobState,splintNullState,splintNullPred,splintExit,splintExec,splintSef,splintDecl,splintCase,splintBreak,splintUnreach,splintSpecFunc,splintErrSupp,splintTypeAcc,splintMacro,splintSpecType,splintAnnError2,splintFlagExpr | |
196 syn cluster splintAllStuff contains=@splintAnnotElem,splintFlag,splintGlobalFlag | |
197 syn cluster cParenGroup add=@splintAllStuff | |
198 syn cluster cPreProcGroup add=@splintAllStuff | |
199 syn cluster cMultiGroup add=@splintAllStuff | |
200 | |
201 " Define the default highlighting. | |
202 " For version 5.7 and earlier: only when not done already | |
203 " For version 5.8 and later: only when an item doesn't have highlighting yet | |
204 if version >= 508 || !exists("did_splint_syntax_inits") | |
205 if version < 508 | |
206 let did_splint_syntax_inits = 1 | |
207 command -nargs=+ HiLink hi link <args> | |
208 else | |
209 command -nargs=+ HiLink hi def link <args> | |
210 endif | |
211 | |
212 HiLink splintShortAnn splintAnnotation | |
213 HiLink splintAnnotation Comment | |
214 HiLink splintAnnError splintError | |
215 HiLink splintAnnError2 splintError | |
216 HiLink splintFlag SpecialComment | |
217 HiLink splintGlobalFlag splintError | |
218 HiLink splintSpecialAnnot splintAnnKey | |
219 HiLink splintStateAnnot splintAnnKey | |
220 HiLink splintSpecTag splintAnnKey | |
221 HiLink splintModifies splintAnnKey | |
222 HiLink splintRequires splintAnnKey | |
223 HiLink splintGlobals splintAnnKey | |
224 HiLink splintGlobitem Constant | |
225 HiLink splintGlobannot splintAnnKey | |
226 HiLink splintWarning splintAnnKey | |
227 HiLink splintModitem Constant | |
228 HiLink splintIter splintAnnKey | |
229 HiLink splintConst splintAnnKey | |
230 HiLink splintAlt splintAnnKey | |
231 HiLink splintType splintAnnKey | |
232 HiLink splintGlobalType splintAnnKey | |
233 HiLink splintMemMgm splintAnnKey | |
234 HiLink splintAlias splintAnnKey | |
235 HiLink splintExposure splintAnnKey | |
236 HiLink splintDefState splintAnnKey | |
237 HiLink splintGlobState splintAnnKey | |
238 HiLink splintNullState splintAnnKey | |
239 HiLink splintNullPred splintAnnKey | |
240 HiLink splintExit splintAnnKey | |
241 HiLink splintExec splintAnnKey | |
242 HiLink splintSef splintAnnKey | |
243 HiLink splintDecl splintAnnKey | |
244 HiLink splintCase splintAnnKey | |
245 HiLink splintBreak splintAnnKey | |
246 HiLink splintUnreach splintAnnKey | |
247 HiLink splintSpecFunc splintAnnKey | |
248 HiLink splintErrSupp splintAnnKey | |
249 HiLink splintTypeAcc splintAnnKey | |
250 HiLink splintMacro splintAnnKey | |
251 HiLink splintSpecType splintAnnKey | |
252 HiLink splintAnnKey Type | |
253 HiLink splintError Error | |
254 | |
255 delcommand HiLink | |
256 endif | |
257 | |
258 let b:current_syntax = "splint" | |
259 | |
260 " vim: ts=8 |