codekingpro/portable-devtools
115k
1" Vim syntax file2" Language: Murphi model checking language3" Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>4" Last Change: 2019 Aug 275" Version: 26" Remark: Originally authored by Diego Ongaro <ongaro@cs.stanford.edu> 7 8if version < 6009 syntax clear10elseif exists("b:current_syntax")11 finish12endif13 14" Keywords are case insensitive.15" Keep these in alphabetical order.16syntax case ignore17syn keyword murphiKeyword alias18syn keyword murphiStructure array19syn keyword murphiKeyword assert20syn keyword murphiKeyword begin21syn keyword murphiType boolean22syn keyword murphiKeyword by23syn keyword murphiLabel case24syn keyword murphiKeyword clear25syn keyword murphiLabel const26syn keyword murphiRepeat do27syn keyword murphiConditional else28syn keyword murphiConditional elsif29syn keyword murphiKeyword end30syn keyword murphiKeyword endalias31syn keyword murphiRepeat endexists32syn keyword murphiRepeat endfor33syn keyword murphiRepeat endforall34syn keyword murphiKeyword endfunction35syn keyword murphiConditional endif36syn keyword murphiKeyword endprocedure37syn keyword murphiStructure endrecord38syn keyword murphiKeyword endrule39syn keyword murphiKeyword endruleset40syn keyword murphiKeyword endstartstate41syn keyword murphiConditional endswitch42syn keyword murphiRepeat endwhile43syn keyword murphiStructure enum44syn keyword murphiKeyword error45syn keyword murphiRepeat exists46syn keyword murphiBoolean false47syn keyword murphiRepeat for48syn keyword murphiRepeat forall49syn keyword murphiKeyword function50syn keyword murphiConditional if51syn keyword murphiKeyword in52syn keyword murphiKeyword interleaved53syn keyword murphiLabel invariant54syn keyword murphiFunction ismember55syn keyword murphiFunction isundefined56syn keyword murphiKeyword log57syn keyword murphiStructure of58syn keyword murphiType multiset59syn keyword murphiFunction multisetadd60syn keyword murphiFunction multisetcount61syn keyword murphiFunction multisetremove62syn keyword murphiFunction multisetremovepred63syn keyword murphiKeyword procedure64syn keyword murphiKeyword program65syn keyword murphiKeyword put66syn keyword murphiStructure record67syn keyword murphiKeyword return68syn keyword murphiLabel rule69syn keyword murphiLabel ruleset70syn keyword murphiType scalarset71syn keyword murphiLabel startstate72syn keyword murphiConditional switch73syn keyword murphiConditional then74syn keyword murphiRepeat to75syn keyword murphiKeyword traceuntil76syn keyword murphiBoolean true77syn keyword murphiLabel type78syn keyword murphiKeyword undefine79syn keyword murphiStructure union80syn keyword murphiLabel var81syn keyword murphiRepeat while82 83syn keyword murphiTodo contained todo xxx fixme84syntax case match85 86" Integers.87syn match murphiNumber "\<\d\+\>"88 89" Operators and special characters.90syn match murphiOperator "[\+\-\*\/%&|=!<>:\?]\|\."91syn match murphiDelimiter "\(:=\@!\|[;,]\)"92syn match murphiSpecial "[()\[\]]"93 94" Double equal sign is a common error: use one equal sign for equality testing.95syn match murphiError "==[^>]"he=e-196" Double && and || are errors.97syn match murphiError "&&\|||"98 99" Strings. This is defined so late so that it overrides previous matches.100syn region murphiString start=+"+ end=+"+101 102" Comments. This is defined so late so that it overrides previous matches.103syn region murphiComment start="--" end="$" contains=murphiTodo104syn region murphiComment start="/\*" end="\*/" contains=murphiTodo105 106" Link the rules to some groups.107hi def link murphiComment Comment108hi def link murphiString String109hi def link murphiNumber Number110hi def link murphiBoolean Boolean111hi def link murphiIdentifier Identifier112hi def link murphiFunction Function113hi def link murphiStatement Statement114hi def link murphiConditional Conditional115hi def link murphiRepeat Repeat116hi def link murphiLabel Label117hi def link murphiOperator Operator118hi def link murphiKeyword Keyword119hi def link murphiType Type120hi def link murphiStructure Structure121hi def link murphiSpecial Special122hi def link murphiDelimiter Delimiter123hi def link murphiError Error124hi def link murphiTodo Todo125 126let b:current_syntax = "murphi"127 