home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / runtime / syntax / splint.vim < prev    next >
Encoding:
Text File  |  2003-05-19  |  15.8 KB  |  261 lines

  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: 2003/05/19 17:21:56 $
  6. " $Revision: 1.15 $
  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
  261.