neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

splint.vim (15786B)


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