123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- " 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
- " quit when a syntax file was already loaded
- if exists("b:current_syntax")
- finish
- endif
- " Read the C syntax to start with
- runtime! syntax/c.vim
- " 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.
- " Only when an item doesn't have highlighting yet
- hi def link splintShortAnn splintAnnotation
- hi def link splintAnnotation Comment
- hi def link splintAnnError splintError
- hi def link splintAnnError2 splintError
- hi def link splintFlag SpecialComment
- hi def link splintGlobalFlag splintError
- hi def link splintSpecialAnnot splintAnnKey
- hi def link splintStateAnnot splintAnnKey
- hi def link splintSpecTag splintAnnKey
- hi def link splintModifies splintAnnKey
- hi def link splintRequires splintAnnKey
- hi def link splintGlobals splintAnnKey
- hi def link splintGlobitem Constant
- hi def link splintGlobannot splintAnnKey
- hi def link splintWarning splintAnnKey
- hi def link splintModitem Constant
- hi def link splintIter splintAnnKey
- hi def link splintConst splintAnnKey
- hi def link splintAlt splintAnnKey
- hi def link splintType splintAnnKey
- hi def link splintGlobalType splintAnnKey
- hi def link splintMemMgm splintAnnKey
- hi def link splintAlias splintAnnKey
- hi def link splintExposure splintAnnKey
- hi def link splintDefState splintAnnKey
- hi def link splintGlobState splintAnnKey
- hi def link splintNullState splintAnnKey
- hi def link splintNullPred splintAnnKey
- hi def link splintExit splintAnnKey
- hi def link splintExec splintAnnKey
- hi def link splintSef splintAnnKey
- hi def link splintDecl splintAnnKey
- hi def link splintCase splintAnnKey
- hi def link splintBreak splintAnnKey
- hi def link splintUnreach splintAnnKey
- hi def link splintSpecFunc splintAnnKey
- hi def link splintErrSupp splintAnnKey
- hi def link splintTypeAcc splintAnnKey
- hi def link splintMacro splintAnnKey
- hi def link splintSpecType splintAnnKey
- hi def link splintAnnKey Type
- hi def link splintError Error
- let b:current_syntax = "splint"
- " vim: ts=8
|