mirror of
https://github.com/neovim/neovim.git
synced 2024-12-28 14:31:13 -07:00
86b596dc7a
Updated runtime files. Remove HiLink commands.
f37506f60f
183 lines
7.0 KiB
VimL
183 lines
7.0 KiB
VimL
" Vim syntax file
|
|
" Language: CSP (Communication Sequential Processes, using FDR input syntax)
|
|
" Maintainer: Jan Bredereke <brederek@tzi.de>
|
|
" Version: 0.6.0
|
|
" Last change: Mon Mar 25, 2002
|
|
" URL: http://www.tzi.de/~brederek/vim/
|
|
" Copying: You may distribute and use this file freely, in the same
|
|
" way as the vim editor itself.
|
|
"
|
|
" To Do: - Probably I missed some keywords or operators, please
|
|
" fix them and notify me, the maintainer.
|
|
" - Currently, we do lexical highlighting only. It would be
|
|
" nice to have more actual syntax checks, including
|
|
" highlighting of wrong syntax.
|
|
" - The additional syntax for the RT-Tester (pseudo-comments)
|
|
" should be optional.
|
|
|
|
" quit when a syntax file was already loaded
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
" case is significant to FDR:
|
|
syn case match
|
|
|
|
" Block comments in CSP are between {- and -}
|
|
syn region cspComment start="{-" end="-}" contains=cspTodo
|
|
" Single-line comments start with --
|
|
syn region cspComment start="--" end="$" contains=cspTodo,cspOldRttComment,cspSdlRttComment keepend
|
|
|
|
" Numbers:
|
|
syn match cspNumber "\<\d\+\>"
|
|
|
|
" Conditionals:
|
|
syn keyword cspConditional if then else
|
|
|
|
" Operators on processes:
|
|
" -> ? : ! ' ; /\ \ [] |~| [> & [[..<-..]] ||| [|..|] || [..<->..] ; : @ |||
|
|
syn match cspOperator "->"
|
|
syn match cspOperator "/\\"
|
|
syn match cspOperator "[^/]\\"lc=1
|
|
syn match cspOperator "\[\]"
|
|
syn match cspOperator "|\~|"
|
|
syn match cspOperator "\[>"
|
|
syn match cspOperator "\[\["
|
|
syn match cspOperator "\]\]"
|
|
syn match cspOperator "<-"
|
|
syn match cspOperator "|||"
|
|
syn match cspOperator "[^|]||[^|]"lc=1,me=e-1
|
|
syn match cspOperator "[^|{\~]|[^|}\~]"lc=1,me=e-1
|
|
syn match cspOperator "\[|"
|
|
syn match cspOperator "|\]"
|
|
syn match cspOperator "\[[^>]"me=e-1
|
|
syn match cspOperator "\]"
|
|
syn match cspOperator "<->"
|
|
syn match cspOperator "[?:!';@]"
|
|
syn match cspOperator "&"
|
|
syn match cspOperator "\."
|
|
|
|
" (not on processes:)
|
|
" syn match cspDelimiter "{|"
|
|
" syn match cspDelimiter "|}"
|
|
" syn match cspDelimiter "{[^-|]"me=e-1
|
|
" syn match cspDelimiter "[^-|]}"lc=1
|
|
|
|
" Keywords:
|
|
syn keyword cspKeyword length null head tail concat elem
|
|
syn keyword cspKeyword union inter diff Union Inter member card
|
|
syn keyword cspKeyword empty set Set Seq
|
|
syn keyword cspKeyword true false and or not within let
|
|
syn keyword cspKeyword nametype datatype diamond normal
|
|
syn keyword cspKeyword sbisim tau_loop_factor model_compress
|
|
syn keyword cspKeyword explicate
|
|
syn match cspKeyword "transparent"
|
|
syn keyword cspKeyword external chase prioritize
|
|
syn keyword cspKeyword channel Events
|
|
syn keyword cspKeyword extensions productions
|
|
syn keyword cspKeyword Bool Int
|
|
|
|
" Reserved keywords:
|
|
syn keyword cspReserved attribute embed module subtype
|
|
|
|
" Include:
|
|
syn region cspInclude matchgroup=cspIncludeKeyword start="^include" end="$" keepend contains=cspIncludeArg
|
|
syn region cspIncludeArg start='\s\+\"' end= '\"\s*' contained
|
|
|
|
" Assertions:
|
|
syn keyword cspAssert assert deterministic divergence free deadlock
|
|
syn keyword cspAssert livelock
|
|
syn match cspAssert "\[T="
|
|
syn match cspAssert "\[F="
|
|
syn match cspAssert "\[FD="
|
|
syn match cspAssert "\[FD\]"
|
|
syn match cspAssert "\[F\]"
|
|
|
|
" Types and Sets
|
|
" (first char a capital, later at least one lower case, no trailing underscore):
|
|
syn match cspType "\<_*[A-Z][A-Z_0-9]*[a-z]\(\|[A-Za-z_0-9]*[A-Za-z0-9]\)\>"
|
|
|
|
" Processes (all upper case, no trailing underscore):
|
|
" (For identifiers that could be types or sets, too, this second rule set
|
|
" wins.)
|
|
syn match cspProcess "\<[A-Z_][A-Z_0-9]*[A-Z0-9]\>"
|
|
syn match cspProcess "\<[A-Z_]\>"
|
|
|
|
" reserved identifiers for tool output (ending in underscore):
|
|
syn match cspReservedIdentifier "\<[A-Za-z_][A-Za-z_0-9]*_\>"
|
|
|
|
" ToDo markers:
|
|
syn match cspTodo "FIXME" contained
|
|
syn match cspTodo "TODO" contained
|
|
syn match cspTodo "!!!" contained
|
|
|
|
" RT-Tester pseudo comments:
|
|
" (The now obsolete syntax:)
|
|
syn match cspOldRttComment "^--\$\$AM_UNDEF"lc=2 contained
|
|
syn match cspOldRttComment "^--\$\$AM_ERROR"lc=2 contained
|
|
syn match cspOldRttComment "^--\$\$AM_WARNING"lc=2 contained
|
|
syn match cspOldRttComment "^--\$\$AM_SET_TIMER"lc=2 contained
|
|
syn match cspOldRttComment "^--\$\$AM_RESET_TIMER"lc=2 contained
|
|
syn match cspOldRttComment "^--\$\$AM_ELAPSED_TIMER"lc=2 contained
|
|
syn match cspOldRttComment "^--\$\$AM_OUTPUT"lc=2 contained
|
|
syn match cspOldRttComment "^--\$\$AM_INPUT"lc=2 contained
|
|
" (The current syntax:)
|
|
syn region cspRttPragma matchgroup=cspRttPragmaKeyword start="^pragma\s\+" end="\s*$" oneline keepend contains=cspRttPragmaArg,cspRttPragmaSdl
|
|
syn keyword cspRttPragmaArg AM_ERROR AM_WARNING AM_SET_TIMER contained
|
|
syn keyword cspRttPragmaArg AM_RESET_TIMER AM_ELAPSED_TIMER contained
|
|
syn keyword cspRttPragmaArg AM_OUTPUT AM_INPUT AM_INTERNAL contained
|
|
" the "SDL_MATCH" extension:
|
|
syn region cspRttPragmaSdl matchgroup=cspRttPragmaKeyword start="SDL_MATCH\s\+" end="\s*$" contains=cspRttPragmaSdlArg contained
|
|
syn keyword cspRttPragmaSdlArg TRANSLATE nextgroup=cspRttPragmaSdlTransName contained
|
|
syn keyword cspRttPragmaSdlArg PARAM SKIP OPTIONAL CHOICE ARRAY nextgroup=cspRttPragmaSdlName contained
|
|
syn match cspRttPragmaSdlName "\s*\S\+\s*" nextgroup=cspRttPragmaSdlTail contained
|
|
syn region cspRttPragmaSdlTail start="" end="\s*$" contains=cspRttPragmaSdlTailArg contained
|
|
syn keyword cspRttPragmaSdlTailArg SUBSET_USED DEFAULT_VALUE Present contained
|
|
syn match cspRttPragmaSdlTransName "\s*\w\+\s*" nextgroup=cspRttPragmaSdlTransTail contained
|
|
syn region cspRttPragmaSdlTransTail start="" end="\s*$" contains=cspRttPragmaSdlTransTailArg contained
|
|
syn keyword cspRttPragmaSdlTransTailArg sizeof contained
|
|
syn match cspRttPragmaSdlTransTailArg "\*" contained
|
|
syn match cspRttPragmaSdlTransTailArg "(" contained
|
|
syn match cspRttPragmaSdlTransTailArg ")" contained
|
|
|
|
" temporary syntax extension for commented-out "pragma SDL_MATCH":
|
|
syn match cspSdlRttComment "pragma\s\+SDL_MATCH\s\+" nextgroup=cspRttPragmaSdlArg contained
|
|
|
|
syn sync lines=250
|
|
|
|
" Define the default highlighting.
|
|
" Only when an item doesn't have highlighting yet
|
|
|
|
" The default methods for highlighting. Can be overridden later
|
|
" (For vim version <=5.7, the command groups are defined in
|
|
" $VIMRUNTIME/syntax/synload.vim )
|
|
hi def link cspComment Comment
|
|
hi def link cspNumber Number
|
|
hi def link cspConditional Conditional
|
|
hi def link cspOperator Delimiter
|
|
hi def link cspKeyword Keyword
|
|
hi def link cspReserved SpecialChar
|
|
hi def link cspInclude Error
|
|
hi def link cspIncludeKeyword Include
|
|
hi def link cspIncludeArg Include
|
|
hi def link cspAssert PreCondit
|
|
hi def link cspType Type
|
|
hi def link cspProcess Function
|
|
hi def link cspTodo Todo
|
|
hi def link cspOldRttComment Define
|
|
hi def link cspRttPragmaKeyword Define
|
|
hi def link cspSdlRttComment Define
|
|
hi def link cspRttPragmaArg Define
|
|
hi def link cspRttPragmaSdlArg Define
|
|
hi def link cspRttPragmaSdlName Default
|
|
hi def link cspRttPragmaSdlTailArg Define
|
|
hi def link cspRttPragmaSdlTransName Default
|
|
hi def link cspRttPragmaSdlTransTailArg Define
|
|
hi def link cspReservedIdentifier Error
|
|
" (Currently unused vim method: Debug)
|
|
|
|
|
|
let b:current_syntax = "csp"
|
|
|
|
" vim: ts=8
|