| 
									
										
										
										
											2017-07-15 13:53:23 +02:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language: Murphi model checking language | 
					
						
							|  |  |  | " Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com> | 
					
						
							| 
									
										
										
										
											2017-08-27 16:52:01 +02:00
										 |  |  | " Last Change: 2017 Aug 27 | 
					
						
							| 
									
										
										
										
											2017-07-15 13:53:23 +02:00
										 |  |  | " 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. | 
					
						
							| 
									
										
										
										
											2017-08-27 16:52:01 +02:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2017-07-15 13:53:23 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "murphi" |