neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

rpl.vim (25700B)


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