rtl.vim 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. " Vim syntax file
  2. " Language: gcc rtl
  3. " Maintainer: Igor Petushkov <piv-tula@mail.ru>
  4. " Last Change: May 12 17:28:14 MSD 2010
  5. " For version 5.x: Clear all syntax items
  6. " For version 6.x: Quit when a syntax file was already loaded
  7. if version < 600
  8. syntax clear
  9. elseif exists("b:current_syntax")
  10. finish
  11. endif
  12. " Integer number, or floating point number without a dot.
  13. syn match rtlNumber "\<\d\+\>" contained
  14. " file path
  15. syn match rtlPath "[A-Za-z0-9.\/\-_]*\.\(c\|cpp\|h\|hpp\|CC\|f\|f95\)\:\d*"
  16. " String and Character contstants
  17. syn region rtlString start=+"+ end=+"+ contained
  18. " Comments
  19. syn region rtlComment start="^[ \t]*;;" end="$"
  20. " A bunch of useful rtl keywords
  21. syn keyword rtlInsn insn jump_insn call_insn code_label contained
  22. syn keyword rtlInsn barrier note contained
  23. " Modes for regs, expressions
  24. syn keyword rtlModes BI QI HI PSI SI PDI DI TI OI QF HF contained
  25. syn keyword rtlModes TQF SF DF XF SD DD TD TF QQ HQ SQ contained
  26. syn keyword rtlModes DQ TQ UQQ UHQ USQ UDQ HA SA DA TA contained
  27. syn keyword rtlModes UHA USA UDA UTA CC BLK VOID QC HC contained
  28. syn keyword rtlModes SC DC XC TC CHI CSI CDI CTI COI contained
  29. " Comparision operations
  30. syn keyword rtlComparision eq ne gt gtu lt ltu ge geu le leu contained
  31. syn keyword rtlComparision if_then_else cond contained
  32. " Constants
  33. syn keyword rtlConstant const_int const_double const_fixed contained
  34. syn keyword rtlConstant const_vector const_string symbol_ref contained
  35. syn keyword rtlConstant label_ref const high contained
  36. " Registers
  37. syn keyword rtlRegisterMem reg subreg scratch cc0 pc mem contained
  38. syn keyword rtlRegisterMem concatm concatnm contained
  39. " Arithmetic functions
  40. syn keyword rtlArithmetic plus ss_plus us_plus lo_sum minus contained
  41. syn keyword rtlArithmetic ss_minus us_minus compare neg ss_neg contained
  42. syn keyword rtlArithmetic us_neg mult ss_mult us_mult div contained
  43. syn keyword rtlArithmetic ss_div udiv us_div mod umod smin contained
  44. syn keyword rtlArithmetic smax umin umax not and ior xor contained
  45. syn keyword rtlArithmetic ashift ss_ashift us_ashift lshiftrt contained
  46. syn keyword rtlArithmetic ashiftrt rotate rotatert abs sqrt contained
  47. syn keyword rtlArithmetic ffs clz ctz popcount parity bswap contained
  48. " Bit field functions
  49. syn keyword rtlBitField sign_extract zero_extract contained
  50. " Vector operations
  51. syn keyword rtlVector vec_merge vec_select vec_concat contained
  52. syn keyword rtlVector vec_duplicate contained
  53. " Conversions
  54. syn keyword rtlConversion sign_extend zero_extend float_extend contained
  55. syn keyword rtlConversion truncate ss_truncate us_truncate contained
  56. syn keyword rtlConversion float_truncate float unsigned_float contained
  57. syn keyword rtlConversion fix unsigned_fix fract_convert contained
  58. syn keyword rtlConversion sat_fract unsigned_fract_convert contained
  59. syn keyword rtlConversion unsigned_sat_fract contained
  60. " Side effects
  61. syn keyword rtlSideEffect set return call clobber use parallel contained
  62. syn keyword rtlSideEffect cond_exec sequence asm_input unspec contained
  63. syn keyword rtlSideEffect unspec_volatile addr_vec contained
  64. syn keyword rtlSideEffect addr_diff_vec prefetch contained
  65. " Embedded side effects on addresses
  66. syn keyword rtlSideEffect pre_dec pre_inc post_dec post_inc contained
  67. syn keyword rtlSideEffect post_modify pre_modify contained
  68. " Operations
  69. syn region rtlExpression start="(" end=")" contains=ALLBUT,rtlError1
  70. syn region rtlExpression2 start="\[" end="\]" contains=ALL,rtlError2
  71. syn region rtlSpecOperation start="{" end="}" contains=ALLBUT,rtlError3
  72. syn match rtlError1 display ")"
  73. syn match rtlError2 display "]"
  74. syn match rtlError3 display "}"
  75. syn sync minlines=50
  76. " Define the default highlighting.
  77. " For version 5.7 and earlier: only when not done already
  78. " For version 5.8 and later: only when an item doesn't have highlighting yet
  79. if version >= 508 || !exists("did_rtl_syntax_inits")
  80. if version < 508
  81. let did_rtl_syntax_inits = 1
  82. command -nargs=+ HiLink hi link <args>
  83. else
  84. command -nargs=+ HiLink hi def link <args>
  85. endif
  86. HiLink rtlNumber Number
  87. HiLink rtlPath Comment
  88. HiLink rtlString Character
  89. HiLink rtlComment Comment
  90. HiLink rtlModes Type
  91. HiLink rtlComparision Conditional
  92. HiLink rtlInsn Operator
  93. HiLink rtlConstant Constant
  94. HiLink rtlRegisterMem Identifier
  95. HiLink rtlArithmetic Operator
  96. HiLink rtlBitField Operator
  97. HiLink rtlVector Function
  98. HiLink rtlConversion Function
  99. HiLink rtlSideEffect Staement
  100. HiLink rtlExpression Statement
  101. HiLink rtlExpression2 Statement
  102. HiLink rtlSpecOperation Function
  103. HiLink rtlError1 Error
  104. HiLink rtlError2 Error
  105. HiLink rtlError3 Error
  106. delcommand HiLink
  107. endif
  108. let b:current_syntax = "rtl"
  109. " vim: ts=4