neovim

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

murphi.vim (4579B)


      1 " Vim syntax file
      2 " Language: Murphi model checking language
      3 " Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
      4 " Last Change: 2019 Aug 27
      5 " Version: 2
      6 " Remark: Originally authored by Diego Ongaro <ongaro@cs.stanford.edu> 
      7 
      8 if version < 600
      9  syntax clear
     10 elseif exists("b:current_syntax")
     11  finish
     12 endif
     13 
     14 " Keywords are case insensitive.
     15 " Keep these in alphabetical order.
     16 syntax case ignore
     17 syn keyword murphiKeyword       alias
     18 syn keyword murphiStructure     array
     19 syn keyword murphiKeyword       assert
     20 syn keyword murphiKeyword       begin
     21 syn keyword murphiType          boolean
     22 syn keyword murphiKeyword       by
     23 syn keyword murphiLabel         case
     24 syn keyword murphiKeyword       clear
     25 syn keyword murphiLabel         const
     26 syn keyword murphiRepeat        do
     27 syn keyword murphiConditional   else
     28 syn keyword murphiConditional   elsif
     29 syn keyword murphiKeyword       end
     30 syn keyword murphiKeyword       endalias
     31 syn keyword murphiRepeat        endexists
     32 syn keyword murphiRepeat        endfor
     33 syn keyword murphiRepeat        endforall
     34 syn keyword murphiKeyword       endfunction
     35 syn keyword murphiConditional   endif
     36 syn keyword murphiKeyword       endprocedure
     37 syn keyword murphiStructure     endrecord
     38 syn keyword murphiKeyword       endrule
     39 syn keyword murphiKeyword       endruleset
     40 syn keyword murphiKeyword       endstartstate
     41 syn keyword murphiConditional   endswitch
     42 syn keyword murphiRepeat        endwhile
     43 syn keyword murphiStructure     enum
     44 syn keyword murphiKeyword       error
     45 syn keyword murphiRepeat        exists
     46 syn keyword murphiBoolean       false
     47 syn keyword murphiRepeat        for
     48 syn keyword murphiRepeat        forall
     49 syn keyword murphiKeyword       function
     50 syn keyword murphiConditional   if
     51 syn keyword murphiKeyword       in
     52 syn keyword murphiKeyword       interleaved
     53 syn keyword murphiLabel         invariant
     54 syn keyword murphiFunction      ismember
     55 syn keyword murphiFunction      isundefined
     56 syn keyword murphiKeyword       log
     57 syn keyword murphiStructure     of
     58 syn keyword murphiType          multiset
     59 syn keyword murphiFunction      multisetadd
     60 syn keyword murphiFunction      multisetcount
     61 syn keyword murphiFunction      multisetremove
     62 syn keyword murphiFunction      multisetremovepred
     63 syn keyword murphiKeyword       procedure
     64 syn keyword murphiKeyword       program
     65 syn keyword murphiKeyword       put
     66 syn keyword murphiStructure     record
     67 syn keyword murphiKeyword       return
     68 syn keyword murphiLabel         rule
     69 syn keyword murphiLabel         ruleset
     70 syn keyword murphiType          scalarset
     71 syn keyword murphiLabel         startstate
     72 syn keyword murphiConditional   switch
     73 syn keyword murphiConditional   then
     74 syn keyword murphiRepeat        to
     75 syn keyword murphiKeyword       traceuntil
     76 syn keyword murphiBoolean       true
     77 syn keyword murphiLabel         type
     78 syn keyword murphiKeyword       undefine
     79 syn keyword murphiStructure     union
     80 syn keyword murphiLabel         var
     81 syn keyword murphiRepeat        while
     82 
     83 syn keyword murphiTodo contained todo xxx fixme
     84 syntax case match
     85 
     86 " Integers.
     87 syn match murphiNumber "\<\d\+\>"
     88 
     89 " Operators and special characters.
     90 syn match murphiOperator "[\+\-\*\/%&|=!<>:\?]\|\."
     91 syn match murphiDelimiter "\(:=\@!\|[;,]\)"
     92 syn match murphiSpecial "[()\[\]]"
     93 
     94 " Double equal sign is a common error: use one equal sign for equality testing.
     95 syn match murphiError "==[^>]"he=e-1
     96 " Double && and || are errors.
     97 syn match murphiError "&&\|||"
     98 
     99 " Strings. This is defined so late so that it overrides previous matches.
    100 syn region murphiString start=+"+ end=+"+
    101 
    102 " Comments. This is defined so late so that it overrides previous matches.
    103 syn region murphiComment start="--" end="$" contains=murphiTodo
    104 syn region murphiComment start="/\*" end="\*/" contains=murphiTodo
    105 
    106 " Link the rules to some groups.
    107 hi def link murphiComment        Comment
    108 hi def link murphiString         String
    109 hi def link murphiNumber         Number
    110 hi def link murphiBoolean        Boolean
    111 hi def link murphiIdentifier     Identifier
    112 hi def link murphiFunction       Function
    113 hi def link murphiStatement      Statement
    114 hi def link murphiConditional    Conditional
    115 hi def link murphiRepeat         Repeat
    116 hi def link murphiLabel          Label
    117 hi def link murphiOperator       Operator
    118 hi def link murphiKeyword        Keyword
    119 hi def link murphiType           Type
    120 hi def link murphiStructure      Structure
    121 hi def link murphiSpecial        Special
    122 hi def link murphiDelimiter      Delimiter
    123 hi def link murphiError          Error
    124 hi def link murphiTodo           Todo
    125 
    126 let b:current_syntax = "murphi"