murphi.vim 4.5 KB

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