Spade

Mini Shell

Directory:~$ /usr/share/vim/vim74/syntax/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //usr/share/vim/vim74/syntax/splint.vim

" Vim syntax file
" Language:	splint (C with lclint/splint Annotations)
" Maintainer:	Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Splint Home:	http://www.splint.org/
" Last Change:	$Date: 2004/06/13 20:08:47 $
" $Revision: 1.1 $

" Note:		Splint annotated files are not detected by default.
"		If you want to use this file for highlighting C code,
"		please make sure splint.vim is sourced instead of c.vim,
"		for example by putting
"			/* vim: set filetype=splint : */
"		at the end of your code or something like
"			au! BufRead,BufNewFile *.c	setfiletype splint
"		in your vimrc file or filetype.vim


" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

" Read the C syntax to start with
if version < 600
  so <sfile>:p:h/c.vim
else
  runtime! syntax/c.vim
endif


" FIXME: uses and changes several clusters defined in c.vim
"	so watch for changes there

" TODO: make a little more grammar explicit
"	match flags with hyphen and underscore notation
"	match flag expanded forms
"	accept other comment char than @

syn case match
" splint annotations (taken from 'splint -help annotations')
syn match   splintStateAnnot	contained
"\(pre\|post\):\(only\|shared\|owned\|dependent\|observer\|exposed\|isnull\|notnull\)"
syn keyword splintSpecialAnnot  contained special
syn keyword splintSpecTag	contained uses sets defines allocated releases
syn keyword splintModifies	contained modifies
syn keyword splintRequires	contained requires ensures
syn keyword splintGlobals	contained globals
syn keyword splintGlobitem	contained internalState fileSystem
syn keyword splintGlobannot	contained undef killed
syn keyword splintWarning	contained warn

syn keyword splintModitem	contained internalState fileSystem nothing
syn keyword splintReqitem	contained MaxSet MaxRead result
syn keyword splintIter		contained iter yield
syn keyword splintConst		contained constant
syn keyword splintAlt		contained alt

syn keyword splintType		contained abstract concrete mutable immutable
refcounted numabstract
syn keyword splintGlobalType	contained unchecked checkmod checked
checkedstrict
syn keyword splintMemMgm	contained dependent keep killref only owned shared
temp
syn keyword splintAlias		contained unique returned
syn keyword splintExposure	contained observer exposed
syn keyword splintDefState	contained out in partial reldef
syn keyword splintGlobState	contained undef killed
syn keyword splintNullState	contained null notnull relnull
syn keyword splintNullPred	contained truenull falsenull nullwhentrue
falsewhennull
syn keyword splintExit		contained exits mayexit trueexit falseexit
neverexit
syn keyword splintExec		contained noreturn maynotreturn noreturnwhentrue
noreturnwhenfalse alwaysreturns
syn keyword splintSef		contained sef
syn keyword splintDecl		contained unused external
syn keyword splintCase		contained fallthrough
syn keyword splintBreak		contained innerbreak loopbreak switchbreak
innercontinue
syn keyword splintUnreach	contained notreached
syn keyword splintSpecFunc	contained printflike scanflike messagelike

" TODO: make these region or match
syn keyword splintErrSupp	contained i ignore end t
syn match   splintErrSupp	contained "[it]\d\+\>"
syn keyword splintTypeAcc	contained access noaccess

syn keyword splintMacro		contained notfunction
syn match   splintSpecType	contained
"\(\|unsigned\|signed\)integraltype"

" Flags taken from 'splint -help flags full' divided in
local and global flags
"				 Local Flags:
syn keyword splintFlag contained abstract abstractcompare accessall
accessczech accessczechoslovak
syn keyword splintFlag contained accessfile accessmodule accessslovak
aliasunique allblock
syn keyword splintFlag contained allempty allglobs allimponly allmacros
alwaysexits
syn keyword splintFlag contained annotationerror ansi89limits assignexpose
badflag bitwisesigned
syn keyword splintFlag contained boolcompare boolfalse boolint boolops
booltrue
syn keyword splintFlag contained booltype bounds boundscompacterrormessages
boundsread boundswrite
syn keyword splintFlag contained branchstate bufferoverflow
bufferoverflowhigh bugslimit casebreak
syn keyword splintFlag contained caseinsensitivefilenames castexpose
castfcnptr charindex charint
syn keyword splintFlag contained charintliteral charunsignedchar
checkedglobalias checkmodglobalias checkpost
syn keyword splintFlag contained checkstrictglobalias checkstrictglobs
codeimponly commentchar commenterror
syn keyword splintFlag contained compdef compdestroy compmempass
constmacros constprefix
syn keyword splintFlag contained constprefixexclude constuse
continuecomment controlnestdepth cppnames
syn keyword splintFlag contained csvoverwrite czech czechconsts czechfcns
czechmacros
syn keyword splintFlag contained czechoslovak czechoslovakconsts
czechoslovakfcns czechoslovakmacros czechoslovaktypes
syn keyword splintFlag contained czechoslovakvars czechtypes czechvars
debugfcnconstraint declundef
syn keyword splintFlag contained deepbreak deparrays dependenttrans
distinctexternalnames distinctinternalnames
syn keyword splintFlag contained duplicatecases duplicatequals
elseifcomplete emptyret enumindex
syn keyword splintFlag contained enumint enummembers enummemuse enumprefix
enumprefixexclude
syn keyword splintFlag contained evalorder evalorderuncon exitarg exportany
exportconst
syn keyword splintFlag contained exportfcn exportheader exportheadervar
exportiter exportlocal
syn keyword splintFlag contained exportmacro exporttype exportvar
exposetrans externalnamecaseinsensitive
syn keyword splintFlag contained externalnamelen externalprefix
externalprefixexclude fcnderef fcnmacros
syn keyword splintFlag contained fcnpost fcnuse fielduse fileextensions
filestaticprefix
syn keyword splintFlag contained filestaticprefixexclude firstcase
fixedformalarray floatdouble forblock
syn keyword splintFlag contained forcehints forempty forloopexec
formalarray formatcode
syn keyword splintFlag contained formatconst formattype forwarddecl
freshtrans fullinitblock
syn keyword splintFlag contained globalias globalprefix globalprefixexclude
globimponly globnoglobs
syn keyword splintFlag contained globs globsimpmodsnothing globstate
globuse gnuextensions
syn keyword splintFlag contained grammar hasyield hints htmlfileformat
ifblock
syn keyword splintFlag contained ifempty ignorequals ignoresigns
immediatetrans impabstract
syn keyword splintFlag contained impcheckedglobs impcheckedspecglobs
impcheckedstatics impcheckedstrictglobs impcheckedstrictspecglobs
syn keyword splintFlag contained impcheckedstrictstatics impcheckmodglobs
impcheckmodinternals impcheckmodspecglobs impcheckmodstatics
syn keyword splintFlag contained impconj implementationoptional
implictconstraint impouts imptype
syn keyword splintFlag contained includenest incompletetype incondefs
incondefslib indentspaces
syn keyword splintFlag contained infloops infloopsuncon initallelements
initsize internalglobs
syn keyword splintFlag contained internalglobsnoglobs
internalnamecaseinsensitive internalnamelen internalnamelookalike
iso99limits
syn keyword splintFlag contained isoreserved isoreservedinternal
iterbalance iterloopexec iterprefix
syn keyword splintFlag contained iterprefixexclude iteryield its4low
its4moderate its4mostrisky
syn keyword splintFlag contained its4risky its4veryrisky keep keeptrans
kepttrans
syn keyword splintFlag contained legacy libmacros likelyboundsread
likelyboundswrite likelybool
syn keyword splintFlag contained likelybounds limit linelen lintcomments
localprefix
syn keyword splintFlag contained localprefixexclude locindentspaces longint
longintegral longsignedintegral
syn keyword splintFlag contained longunsignedintegral
longunsignedunsignedintegral loopexec looploopbreak looploopcontinue
syn keyword splintFlag contained loopswitchbreak macroassign macroconstdecl
macrodecl macroempty
syn keyword splintFlag contained macrofcndecl macromatchname macroparams
macroparens macroredef
syn keyword splintFlag contained macroreturn macrostmt macrounrecog
macrovarprefix macrovarprefixexclude
syn keyword splintFlag contained maintype matchanyintegral matchfields
mayaliasunique memchecks
syn keyword splintFlag contained memimp memtrans misplacedsharequal
misscase modfilesys
syn keyword splintFlag contained modglobs modglobsnomods modglobsunchecked
modinternalstrict modnomods
syn keyword splintFlag contained modobserver modobserveruncon mods
modsimpnoglobs modstrictglobsnomods
syn keyword splintFlag contained moduncon modunconnomods modunspec
multithreaded mustdefine
syn keyword splintFlag contained mustfree mustfreefresh mustfreeonly
mustmod mustnotalias
syn keyword splintFlag contained mutrep namechecks needspec nestcomment
nestedextern
syn keyword splintFlag contained newdecl newreftrans nextlinemacros
noaccess nocomments
syn keyword splintFlag contained noeffect noeffectuncon noparams nopp noret
syn keyword splintFlag contained null nullassign nullderef nullinit
nullpass
syn keyword splintFlag contained nullptrarith nullret nullstate
nullterminated
syn keyword splintFlag contained numabstract numabstractcast
numabstractindex numabstractlit numabstractprint
syn keyword splintFlag contained numenummembers numliteral numstructfields
observertrans obviousloopexec
syn keyword splintFlag contained oldstyle onlytrans onlyunqglobaltrans
orconstraint overload
syn keyword splintFlag contained ownedtrans paramimptemp paramuse
parenfileformat partial
syn keyword splintFlag contained passunknown portability predassign
predbool predboolint
syn keyword splintFlag contained predboolothers predboolptr preproc
protoparammatch protoparamname
syn keyword splintFlag contained protoparamprefix protoparamprefixexclude
ptrarith ptrcompare ptrnegate
syn keyword splintFlag contained quiet readonlystrings readonlytrans
realcompare redecl
syn keyword splintFlag contained redef redundantconstraints
redundantsharequal refcounttrans relaxquals
syn keyword splintFlag contained relaxtypes repeatunrecog repexpose
retalias retexpose
syn keyword splintFlag contained retimponly retval retvalbool retvalint
retvalother
syn keyword splintFlag contained sefparams sefuncon shadow sharedtrans
shiftimplementation
syn keyword splintFlag contained shiftnegative shortint showallconjs
showcolumn showconstraintlocation
syn keyword splintFlag contained showconstraintparens showdeephistory
showfunc showloadloc showscan
syn keyword splintFlag contained showsourceloc showsummary
sizeofformalarray sizeoftype skipisoheaders
syn keyword splintFlag contained skipposixheaders slashslashcomment slovak
slovakconsts slovakfcns
syn keyword splintFlag contained slovakmacros slovaktypes slovakvars
specglobimponly specimponly
syn keyword splintFlag contained specmacros specretimponly
specstructimponly specundecl specundef
syn keyword splintFlag contained stackref statemerge statetransfer
staticinittrans statictrans
syn keyword splintFlag contained strictbranchstate strictdestroy strictops
strictusereleased stringliterallen
syn keyword splintFlag contained stringliteralnoroom
stringliteralnoroomfinalnull stringliteralsmaller stringliteraltoolong
structimponly
syn keyword splintFlag contained superuser switchloopbreak
switchswitchbreak syntax sysdirerrors
syn keyword splintFlag contained sysdirexpandmacros sysunrecog tagprefix
tagprefixexclude temptrans
syn keyword splintFlag contained tmpcomments toctou topuse trytorecover
type
syn keyword splintFlag contained typeprefix typeprefixexclude typeuse
uncheckedglobalias uncheckedmacroprefix
syn keyword splintFlag contained uncheckedmacroprefixexclude uniondef
unixstandard unqualifiedinittrans unqualifiedtrans
syn keyword splintFlag contained unreachable unrecog unrecogcomments
unrecogdirective unrecogflagcomments
syn keyword splintFlag contained unsignedcompare unusedspecial usedef
usereleased usevarargs
syn keyword splintFlag contained varuse voidabstract warnflags
warnlintcomments warnmissingglobs
syn keyword splintFlag contained warnmissingglobsnoglobs warnposixheaders
warnrc warnsysfiles warnunixlib
syn keyword splintFlag contained warnuse whileblock whileempty
whileloopexec zerobool
syn keyword splintFlag contained zeroptr
"				       Global Flags:
syn keyword splintGlobalFlag contained csv dump errorstream
errorstreamstderr errorstreamstdout
syn keyword splintGlobalFlag contained expect f help i isolib
syn keyword splintGlobalFlag contained larchpath lclexpect lclimportdir lcs
lh
syn keyword splintGlobalFlag contained load messagestream
messagestreamstderr messagestreamstdout mts
syn keyword splintGlobalFlag contained neverinclude nof nolib posixlib
posixstrictlib
syn keyword splintGlobalFlag contained showalluses singleinclude
skipsysheaders stats streamoverwrite
syn keyword splintGlobalFlag contained strictlib supcounts sysdirs timedist
tmpdir
syn keyword splintGlobalFlag contained unixlib unixstrictlib warningstream
warningstreamstderr warningstreamstdout
syn keyword splintGlobalFlag contained whichlib
syn match   splintFlagExpr contained "[\+\-\=]"
nextgroup=splintFlag,splintGlobalFlag

" detect missing /*@ and wrong */
syn match	splintAnnError	"@\*/"
syn cluster	cCommentGroup	add=splintAnnError
syn match	splintAnnError2	"[^@]\*/"hs=s+1 contained
syn region	splintAnnotation start="/\*@" end="@\*/"
contains=@splintAnnotElem,cType keepend
syn match	splintShortAnn	"/\*@\*/"
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
syn
cluster	splintAllStuff	contains=@splintAnnotElem,splintFlag,splintGlobalFlag
syn cluster	cParenGroup	add=@splintAllStuff
syn cluster	cPreProcGroup	add=@splintAllStuff
syn cluster	cMultiGroup	add=@splintAllStuff

" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have
highlighting yet
if version >= 508 || !exists("did_splint_syntax_inits")
  if version < 508
    let did_splint_syntax_inits = 1
    command -nargs=+ HiLink hi link <args>
  else
    command -nargs=+ HiLink hi def link <args>
  endif

  HiLink splintShortAnn		splintAnnotation
  HiLink splintAnnotation	Comment
  HiLink splintAnnError		splintError
  HiLink splintAnnError2	splintError
  HiLink splintFlag		SpecialComment
  HiLink splintGlobalFlag	splintError
  HiLink splintSpecialAnnot	splintAnnKey
  HiLink splintStateAnnot	splintAnnKey
  HiLink splintSpecTag		splintAnnKey
  HiLink splintModifies		splintAnnKey
  HiLink splintRequires		splintAnnKey
  HiLink splintGlobals		splintAnnKey
  HiLink splintGlobitem		Constant
  HiLink splintGlobannot	splintAnnKey
  HiLink splintWarning		splintAnnKey
  HiLink splintModitem		Constant
  HiLink splintIter		splintAnnKey
  HiLink splintConst		splintAnnKey
  HiLink splintAlt		splintAnnKey
  HiLink splintType		splintAnnKey
  HiLink splintGlobalType	splintAnnKey
  HiLink splintMemMgm		splintAnnKey
  HiLink splintAlias		splintAnnKey
  HiLink splintExposure		splintAnnKey
  HiLink splintDefState		splintAnnKey
  HiLink splintGlobState	splintAnnKey
  HiLink splintNullState	splintAnnKey
  HiLink splintNullPred		splintAnnKey
  HiLink splintExit		splintAnnKey
  HiLink splintExec		splintAnnKey
  HiLink splintSef		splintAnnKey
  HiLink splintDecl		splintAnnKey
  HiLink splintCase		splintAnnKey
  HiLink splintBreak		splintAnnKey
  HiLink splintUnreach		splintAnnKey
  HiLink splintSpecFunc		splintAnnKey
  HiLink splintErrSupp		splintAnnKey
  HiLink splintTypeAcc		splintAnnKey
  HiLink splintMacro		splintAnnKey
  HiLink splintSpecType		splintAnnKey
  HiLink splintAnnKey		Type
  HiLink splintError		Error

  delcommand HiLink
endif

let b:current_syntax = "splint"

" vim: ts=8