mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			128 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language: Murphi model checking language
 | 
						|
" Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
 | 
						|
" Last Change: 2017 Aug 27
 | 
						|
" Version: 2
 | 
						|
" Remark: Originally authored by Diego Ongaro <ongaro@cs.stanford.edu> 
 | 
						|
 | 
						|
if version < 600
 | 
						|
  syntax clear
 | 
						|
elseif exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
" Keywords are case insensitive.
 | 
						|
" Keep these in alphabetical order.
 | 
						|
syntax case ignore
 | 
						|
syn keyword murphiKeyword       alias
 | 
						|
syn keyword murphiStructure     array
 | 
						|
syn keyword murphiKeyword       assert
 | 
						|
syn keyword murphiKeyword       begin
 | 
						|
syn keyword murphiType          boolean
 | 
						|
syn keyword murphiKeyword       by
 | 
						|
syn keyword murphiLabel         case
 | 
						|
syn keyword murphiKeyword       clear
 | 
						|
syn keyword murphiLabel         const
 | 
						|
syn keyword murphiRepeat        do
 | 
						|
syn keyword murphiConditional   else
 | 
						|
syn keyword murphiConditional   elsif
 | 
						|
syn keyword murphiKeyword       end
 | 
						|
syn keyword murphiKeyword       endalias
 | 
						|
syn keyword murphiRepeat        endexists
 | 
						|
syn keyword murphiRepeat        endfor
 | 
						|
syn keyword murphiRepeat        endforall
 | 
						|
syn keyword murphiKeyword       endfunction
 | 
						|
syn keyword murphiConditional   endif
 | 
						|
syn keyword murphiKeyword       endprocedure
 | 
						|
syn keyword murphiStructure     endrecord
 | 
						|
syn keyword murphiKeyword       endrule
 | 
						|
syn keyword murphiKeyword       endruleset
 | 
						|
syn keyword murphiKeyword       endstartstate
 | 
						|
syn keyword murphiConditional   endswitch
 | 
						|
syn keyword murphiRepeat        endwhile
 | 
						|
syn keyword murphiStructure     enum
 | 
						|
syn keyword murphiKeyword       error
 | 
						|
syn keyword murphiRepeat        exists
 | 
						|
syn keyword murphiBoolean       false
 | 
						|
syn keyword murphiRepeat        for
 | 
						|
syn keyword murphiRepeat        forall
 | 
						|
syn keyword murphiKeyword       function
 | 
						|
syn keyword murphiConditional   if
 | 
						|
syn keyword murphiKeyword       in
 | 
						|
syn keyword murphiKeyword       interleaved
 | 
						|
syn keyword murphiLabel         invariant
 | 
						|
syn keyword murphiFunction      ismember
 | 
						|
syn keyword murphiFunction      isundefined
 | 
						|
syn keyword murphiKeyword       log
 | 
						|
syn keyword murphiStructure     of
 | 
						|
syn keyword murphiType          multiset
 | 
						|
syn keyword murphiFunction      multisetadd
 | 
						|
syn keyword murphiFunction      multisetcount
 | 
						|
syn keyword murphiFunction      multisetremove
 | 
						|
syn keyword murphiFunction      multisetremovepred
 | 
						|
syn keyword murphiKeyword       procedure
 | 
						|
syn keyword murphiKeyword       process
 | 
						|
syn keyword murphiKeyword       program
 | 
						|
syn keyword murphiKeyword       put
 | 
						|
syn keyword murphiStructure     record
 | 
						|
syn keyword murphiKeyword       return
 | 
						|
syn keyword murphiLabel         rule
 | 
						|
syn keyword murphiLabel         ruleset
 | 
						|
syn keyword murphiType          scalarset
 | 
						|
syn keyword murphiLabel         startstate
 | 
						|
syn keyword murphiConditional   switch
 | 
						|
syn keyword murphiConditional   then
 | 
						|
syn keyword murphiRepeat        to
 | 
						|
syn keyword murphiKeyword       traceuntil
 | 
						|
syn keyword murphiBoolean       true
 | 
						|
syn keyword murphiLabel         type
 | 
						|
syn keyword murphiKeyword       undefine
 | 
						|
syn keyword murphiStructure     union
 | 
						|
syn keyword murphiLabel         var
 | 
						|
syn keyword murphiRepeat        while
 | 
						|
 | 
						|
syn keyword murphiTodo contained todo xxx fixme
 | 
						|
syntax case match
 | 
						|
 | 
						|
" Integers.
 | 
						|
syn match murphiNumber "\<\d\+\>"
 | 
						|
 | 
						|
" Operators and special characters.
 | 
						|
syn match murphiOperator "[\+\-\*\/%&|=!<>:\?]\|\."
 | 
						|
syn match murphiDelimiter "\(:[^=]\|[;,]\)"
 | 
						|
syn match murphiSpecial "[()\[\]]"
 | 
						|
 | 
						|
" Double equal sign is a common error: use one equal sign for equality testing.
 | 
						|
syn match murphiError "==[^>]"he=e-1
 | 
						|
" Double && and || are errors.
 | 
						|
syn match murphiError "&&\|||"
 | 
						|
 | 
						|
" Strings. This is defined so late so that it overrides previous matches.
 | 
						|
syn region murphiString start=+"+ end=+"+
 | 
						|
 | 
						|
" Comments. This is defined so late so that it overrides previous matches.
 | 
						|
syn region murphiComment start="--" end="$" contains=murphiTodo
 | 
						|
syn region murphiComment start="/\*" end="\*/" contains=murphiTodo
 | 
						|
 | 
						|
" Link the rules to some groups.
 | 
						|
hi def link murphiComment        Comment
 | 
						|
hi def link murphiString         String
 | 
						|
hi def link murphiNumber         Number
 | 
						|
hi def link murphiBoolean        Boolean
 | 
						|
hi def link murphiIdentifier     Identifier
 | 
						|
hi def link murphiFunction       Function
 | 
						|
hi def link murphiStatement      Statement
 | 
						|
hi def link murphiConditional    Conditional
 | 
						|
hi def link murphiRepeat         Repeat
 | 
						|
hi def link murphiLabel          Label
 | 
						|
hi def link murphiOperator       Operator
 | 
						|
hi def link murphiKeyword        Keyword
 | 
						|
hi def link murphiType           Type
 | 
						|
hi def link murphiStructure      Structure
 | 
						|
hi def link murphiSpecial        Special
 | 
						|
hi def link murphiDelimiter      Delimiter
 | 
						|
hi def link murphiError          Error
 | 
						|
hi def link murphiTodo           Todo
 | 
						|
 | 
						|
let b:current_syntax = "murphi"
 |