rpl.vim 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484
  1. " Vim syntax file
  2. " Language: RPL/2
  3. " Version: 0.15.15 against RPL/2 version 4.00pre7i
  4. " Last Change: 2012 Feb 03 by Thilo Six
  5. " Maintainer: Joël BERTRAND <rpl2@free.fr>
  6. " URL: http://www.makalis.fr/~bertrand/rpl2/download/vim/indent/rpl.vim
  7. " Credits: Nothing
  8. " quit when a syntax file was already loaded
  9. if exists("b:current_syntax")
  10. finish
  11. endif
  12. let s:cpo_save = &cpo
  13. set cpo&vim
  14. " Keyword characters (not used)
  15. " set iskeyword=33-127
  16. " Case sensitive
  17. syntax case match
  18. " Constants
  19. syntax match rplConstant "\(^\|\s\+\)\(e\|i\)\ze\($\|\s\+\)"
  20. " Any binary number
  21. syntax match rplBinaryError "\(^\|\s\+\)#\s*\S\+b\ze"
  22. syntax match rplBinary "\(^\|\s\+\)#\s*[01]\+b\ze\($\|\s\+\)"
  23. syntax match rplOctalError "\(^\|\s\+\)#\s*\S\+o\ze"
  24. syntax match rplOctal "\(^\|\s\+\)#\s*\o\+o\ze\($\|\s\+\)"
  25. syntax match rplDecimalError "\(^\|\s\+\)#\s*\S\+d\ze"
  26. syntax match rplDecimal "\(^\|\s\+\)#\s*\d\+d\ze\($\|\s\+\)"
  27. syntax match rplHexadecimalError "\(^\|\s\+\)#\s*\S\+h\ze"
  28. syntax match rplHexadecimal "\(^\|\s\+\)#\s*\x\+h\ze\($\|\s\+\)"
  29. " Case unsensitive
  30. syntax case ignore
  31. syntax match rplControl "\(^\|\s\+\)abort\ze\($\|\s\+\)"
  32. syntax match rplControl "\(^\|\s\+\)kill\ze\($\|\s\+\)"
  33. syntax match rplControl "\(^\|\s\+\)cont\ze\($\|\s\+\)"
  34. syntax match rplControl "\(^\|\s\+\)halt\ze\($\|\s\+\)"
  35. syntax match rplControl "\(^\|\s\+\)cmlf\ze\($\|\s\+\)"
  36. syntax match rplControl "\(^\|\s\+\)sst\ze\($\|\s\+\)"
  37. syntax match rplConstant "\(^\|\s\+\)pi\ze\($\|\s\+\)"
  38. syntax match rplStatement "\(^\|\s\+\)return\ze\($\|\s\+\)"
  39. syntax match rplStatement "\(^\|\s\+\)last\ze\($\|\s\+\)"
  40. syntax match rplStatement "\(^\|\s\+\)syzeval\ze\($\|\s\+\)"
  41. syntax match rplStatement "\(^\|\s\+\)wait\ze\($\|\s\+\)"
  42. syntax match rplStatement "\(^\|\s\+\)type\ze\($\|\s\+\)"
  43. syntax match rplStatement "\(^\|\s\+\)kind\ze\($\|\s\+\)"
  44. syntax match rplStatement "\(^\|\s\+\)eval\ze\($\|\s\+\)"
  45. syntax match rplStatement "\(^\|\s\+\)use\ze\($\|\s\+\)"
  46. syntax match rplStatement "\(^\|\s\+\)remove\ze\($\|\s\+\)"
  47. syntax match rplStatement "\(^\|\s\+\)external\ze\($\|\s\+\)"
  48. syntax match rplStatement "\(^\|\s\+\)dup\([2n]\|\)\ze\($\|\s\+\)"
  49. syntax match rplStatement "\(^\|\s\+\)drop\([2n]\|\)\ze\($\|\s\+\)"
  50. syntax match rplStatement "\(^\|\s\+\)depth\ze\($\|\s\+\)"
  51. syntax match rplStatement "\(^\|\s\+\)roll\(d\|\)\ze\($\|\s\+\)"
  52. syntax match rplStatement "\(^\|\s\+\)pick\ze\($\|\s\+\)"
  53. syntax match rplStatement "\(^\|\s\+\)rot\ze\($\|\s\+\)"
  54. syntax match rplStatement "\(^\|\s\+\)swap\ze\($\|\s\+\)"
  55. syntax match rplStatement "\(^\|\s\+\)over\ze\($\|\s\+\)"
  56. syntax match rplStatement "\(^\|\s\+\)clear\ze\($\|\s\+\)"
  57. syntax match rplStatement "\(^\|\s\+\)warranty\ze\($\|\s\+\)"
  58. syntax match rplStatement "\(^\|\s\+\)copyright\ze\($\|\s\+\)"
  59. syntax match rplStatement "\(^\|\s\+\)convert\ze\($\|\s\+\)"
  60. syntax match rplStatement "\(^\|\s\+\)date\ze\($\|\s\+\)"
  61. syntax match rplStatement "\(^\|\s\+\)time\ze\($\|\s\+\)"
  62. syntax match rplStatement "\(^\|\s\+\)mem\ze\($\|\s\+\)"
  63. syntax match rplStatement "\(^\|\s\+\)clmf\ze\($\|\s\+\)"
  64. syntax match rplStatement "\(^\|\s\+\)->num\ze\($\|\s\+\)"
  65. syntax match rplStatement "\(^\|\s\+\)help\ze\($\|\s\+\)"
  66. syntax match rplStorage "\(^\|\s\+\)get\(i\|r\|c\|\)\ze\($\|\s\+\)"
  67. syntax match rplStorage "\(^\|\s\+\)put\(i\|r\|c\|\)\ze\($\|\s\+\)"
  68. syntax match rplStorage "\(^\|\s\+\)rcl\ze\($\|\s\+\)"
  69. syntax match rplStorage "\(^\|\s\+\)purge\ze\($\|\s\+\)"
  70. syntax match rplStorage "\(^\|\s\+\)sinv\ze\($\|\s\+\)"
  71. syntax match rplStorage "\(^\|\s\+\)sneg\ze\($\|\s\+\)"
  72. syntax match rplStorage "\(^\|\s\+\)sconj\ze\($\|\s\+\)"
  73. syntax match rplStorage "\(^\|\s\+\)steq\ze\($\|\s\+\)"
  74. syntax match rplStorage "\(^\|\s\+\)rceq\ze\($\|\s\+\)"
  75. syntax match rplStorage "\(^\|\s\+\)vars\ze\($\|\s\+\)"
  76. syntax match rplStorage "\(^\|\s\+\)clusr\ze\($\|\s\+\)"
  77. syntax match rplStorage "\(^\|\s\+\)sto\([+-/\*]\|\)\ze\($\|\s\+\)"
  78. syntax match rplAlgConditional "\(^\|\s\+\)ift\(e\|\)\ze\($\|\s\+\)"
  79. syntax match rplOperator "\(^\|\s\+\)and\ze\($\|\s\+\)"
  80. syntax match rplOperator "\(^\|\s\+\)\(x\|\)or\ze\($\|\s\+\)"
  81. syntax match rplOperator "\(^\|\s\+\)not\ze\($\|\s\+\)"
  82. syntax match rplOperator "\(^\|\s\+\)same\ze\($\|\s\+\)"
  83. syntax match rplOperator "\(^\|\s\+\)==\ze\($\|\s\+\)"
  84. syntax match rplOperator "\(^\|\s\+\)<=\ze\($\|\s\+\)"
  85. syntax match rplOperator "\(^\|\s\+\)=<\ze\($\|\s\+\)"
  86. syntax match rplOperator "\(^\|\s\+\)=>\ze\($\|\s\+\)"
  87. syntax match rplOperator "\(^\|\s\+\)>=\ze\($\|\s\+\)"
  88. syntax match rplOperator "\(^\|\s\+\)<>\ze\($\|\s\+\)"
  89. syntax match rplOperator "\(^\|\s\+\)>\ze\($\|\s\+\)"
  90. syntax match rplOperator "\(^\|\s\+\)<\ze\($\|\s\+\)"
  91. syntax match rplOperator "\(^\|\s\+\)[+-]\ze\($\|\s\+\)"
  92. syntax match rplOperator "\(^\|\s\+\)[/\*]\ze\($\|\s\+\)"
  93. syntax match rplOperator "\(^\|\s\+\)\^\ze\($\|\s\+\)"
  94. syntax match rplOperator "\(^\|\s\+\)\*\*\ze\($\|\s\+\)"
  95. syntax match rplBoolean "\(^\|\s\+\)true\ze\($\|\s\+\)"
  96. syntax match rplBoolean "\(^\|\s\+\)false\ze\($\|\s\+\)"
  97. syntax match rplReadWrite "\(^\|\s\+\)store\ze\($\|\s\+\)"
  98. syntax match rplReadWrite "\(^\|\s\+\)recall\ze\($\|\s\+\)"
  99. syntax match rplReadWrite "\(^\|\s\+\)\(\|wf\|un\)lock\ze\($\|\s\+\)"
  100. syntax match rplReadWrite "\(^\|\s\+\)open\ze\($\|\s\+\)"
  101. syntax match rplReadWrite "\(^\|\s\+\)close\ze\($\|\s\+\)"
  102. syntax match rplReadWrite "\(^\|\s\+\)delete\ze\($\|\s\+\)"
  103. syntax match rplReadWrite "\(^\|\s\+\)create\ze\($\|\s\+\)"
  104. syntax match rplReadWrite "\(^\|\s\+\)format\ze\($\|\s\+\)"
  105. syntax match rplReadWrite "\(^\|\s\+\)rewind\ze\($\|\s\+\)"
  106. syntax match rplReadWrite "\(^\|\s\+\)backspace\ze\($\|\s\+\)"
  107. syntax match rplReadWrite "\(^\|\s\+\)\(\|re\)write\ze\($\|\s\+\)"
  108. syntax match rplReadWrite "\(^\|\s\+\)read\ze\($\|\s\+\)"
  109. syntax match rplReadWrite "\(^\|\s\+\)inquire\ze\($\|\s\+\)"
  110. syntax match rplReadWrite "\(^\|\s\+\)sync\ze\($\|\s\+\)"
  111. syntax match rplReadWrite "\(^\|\s\+\)append\ze\($\|\s\+\)"
  112. syntax match rplReadWrite "\(^\|\s\+\)suppress\ze\($\|\s\+\)"
  113. syntax match rplReadWrite "\(^\|\s\+\)seek\ze\($\|\s\+\)"
  114. syntax match rplReadWrite "\(^\|\s\+\)pr\(1\|int\|st\|stc\|lcd\|var\|usr\|md\)\ze\($\|\s\+\)"
  115. syntax match rplReadWrite "\(^\|\s\+\)paper\ze\($\|\s\+\)"
  116. syntax match rplReadWrite "\(^\|\s\+\)cr\($\|\s\+\)"
  117. syntax match rplReadWrite "\(^\|\s\+\)erase\ze\($\|\s\+\)"
  118. syntax match rplReadWrite "\(^\|\s\+\)disp\ze\($\|\s\+\)"
  119. syntax match rplReadWrite "\(^\|\s\+\)input\ze\($\|\s\+\)"
  120. syntax match rplReadWrite "\(^\|\s\+\)prompt\ze\($\|\s\+\)"
  121. syntax match rplReadWrite "\(^\|\s\+\)key\ze\($\|\s\+\)"
  122. syntax match rplReadWrite "\(^\|\s\+\)cllcd\ze\($\|\s\+\)"
  123. syntax match rplReadWrite "\(^\|\s\+\)\(\|re\)draw\ze\($\|\s\+\)"
  124. syntax match rplReadWrite "\(^\|\s\+\)drax\ze\($\|\s\+\)"
  125. syntax match rplReadWrite "\(^\|\s\+\)indep\ze\($\|\s\+\)"
  126. syntax match rplReadWrite "\(^\|\s\+\)depnd\ze\($\|\s\+\)"
  127. syntax match rplReadWrite "\(^\|\s\+\)res\ze\($\|\s\+\)"
  128. syntax match rplReadWrite "\(^\|\s\+\)axes\ze\($\|\s\+\)"
  129. syntax match rplReadWrite "\(^\|\s\+\)label\ze\($\|\s\+\)"
  130. syntax match rplReadWrite "\(^\|\s\+\)pmin\ze\($\|\s\+\)"
  131. syntax match rplReadWrite "\(^\|\s\+\)pmax\ze\($\|\s\+\)"
  132. syntax match rplReadWrite "\(^\|\s\+\)centr\ze\($\|\s\+\)"
  133. syntax match rplReadWrite "\(^\|\s\+\)persist\ze\($\|\s\+\)"
  134. syntax match rplReadWrite "\(^\|\s\+\)title\ze\($\|\s\+\)"
  135. syntax match rplReadWrite "\(^\|\s\+\)\(slice\|auto\|log\|\)scale\ze\($\|\s\+\)"
  136. syntax match rplReadWrite "\(^\|\s\+\)eyept\ze\($\|\s\+\)"
  137. syntax match rplReadWrite "\(^\|\s\+\)\(p\|s\)par\ze\($\|\s\+\)"
  138. syntax match rplReadWrite "\(^\|\s\+\)function\ze\($\|\s\+\)"
  139. syntax match rplReadWrite "\(^\|\s\+\)polar\ze\($\|\s\+\)"
  140. syntax match rplReadWrite "\(^\|\s\+\)scatter\ze\($\|\s\+\)"
  141. syntax match rplReadWrite "\(^\|\s\+\)plotter\ze\($\|\s\+\)"
  142. syntax match rplReadWrite "\(^\|\s\+\)wireframe\ze\($\|\s\+\)"
  143. syntax match rplReadWrite "\(^\|\s\+\)parametric\ze\($\|\s\+\)"
  144. syntax match rplReadWrite "\(^\|\s\+\)slice\ze\($\|\s\+\)"
  145. syntax match rplReadWrite "\(^\|\s\+\)\*w\ze\($\|\s\+\)"
  146. syntax match rplReadWrite "\(^\|\s\+\)\*h\ze\($\|\s\+\)"
  147. syntax match rplReadWrite "\(^\|\s\+\)\*d\ze\($\|\s\+\)"
  148. syntax match rplReadWrite "\(^\|\s\+\)\*s\ze\($\|\s\+\)"
  149. syntax match rplReadWrite "\(^\|\s\+\)->lcd\ze\($\|\s\+\)"
  150. syntax match rplReadWrite "\(^\|\s\+\)lcd->\ze\($\|\s\+\)"
  151. syntax match rplReadWrite "\(^\|\s\+\)edit\ze\($\|\s\+\)"
  152. syntax match rplReadWrite "\(^\|\s\+\)visit\ze\($\|\s\+\)"
  153. syntax match rplIntrinsic "\(^\|\s\+\)abs\ze\($\|\s\+\)"
  154. syntax match rplIntrinsic "\(^\|\s\+\)arg\ze\($\|\s\+\)"
  155. syntax match rplIntrinsic "\(^\|\s\+\)conj\ze\($\|\s\+\)"
  156. syntax match rplIntrinsic "\(^\|\s\+\)re\ze\($\|\s\+\)"
  157. syntax match rplIntrinsic "\(^\|\s\+\)im\ze\($\|\s\+\)"
  158. syntax match rplIntrinsic "\(^\|\s\+\)mant\ze\($\|\s\+\)"
  159. syntax match rplIntrinsic "\(^\|\s\+\)xpon\ze\($\|\s\+\)"
  160. syntax match rplIntrinsic "\(^\|\s\+\)ceil\ze\($\|\s\+\)"
  161. syntax match rplIntrinsic "\(^\|\s\+\)fact\ze\($\|\s\+\)"
  162. syntax match rplIntrinsic "\(^\|\s\+\)fp\ze\($\|\s\+\)"
  163. syntax match rplIntrinsic "\(^\|\s\+\)floor\ze\($\|\s\+\)"
  164. syntax match rplIntrinsic "\(^\|\s\+\)inv\ze\($\|\s\+\)"
  165. syntax match rplIntrinsic "\(^\|\s\+\)ip\ze\($\|\s\+\)"
  166. syntax match rplIntrinsic "\(^\|\s\+\)max\ze\($\|\s\+\)"
  167. syntax match rplIntrinsic "\(^\|\s\+\)min\ze\($\|\s\+\)"
  168. syntax match rplIntrinsic "\(^\|\s\+\)mod\ze\($\|\s\+\)"
  169. syntax match rplIntrinsic "\(^\|\s\+\)neg\ze\($\|\s\+\)"
  170. syntax match rplIntrinsic "\(^\|\s\+\)relax\ze\($\|\s\+\)"
  171. syntax match rplIntrinsic "\(^\|\s\+\)sign\ze\($\|\s\+\)"
  172. syntax match rplIntrinsic "\(^\|\s\+\)sq\(\|rt\)\ze\($\|\s\+\)"
  173. syntax match rplIntrinsic "\(^\|\s\+\)xroot\ze\($\|\s\+\)"
  174. syntax match rplIntrinsic "\(^\|\s\+\)cos\ze\($\|\s\+\)"
  175. syntax match rplIntrinsic "\(^\|\s\+\)sin\ze\($\|\s\+\)"
  176. syntax match rplIntrinsic "\(^\|\s\+\)tan\ze\($\|\s\+\)"
  177. syntax match rplIntrinsic "\(^\|\s\+\)tg\ze\($\|\s\+\)"
  178. syntax match rplIntrinsic "\(^\|\s\+\)a\(\|rc\)cos\ze\($\|\s\+\)"
  179. syntax match rplIntrinsic "\(^\|\s\+\)a\(\|rc\)sin\ze\($\|\s\+\)"
  180. syntax match rplIntrinsic "\(^\|\s\+\)atan\ze\($\|\s\+\)"
  181. syntax match rplIntrinsic "\(^\|\s\+\)arctg\ze\($\|\s\+\)"
  182. syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)cosh\ze\($\|\s\+\)"
  183. syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)sinh\ze\($\|\s\+\)"
  184. syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)tanh\ze\($\|\s\+\)"
  185. syntax match rplIntrinsic "\(^\|\s\+\)\(\|arg\)th\ze\($\|\s\+\)"
  186. syntax match rplIntrinsic "\(^\|\s\+\)arg[cst]h\ze\($\|\s\+\)"
  187. syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)log\ze\($\|\s\+\)"
  188. syntax match rplIntrinsic "\(^\|\s\+\)ln\(\|1\)\ze\($\|\s\+\)"
  189. syntax match rplIntrinsic "\(^\|\s\+\)exp\(\|m\)\ze\($\|\s\+\)"
  190. syntax match rplIntrinsic "\(^\|\s\+\)trn\ze\($\|\s\+\)"
  191. syntax match rplIntrinsic "\(^\|\s\+\)con\ze\($\|\s\+\)"
  192. syntax match rplIntrinsic "\(^\|\s\+\)idn\ze\($\|\s\+\)"
  193. syntax match rplIntrinsic "\(^\|\s\+\)rdm\ze\($\|\s\+\)"
  194. syntax match rplIntrinsic "\(^\|\s\+\)rsd\ze\($\|\s\+\)"
  195. syntax match rplIntrinsic "\(^\|\s\+\)cnrm\ze\($\|\s\+\)"
  196. syntax match rplIntrinsic "\(^\|\s\+\)cross\ze\($\|\s\+\)"
  197. syntax match rplIntrinsic "\(^\|\s\+\)d[eo]t\ze\($\|\s\+\)"
  198. syntax match rplIntrinsic "\(^\|\s\+\)[cr]swp\ze\($\|\s\+\)"
  199. syntax match rplIntrinsic "\(^\|\s\+\)rci\(j\|\)\ze\($\|\s\+\)"
  200. syntax match rplIntrinsic "\(^\|\s\+\)\(in\|de\)cr\ze\($\|\s\+\)"
  201. syntax match rplIntrinsic "\(^\|\s\+\)bessel\ze\($\|\s\+\)"
  202. syntax match rplIntrinsic "\(^\|\s\+\)\(\|g\)egvl\ze\($\|\s\+\)"
  203. syntax match rplIntrinsic "\(^\|\s\+\)\(\|g\)\(\|l\|r\)egv\ze\($\|\s\+\)"
  204. syntax match rplIntrinsic "\(^\|\s\+\)rnrm\ze\($\|\s\+\)"
  205. syntax match rplIntrinsic "\(^\|\s\+\)\(std\|fix\|sci\|eng\)\ze\($\|\s\+\)"
  206. syntax match rplIntrinsic "\(^\|\s\+\)\(rad\|deg\)\ze\($\|\s\+\)"
  207. syntax match rplIntrinsic "\(^\|\s\+\)\(\|n\)rand\ze\($\|\s\+\)"
  208. syntax match rplIntrinsic "\(^\|\s\+\)rdz\ze\($\|\s\+\)"
  209. syntax match rplIntrinsic "\(^\|\s\+\)\(\|i\)fft\ze\($\|\s\+\)"
  210. syntax match rplIntrinsic "\(^\|\s\+\)\(dec\|bin\|oct\|hex\)\ze\($\|\s\+\)"
  211. syntax match rplIntrinsic "\(^\|\s\+\)rclf\ze\($\|\s\+\)"
  212. syntax match rplIntrinsic "\(^\|\s\+\)stof\ze\($\|\s\+\)"
  213. syntax match rplIntrinsic "\(^\|\s\+\)[cs]f\ze\($\|\s\+\)"
  214. syntax match rplIntrinsic "\(^\|\s\+\)chr\ze\($\|\s\+\)"
  215. syntax match rplIntrinsic "\(^\|\s\+\)num\ze\($\|\s\+\)"
  216. syntax match rplIntrinsic "\(^\|\s\+\)pos\ze\($\|\s\+\)"
  217. syntax match rplIntrinsic "\(^\|\s\+\)sub\ze\($\|\s\+\)"
  218. syntax match rplIntrinsic "\(^\|\s\+\)size\ze\($\|\s\+\)"
  219. syntax match rplIntrinsic "\(^\|\s\+\)\(st\|rc\)ws\ze\($\|\s\+\)"
  220. syntax match rplIntrinsic "\(^\|\s\+\)\(r\|s\)\(r\|l\)\(\|b\)\ze\($\|\s\+\)"
  221. syntax match rplIntrinsic "\(^\|\s\+\)as\(r\|l\)\ze\($\|\s\+\)"
  222. syntax match rplIntrinsic "\(^\|\s\+\)\(int\|der\)\ze\($\|\s\+\)"
  223. syntax match rplIntrinsic "\(^\|\s\+\)stos\ze\($\|\s\+\)"
  224. syntax match rplIntrinsic "\(^\|\s\+\)\(\|r\)cls\ze\($\|\s\+\)"
  225. syntax match rplIntrinsic "\(^\|\s\+\)drws\ze\($\|\s\+\)"
  226. syntax match rplIntrinsic "\(^\|\s\+\)scls\ze\($\|\s\+\)"
  227. syntax match rplIntrinsic "\(^\|\s\+\)ns\ze\($\|\s\+\)"
  228. syntax match rplIntrinsic "\(^\|\s\+\)tot\ze\($\|\s\+\)"
  229. syntax match rplIntrinsic "\(^\|\s\+\)mean\ze\($\|\s\+\)"
  230. syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)sdev\ze\($\|\s\+\)"
  231. syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)var\ze\($\|\s\+\)"
  232. syntax match rplIntrinsic "\(^\|\s\+\)maxs\ze\($\|\s\+\)"
  233. syntax match rplIntrinsic "\(^\|\s\+\)mins\ze\($\|\s\+\)"
  234. syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)cov\ze\($\|\s\+\)"
  235. syntax match rplIntrinsic "\(^\|\s\+\)cols\ze\($\|\s\+\)"
  236. syntax match rplIntrinsic "\(^\|\s\+\)s\(x\(\|y\|2\)\|y\(\|2\)\)\ze\($\|\s\+\)"
  237. syntax match rplIntrinsic "\(^\|\s\+\)\(x\|y\)col\ze\($\|\s\+\)"
  238. syntax match rplIntrinsic "\(^\|\s\+\)corr\ze\($\|\s\+\)"
  239. syntax match rplIntrinsic "\(^\|\s\+\)utp[cfnt]\ze\($\|\s\+\)"
  240. syntax match rplIntrinsic "\(^\|\s\+\)comb\ze\($\|\s\+\)"
  241. syntax match rplIntrinsic "\(^\|\s\+\)perm\ze\($\|\s\+\)"
  242. syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)lu\ze\($\|\s\+\)"
  243. syntax match rplIntrinsic "\(^\|\s\+\)[lu]chol\ze\($\|\s\+\)"
  244. syntax match rplIntrinsic "\(^\|\s\+\)schur\ze\($\|\s\+\)"
  245. syntax match rplIntrinsic "\(^\|\s\+\)%\ze\($\|\s\+\)"
  246. syntax match rplIntrinsic "\(^\|\s\+\)%ch\ze\($\|\s\+\)"
  247. syntax match rplIntrinsic "\(^\|\s\+\)%t\ze\($\|\s\+\)"
  248. syntax match rplIntrinsic "\(^\|\s\+\)hms->\ze\($\|\s\+\)"
  249. syntax match rplIntrinsic "\(^\|\s\+\)->hms\ze\($\|\s\+\)"
  250. syntax match rplIntrinsic "\(^\|\s\+\)hms+\ze\($\|\s\+\)"
  251. syntax match rplIntrinsic "\(^\|\s\+\)hms-\ze\($\|\s\+\)"
  252. syntax match rplIntrinsic "\(^\|\s\+\)d->r\ze\($\|\s\+\)"
  253. syntax match rplIntrinsic "\(^\|\s\+\)r->d\ze\($\|\s\+\)"
  254. syntax match rplIntrinsic "\(^\|\s\+\)b->r\ze\($\|\s\+\)"
  255. syntax match rplIntrinsic "\(^\|\s\+\)r->b\ze\($\|\s\+\)"
  256. syntax match rplIntrinsic "\(^\|\s\+\)c->r\ze\($\|\s\+\)"
  257. syntax match rplIntrinsic "\(^\|\s\+\)r->c\ze\($\|\s\+\)"
  258. syntax match rplIntrinsic "\(^\|\s\+\)r->p\ze\($\|\s\+\)"
  259. syntax match rplIntrinsic "\(^\|\s\+\)p->r\ze\($\|\s\+\)"
  260. syntax match rplIntrinsic "\(^\|\s\+\)str->\ze\($\|\s\+\)"
  261. syntax match rplIntrinsic "\(^\|\s\+\)->str\ze\($\|\s\+\)"
  262. syntax match rplIntrinsic "\(^\|\s\+\)array->\ze\($\|\s\+\)"
  263. syntax match rplIntrinsic "\(^\|\s\+\)->array\ze\($\|\s\+\)"
  264. syntax match rplIntrinsic "\(^\|\s\+\)list->\ze\($\|\s\+\)"
  265. syntax match rplIntrinsic "\(^\|\s\+\)->list\ze\($\|\s\+\)"
  266. syntax match rplIntrinsic "\(^\|\s\+\)s+\ze\($\|\s\+\)"
  267. syntax match rplIntrinsic "\(^\|\s\+\)s-\ze\($\|\s\+\)"
  268. syntax match rplIntrinsic "\(^\|\s\+\)col-\ze\($\|\s\+\)"
  269. syntax match rplIntrinsic "\(^\|\s\+\)col+\ze\($\|\s\+\)"
  270. syntax match rplIntrinsic "\(^\|\s\+\)row-\ze\($\|\s\+\)"
  271. syntax match rplIntrinsic "\(^\|\s\+\)row+\ze\($\|\s\+\)"
  272. syntax match rplIntrinsic "\(^\|\s\+\)->q\ze\($\|\s\+\)"
  273. syntax match rplObsolete "\(^\|\s\+\)arry->\ze\($\|\s\+\)"hs=e-5
  274. syntax match rplObsolete "\(^\|\s\+\)->arry\ze\($\|\s\+\)"hs=e-5
  275. " Conditional structures
  276. syntax match rplConditionalError "\(^\|\s\+\)case\ze\($\|\s\+\)"hs=e-3
  277. syntax match rplConditionalError "\(^\|\s\+\)then\ze\($\|\s\+\)"hs=e-3
  278. syntax match rplConditionalError "\(^\|\s\+\)else\ze\($\|\s\+\)"hs=e-3
  279. syntax match rplConditionalError "\(^\|\s\+\)elseif\ze\($\|\s\+\)"hs=e-5
  280. syntax match rplConditionalError "\(^\|\s\+\)end\ze\($\|\s\+\)"hs=e-2
  281. syntax match rplConditionalError "\(^\|\s\+\)\(step\|next\)\ze\($\|\s\+\)"hs=e-3
  282. syntax match rplConditionalError "\(^\|\s\+\)until\ze\($\|\s\+\)"hs=e-4
  283. syntax match rplConditionalError "\(^\|\s\+\)repeat\ze\($\|\s\+\)"hs=e-5
  284. syntax match rplConditionalError "\(^\|\s\+\)default\ze\($\|\s\+\)"hs=e-6
  285. " FOR/(CYCLE)/(EXIT)/NEXT
  286. " FOR/(CYCLE)/(EXIT)/STEP
  287. " START/(CYCLE)/(EXIT)/NEXT
  288. " START/(CYCLE)/(EXIT)/STEP
  289. syntax match rplCycle "\(^\|\s\+\)\(cycle\|exit\)\ze\($\|\s\+\)"
  290. syntax region rplForNext matchgroup=rplRepeat start="\(^\|\s\+\)\(for\|start\)\ze\($\|\s\+\)" end="\(^\|\s\+\)\(next\|step\)\ze\($\|\s\+\)" contains=ALL keepend extend
  291. " ELSEIF/END
  292. syntax region rplElseifEnd matchgroup=rplConditional start="\(^\|\s\+\)elseif\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained contains=ALLBUT,rplElseEnd keepend
  293. " ELSE/END
  294. syntax region rplElseEnd matchgroup=rplConditional start="\(^\|\s\+\)else\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained contains=ALLBUT,rplElseEnd,rplThenEnd,rplElseifEnd keepend
  295. " THEN/END
  296. syntax region rplThenEnd matchgroup=rplConditional start="\(^\|\s\+\)then\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained containedin=rplIfEnd contains=ALLBUT,rplThenEnd keepend
  297. " IF/END
  298. syntax region rplIfEnd matchgroup=rplConditional start="\(^\|\s\+\)if\(err\|\)\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplElseEnd,rplElseifEnd keepend extend
  299. " if end is accepted !
  300. " select end too !
  301. " CASE/THEN
  302. syntax region rplCaseThen matchgroup=rplConditional start="\(^\|\s\+\)case\ze\($\|\s\+\)" end="\(^\|\s\+\)then\ze\($\|\s\+\)" contains=ALLBUT,rplCaseThen,rplCaseEnd,rplThenEnd keepend extend contained containedin=rplCaseEnd
  303. " CASE/END
  304. syntax region rplCaseEnd matchgroup=rplConditional start="\(^\|\s\+\)case\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplCaseEnd,rplThenEnd,rplElseEnd keepend extend contained containedin=rplSelectEnd
  305. " DEFAULT/END
  306. syntax region rplDefaultEnd matchgroup=rplConditional start="\(^\|\s\+\)default\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplDefaultEnd keepend contained containedin=rplSelectEnd
  307. " SELECT/END
  308. syntax region rplSelectEnd matchgroup=rplConditional start="\(^\|\s\+\)select\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplThenEnd keepend extend
  309. " select end is accepted !
  310. " DO/UNTIL/END
  311. syntax region rplUntilEnd matchgroup=rplConditional start="\(^\|\s\+\)until\ze\($\|\s\+\)" end="\(^\|\s\+\)\zsend\ze\($\|\s\+\)" contains=ALLBUT,rplUntilEnd contained containedin=rplDoUntil extend keepend
  312. syntax region rplDoUntil matchgroup=rplConditional start="\(^\|\s\+\)do\ze\($\|\s\+\)" end="\(^\|\s\+\)until\ze\($\|\s\+\)" contains=ALL keepend extend
  313. " WHILE/REPEAT/END
  314. syntax region rplRepeatEnd matchgroup=rplConditional start="\(^\|\s\+\)repeat\ze\($\|\s\+\)" end="\(^\|\s\+\)\zsend\ze\($\|\s\+\)" contains=ALLBUT,rplRepeatEnd contained containedin=rplWhileRepeat extend keepend
  315. syntax region rplWhileRepeat matchgroup=rplConditional start="\(^\|\s\+\)while\ze\($\|\s\+\)" end="\(^\|\s\+\)repeat\ze\($\|\s\+\)" contains=ALL keepend extend
  316. " Comments
  317. syntax match rplCommentError "\*/"
  318. syntax region rplCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1
  319. syntax region rplCommentLine start="\(^\|\s\+\)//\ze" skip="\\$" end="$" contains=NONE keepend extend
  320. syntax region rplComment start="\(^\|\s\+\)/\*\ze" end="\*/" contains=rplCommentString keepend extend
  321. " Catch errors caused by too many right parentheses
  322. syntax region rplParen transparent start="(" end=")" contains=ALLBUT,rplParenError,rplComplex,rplIncluded keepend extend
  323. syntax match rplParenError ")"
  324. " Subroutines
  325. " Catch errors caused by too many right '>>'
  326. syntax match rplSubError "\(^\|\s\+\)>>\ze\($\|\s\+\)"hs=e-1
  327. syntax region rplSub matchgroup=rplSubDelimitor start="\(^\|\s\+\)<<\ze\($\|\s\+\)" end="\(^\|\s\+\)>>\ze\($\|\s\+\)" contains=ALLBUT,rplSubError,rplIncluded,rplDefaultEnd,rplStorageSub keepend extend
  328. " Expressions
  329. syntax region rplExpr start="\(^\|\s\+\)'" end="'\ze\($\|\s\+\)" contains=rplParen,rplParenError
  330. " Local variables
  331. syntax match rplStorageError "\(^\|\s\+\)->\ze\($\|\s\+\)"hs=e-1
  332. syntax region rplStorageSub matchgroup=rplStorage start="\(^\|\s\+\)<<\ze\($\|\s\+\)" end="\(^\|\s\+\)>>\ze\($\|\s\+\)" contains=ALLBUT,rplSubError,rplIncluded,rplDefaultEnd,rplStorageExpr contained containedin=rplLocalStorage keepend extend
  333. syntax region rplStorageExpr matchgroup=rplStorage start="\(^\|\s\+\)'" end="'\ze\($\|\s\+\)" contains=rplParen,rplParenError extend contained containedin=rplLocalStorage
  334. syntax region rplLocalStorage matchgroup=rplStorage start="\(^\|\s\+\)->\ze\($\|\s\+\)" end="\(^\|\s\+\)\(<<\ze\($\|\s\+\)\|'\)" contains=rplStorageSub,rplStorageExpr,rplComment,rplCommentLine keepend extend
  335. " Catch errors caused by too many right brackets
  336. syntax match rplArrayError "\]"
  337. syntax match rplArray "\]" contained containedin=rplArray
  338. syntax region rplArray matchgroup=rplArray start="\[" end="\]" contains=ALLBUT,rplArrayError keepend extend
  339. " Catch errors caused by too many right '}'
  340. syntax match rplListError "}"
  341. syntax match rplList "}" contained containedin=rplList
  342. syntax region rplList matchgroup=rplList start="{" end="}" contains=ALLBUT,rplListError,rplIncluded keepend extend
  343. " cpp is used by RPL/2
  344. syntax match rplPreProc "\_^#\s*\(define\|undef\)\>"
  345. syntax match rplPreProc "\_^#\s*\(warning\|error\)\>"
  346. syntax match rplPreCondit "\_^#\s*\(if\|ifdef\|ifndef\|elif\|else\|endif\)\>"
  347. syntax match rplIncluded contained "\<<\s*\S*\s*>\>"
  348. syntax match rplInclude "\_^#\s*include\>\s*["<]" contains=rplIncluded,rplString
  349. "syntax match rplExecPath "\%^\_^#!\s*\S*"
  350. syntax match rplExecPath "\%^\_^#!\p*\_$"
  351. " Any integer
  352. syntax match rplInteger "\(^\|\s\+\)[-+]\=\d\+\ze\($\|\s\+\)"
  353. " Floating point number
  354. " [S][ip].[fp]
  355. syntax match rplFloat "\(^\|\s\+\)[-+]\=\(\d*\)\=[\.,]\(\d*\)\=\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign
  356. " [S]ip[.fp]E[S]exp
  357. syntax match rplFloat "\(^\|\s\+\)[-+]\=\d\+\([\.,]\d*\)\=[eE]\([-+]\)\=\d\+\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign
  358. " [S].fpE[S]exp
  359. syntax match rplFloat "\(^\|\s\+\)[-+]\=\(\d*\)\=[\.,]\d\+[eE]\([-+]\)\=\d\+\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign
  360. syntax match rplPoint "\<[\.,]\>"
  361. syntax match rplSign "\<[+-]\>"
  362. " Complex number
  363. " (x,y)
  364. syntax match rplComplex "\(^\|\s\+\)([-+]\=\(\d*\)\=\.\=\d*\([eE][-+]\=\d\+\)\=\s*,\s*[-+]\=\(\d*\)\=\.\=\d*\([eE][-+]\=\d\+\)\=)\ze\($\|\s\+\)"
  365. " (x.y)
  366. syntax match rplComplex "\(^\|\s\+\)([-+]\=\(\d*\)\=,\=\d*\([eE][-+]\=\d\+\)\=\s*\.\s*[-+]\=\(\d*\)\=,\=\d*\([eE][-+]\=\d\+\)\=)\ze\($\|\s\+\)"
  367. " Strings
  368. syntax match rplStringGuilles "\\\""
  369. syntax match rplStringAntislash "\\\\"
  370. syntax region rplString start=+\(^\|\s\+\)"+ end=+"\ze\($\|\s\+\)+ contains=rplStringGuilles,rplStringAntislash
  371. syntax match rplTab "\t" transparent
  372. " Define the default highlighting.
  373. " Only when an item doesn't have highlighting yet
  374. " The default highlighting.
  375. hi def link rplControl Statement
  376. hi def link rplStatement Statement
  377. hi def link rplAlgConditional Conditional
  378. hi def link rplConditional Repeat
  379. hi def link rplConditionalError Error
  380. hi def link rplRepeat Repeat
  381. hi def link rplCycle Repeat
  382. hi def link rplUntil Repeat
  383. hi def link rplIntrinsic Special
  384. hi def link rplStorage StorageClass
  385. hi def link rplStorageExpr StorageClass
  386. hi def link rplStorageError Error
  387. hi def link rplReadWrite rplIntrinsic
  388. hi def link rplOperator Operator
  389. hi def link rplList Special
  390. hi def link rplArray Special
  391. hi def link rplConstant Identifier
  392. hi def link rplExpr Type
  393. hi def link rplString String
  394. hi def link rplStringGuilles String
  395. hi def link rplStringAntislash String
  396. hi def link rplBinary Boolean
  397. hi def link rplOctal Boolean
  398. hi def link rplDecimal Boolean
  399. hi def link rplHexadecimal Boolean
  400. hi def link rplInteger Number
  401. hi def link rplFloat Float
  402. hi def link rplComplex Float
  403. hi def link rplBoolean Identifier
  404. hi def link rplObsolete Todo
  405. hi def link rplPreCondit PreCondit
  406. hi def link rplInclude Include
  407. hi def link rplIncluded rplString
  408. hi def link rplInclude Include
  409. hi def link rplExecPath Include
  410. hi def link rplPreProc PreProc
  411. hi def link rplComment Comment
  412. hi def link rplCommentLine Comment
  413. hi def link rplCommentString Comment
  414. hi def link rplSubDelimitor rplStorage
  415. hi def link rplCommentError Error
  416. hi def link rplParenError Error
  417. hi def link rplSubError Error
  418. hi def link rplArrayError Error
  419. hi def link rplListError Error
  420. hi def link rplTab Error
  421. hi def link rplBinaryError Error
  422. hi def link rplOctalError Error
  423. hi def link rplDecimalError Error
  424. hi def link rplHexadecimalError Error
  425. let b:current_syntax = "rpl"
  426. let &cpo = s:cpo_save
  427. unlet s:cpo_save
  428. " vim: ts=8 tw=132