home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / runtime / syntax / rpl.vim < prev    next >
Encoding:
Text File  |  2003-05-11  |  23.5 KB  |  459 lines

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