/runtime/syntax/specman.vim

https://gitlab.com/alx741/neovim · Vim Script · 182 lines · 115 code · 30 blank · 37 comment · 8 complexity · 8d20d68c768122ce305f153e9c1d01cd MD5 · raw file

  1. " Vim syntax file
  2. " Language: SPECMAN E-LANGUAGE
  3. " Maintainer: Or Freund <or@mobilian.com ;omf@gmx.co.uk; OrMeir@yahoo.com>
  4. " Last Update: Wed Oct 24 2001
  5. "---------------------------------------------------------
  6. "| If anyone found an error or fix the parenthesis part |
  7. "| I will be happy to hear about it |
  8. "| Thanks Or. |
  9. "---------------------------------------------------------
  10. " Remove any old syntax stuff hanging around
  11. " For version 5.x: Clear all syntax items
  12. " For version 6.x: Quit when a syntax file was already loaded
  13. if version < 600
  14. syntax clear
  15. elseif exists("b:current_syntax")
  16. finish
  17. endif
  18. syn keyword specmanTodo contained TODO todo ToDo FIXME XXX
  19. syn keyword specmanStatement var instance on compute start event expect check that routine
  20. syn keyword specmanStatement specman is also first only with like
  21. syn keyword specmanStatement list of all radix hex dec bin ignore illegal
  22. syn keyword specmanStatement traceable untraceable
  23. syn keyword specmanStatement cover using count_only trace_only at_least transition item ranges
  24. syn keyword specmanStatement cross text call task within
  25. syn keyword specmanMethod initialize non_terminal testgroup delayed exit finish
  26. syn keyword specmanMethod out append print outf appendf
  27. syn keyword specmanMethod post_generate pre_generate setup_test finalize_test extract_test
  28. syn keyword specmanMethod init run copy as_a set_config dut_error add clear lock quit
  29. syn keyword specmanMethod lock unlock release swap quit to_string value stop_run
  30. syn keyword specmanMethod crc_8 crc_32 crc_32_flip get_config add0 all_indices and_all
  31. syn keyword specmanMethod apply average count delete exists first_index get_indices
  32. syn keyword specmanMethod has insert is_a_permutation is_empty key key_exists key_index
  33. syn keyword specmanMethod last last_index max max_index max_value min min_index
  34. syn keyword specmanMethod min_value or_all pop pop0 push push0 product resize reverse
  35. syn keyword specmanMethod sort split sum top top0 unique clear is_all_iterations
  36. syn keyword specmanMethod get_enclosing_unit hdl_path exec deep_compare deep_compare_physical
  37. syn keyword specmanMethod pack unpack warning error fatal
  38. syn match specmanMethod "size()"
  39. syn keyword specmanPacking packing low high
  40. syn keyword specmanType locker address
  41. syn keyword specmanType body code vec chars
  42. syn keyword specmanType integer real bool int long uint byte bits bit time string
  43. syn keyword specmanType byte_array external_pointer
  44. syn keyword specmanBoolean TRUE FALSE
  45. syn keyword specmanPreCondit #ifdef #ifndef #else
  46. syn keyword specmanConditional choose matches
  47. syn keyword specmanConditional if then else when try
  48. syn keyword specmanLabel case casex casez default
  49. syn keyword specmanLogical and or not xor
  50. syn keyword specmanRepeat until repeat while for from to step each do break continue
  51. syn keyword specmanRepeat before next sequence always -kind network
  52. syn keyword specmanRepeat index it me in new return result select
  53. syn keyword specmanTemporal cycle sample events forever
  54. syn keyword specmanTemporal wait change negedge rise fall delay sync sim true detach eventually emit
  55. syn keyword specmanConstant MAX_INT MIN_INT NULL UNDEF
  56. syn keyword specmanDefine define as computed type extend
  57. syn keyword specmanDefine verilog vhdl variable global sys
  58. syn keyword specmanStructure struct unit
  59. syn keyword specmanInclude import
  60. syn keyword specmanConstraint gen keep keeping soft before
  61. syn keyword specmanSpecial untyped symtab ECHO DOECHO
  62. syn keyword specmanFile files load module ntv source_ref script read write
  63. syn keyword specmanFSM initial idle others posedge clock cycles
  64. syn match specmanOperator "[&|~><!)(*%@+/=?:;}{,.\^\-\[\]]"
  65. syn match specmanOperator "+="
  66. syn match specmanOperator "-="
  67. syn match specmanOperator "*="
  68. syn match specmanComment "//.*" contains=specmanTodo
  69. syn match specmanComment "--.*"
  70. syn region specmanComment start="^'>"hs=s+2 end="^<'"he=e-2
  71. syn match specmanHDL "'[`.a-zA-Z0-9_@\[\]]\+\>'"
  72. syn match specmanCompare "=="
  73. syn match specmanCompare "!==="
  74. syn match specmanCompare "==="
  75. syn match specmanCompare "!="
  76. syn match specmanCompare ">="
  77. syn match specmanCompare "<="
  78. syn match specmanNumber "[0-9]:[0-9]"
  79. syn match specmanNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>"
  80. syn match specmanNumber "0[bB]\s*[0-1_xXzZ?]\+\>"
  81. syn match specmanNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>"
  82. syn match specmanNumber "0[oO]\s*[0-9a-fA-F_xXzZ?]\+\>"
  83. syn match specmanNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>"
  84. syn match specmanNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
  85. syn match specmanNumber "0[xX]\s*[0-9a-fA-F_xXzZ?]\+\>"
  86. syn match specmanNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>"
  87. syn region specmanString start=+"+ end=+"+
  88. "**********************************************************************
  89. " I took this section from c.vim, but I didn't succeed in making it work
  90. " ANY one who dares to jump into this deep water is more than welcome!
  91. "**********************************************************************
  92. ""catch errors caused by wrong parenthesis and brackets
  93. "syn cluster specmanParenGroup contains=specmanParenError
  94. "" ,specmanNumbera,specmanComment
  95. "if exists("specman_no_bracket_error")
  96. "syn region specmanParen transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup
  97. "syn match specmanParenError ")"
  98. "syn match specmanErrInParen contained "[{}]"
  99. "else
  100. "syn region specmanParen transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup,specmanErrInBracket
  101. "syn match specmanParenError "[\])]"
  102. "syn match specmanErrInParen contained "[\]{}]"
  103. "syn region specmanBracket transparent start='\[' end=']' contains=ALLBUT,@specmanParenGroup,specmanErrInParen
  104. "syn match specmanErrInBracket contained "[);{}]"
  105. "endif
  106. "
  107. "Modify the following as needed. The trade-off is performance versus
  108. "functionality.
  109. syn sync lines=50
  110. " Define the default highlighting.
  111. " For version 5.7 and earlier: only when not done already
  112. " For version 5.8 and later: only when an item doesn't have highlighting yet
  113. if version >= 508 || !exists("did_specman_syn_inits")
  114. if version < 508
  115. let did_specman_syn_inits = 1
  116. command -nargs=+ HiLink hi link <args>
  117. else
  118. command -nargs=+ HiLink hi def link <args>
  119. endif
  120. " The default methods for highlighting. Can be overridden later
  121. HiLink specmanConditional Conditional
  122. HiLink specmanConstraint Conditional
  123. HiLink specmanRepeat Repeat
  124. HiLink specmanString String
  125. HiLink specmanComment Comment
  126. HiLink specmanConstant Macro
  127. HiLink specmanNumber Number
  128. HiLink specmanCompare Operator
  129. HiLink specmanOperator Operator
  130. HiLink specmanLogical Operator
  131. HiLink specmanStatement Statement
  132. HiLink specmanHDL SpecialChar
  133. HiLink specmanMethod Function
  134. HiLink specmanInclude Include
  135. HiLink specmanStructure Structure
  136. HiLink specmanBoolean Boolean
  137. HiLink specmanFSM Label
  138. HiLink specmanSpecial Special
  139. HiLink specmanType Type
  140. HiLink specmanTemporal Type
  141. HiLink specmanFile Include
  142. HiLink specmanPreCondit Include
  143. HiLink specmanDefine Typedef
  144. HiLink specmanLabel Label
  145. HiLink specmanPacking keyword
  146. HiLink specmanTodo Todo
  147. HiLink specmanParenError Error
  148. HiLink specmanErrInParen Error
  149. HiLink specmanErrInBracket Error
  150. delcommand HiLink
  151. endif
  152. let b:current_syntax = "specman"