cow_inline.hrl (22205B)
1 %% Copyright (c) 2014-2018, Loïc Hoguin <essen@ninenines.eu> 2 %% 3 %% Permission to use, copy, modify, and/or distribute this software for any 4 %% purpose with or without fee is hereby granted, provided that the above 5 %% copyright notice and this permission notice appear in all copies. 6 %% 7 %% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 %% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 %% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 10 %% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11 %% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 12 %% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 13 %% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 15 -ifndef(COW_INLINE_HRL). 16 -define(COW_INLINE_HRL, 1). 17 18 %% LC(Character) 19 20 -define(LC(C), case C of 21 $A -> $a; 22 $B -> $b; 23 $C -> $c; 24 $D -> $d; 25 $E -> $e; 26 $F -> $f; 27 $G -> $g; 28 $H -> $h; 29 $I -> $i; 30 $J -> $j; 31 $K -> $k; 32 $L -> $l; 33 $M -> $m; 34 $N -> $n; 35 $O -> $o; 36 $P -> $p; 37 $Q -> $q; 38 $R -> $r; 39 $S -> $s; 40 $T -> $t; 41 $U -> $u; 42 $V -> $v; 43 $W -> $w; 44 $X -> $x; 45 $Y -> $y; 46 $Z -> $z; 47 _ -> C 48 end). 49 50 %% LOWER(Bin) 51 %% 52 %% Lowercase the entire binary string in a binary comprehension. 53 54 -define(LOWER(Bin), << << ?LC(C) >> || << C >> <= Bin >>). 55 56 %% LOWERCASE(Function, Rest, Acc, ...) 57 %% 58 %% To be included at the end of a case block. 59 %% Defined for up to 10 extra arguments. 60 61 -define(LOWER(Function, Rest, Acc), case C of 62 $A -> Function(Rest, << Acc/binary, $a >>); 63 $B -> Function(Rest, << Acc/binary, $b >>); 64 $C -> Function(Rest, << Acc/binary, $c >>); 65 $D -> Function(Rest, << Acc/binary, $d >>); 66 $E -> Function(Rest, << Acc/binary, $e >>); 67 $F -> Function(Rest, << Acc/binary, $f >>); 68 $G -> Function(Rest, << Acc/binary, $g >>); 69 $H -> Function(Rest, << Acc/binary, $h >>); 70 $I -> Function(Rest, << Acc/binary, $i >>); 71 $J -> Function(Rest, << Acc/binary, $j >>); 72 $K -> Function(Rest, << Acc/binary, $k >>); 73 $L -> Function(Rest, << Acc/binary, $l >>); 74 $M -> Function(Rest, << Acc/binary, $m >>); 75 $N -> Function(Rest, << Acc/binary, $n >>); 76 $O -> Function(Rest, << Acc/binary, $o >>); 77 $P -> Function(Rest, << Acc/binary, $p >>); 78 $Q -> Function(Rest, << Acc/binary, $q >>); 79 $R -> Function(Rest, << Acc/binary, $r >>); 80 $S -> Function(Rest, << Acc/binary, $s >>); 81 $T -> Function(Rest, << Acc/binary, $t >>); 82 $U -> Function(Rest, << Acc/binary, $u >>); 83 $V -> Function(Rest, << Acc/binary, $v >>); 84 $W -> Function(Rest, << Acc/binary, $w >>); 85 $X -> Function(Rest, << Acc/binary, $x >>); 86 $Y -> Function(Rest, << Acc/binary, $y >>); 87 $Z -> Function(Rest, << Acc/binary, $z >>); 88 C -> Function(Rest, << Acc/binary, C >>) 89 end). 90 91 -define(LOWER(Function, Rest, A0, Acc), case C of 92 $A -> Function(Rest, A0, << Acc/binary, $a >>); 93 $B -> Function(Rest, A0, << Acc/binary, $b >>); 94 $C -> Function(Rest, A0, << Acc/binary, $c >>); 95 $D -> Function(Rest, A0, << Acc/binary, $d >>); 96 $E -> Function(Rest, A0, << Acc/binary, $e >>); 97 $F -> Function(Rest, A0, << Acc/binary, $f >>); 98 $G -> Function(Rest, A0, << Acc/binary, $g >>); 99 $H -> Function(Rest, A0, << Acc/binary, $h >>); 100 $I -> Function(Rest, A0, << Acc/binary, $i >>); 101 $J -> Function(Rest, A0, << Acc/binary, $j >>); 102 $K -> Function(Rest, A0, << Acc/binary, $k >>); 103 $L -> Function(Rest, A0, << Acc/binary, $l >>); 104 $M -> Function(Rest, A0, << Acc/binary, $m >>); 105 $N -> Function(Rest, A0, << Acc/binary, $n >>); 106 $O -> Function(Rest, A0, << Acc/binary, $o >>); 107 $P -> Function(Rest, A0, << Acc/binary, $p >>); 108 $Q -> Function(Rest, A0, << Acc/binary, $q >>); 109 $R -> Function(Rest, A0, << Acc/binary, $r >>); 110 $S -> Function(Rest, A0, << Acc/binary, $s >>); 111 $T -> Function(Rest, A0, << Acc/binary, $t >>); 112 $U -> Function(Rest, A0, << Acc/binary, $u >>); 113 $V -> Function(Rest, A0, << Acc/binary, $v >>); 114 $W -> Function(Rest, A0, << Acc/binary, $w >>); 115 $X -> Function(Rest, A0, << Acc/binary, $x >>); 116 $Y -> Function(Rest, A0, << Acc/binary, $y >>); 117 $Z -> Function(Rest, A0, << Acc/binary, $z >>); 118 C -> Function(Rest, A0, << Acc/binary, C >>) 119 end). 120 121 -define(LOWER(Function, Rest, A0, A1, Acc), case C of 122 $A -> Function(Rest, A0, A1, << Acc/binary, $a >>); 123 $B -> Function(Rest, A0, A1, << Acc/binary, $b >>); 124 $C -> Function(Rest, A0, A1, << Acc/binary, $c >>); 125 $D -> Function(Rest, A0, A1, << Acc/binary, $d >>); 126 $E -> Function(Rest, A0, A1, << Acc/binary, $e >>); 127 $F -> Function(Rest, A0, A1, << Acc/binary, $f >>); 128 $G -> Function(Rest, A0, A1, << Acc/binary, $g >>); 129 $H -> Function(Rest, A0, A1, << Acc/binary, $h >>); 130 $I -> Function(Rest, A0, A1, << Acc/binary, $i >>); 131 $J -> Function(Rest, A0, A1, << Acc/binary, $j >>); 132 $K -> Function(Rest, A0, A1, << Acc/binary, $k >>); 133 $L -> Function(Rest, A0, A1, << Acc/binary, $l >>); 134 $M -> Function(Rest, A0, A1, << Acc/binary, $m >>); 135 $N -> Function(Rest, A0, A1, << Acc/binary, $n >>); 136 $O -> Function(Rest, A0, A1, << Acc/binary, $o >>); 137 $P -> Function(Rest, A0, A1, << Acc/binary, $p >>); 138 $Q -> Function(Rest, A0, A1, << Acc/binary, $q >>); 139 $R -> Function(Rest, A0, A1, << Acc/binary, $r >>); 140 $S -> Function(Rest, A0, A1, << Acc/binary, $s >>); 141 $T -> Function(Rest, A0, A1, << Acc/binary, $t >>); 142 $U -> Function(Rest, A0, A1, << Acc/binary, $u >>); 143 $V -> Function(Rest, A0, A1, << Acc/binary, $v >>); 144 $W -> Function(Rest, A0, A1, << Acc/binary, $w >>); 145 $X -> Function(Rest, A0, A1, << Acc/binary, $x >>); 146 $Y -> Function(Rest, A0, A1, << Acc/binary, $y >>); 147 $Z -> Function(Rest, A0, A1, << Acc/binary, $z >>); 148 C -> Function(Rest, A0, A1, << Acc/binary, C >>) 149 end). 150 151 -define(LOWER(Function, Rest, A0, A1, A2, Acc), case C of 152 $A -> Function(Rest, A0, A1, A2, << Acc/binary, $a >>); 153 $B -> Function(Rest, A0, A1, A2, << Acc/binary, $b >>); 154 $C -> Function(Rest, A0, A1, A2, << Acc/binary, $c >>); 155 $D -> Function(Rest, A0, A1, A2, << Acc/binary, $d >>); 156 $E -> Function(Rest, A0, A1, A2, << Acc/binary, $e >>); 157 $F -> Function(Rest, A0, A1, A2, << Acc/binary, $f >>); 158 $G -> Function(Rest, A0, A1, A2, << Acc/binary, $g >>); 159 $H -> Function(Rest, A0, A1, A2, << Acc/binary, $h >>); 160 $I -> Function(Rest, A0, A1, A2, << Acc/binary, $i >>); 161 $J -> Function(Rest, A0, A1, A2, << Acc/binary, $j >>); 162 $K -> Function(Rest, A0, A1, A2, << Acc/binary, $k >>); 163 $L -> Function(Rest, A0, A1, A2, << Acc/binary, $l >>); 164 $M -> Function(Rest, A0, A1, A2, << Acc/binary, $m >>); 165 $N -> Function(Rest, A0, A1, A2, << Acc/binary, $n >>); 166 $O -> Function(Rest, A0, A1, A2, << Acc/binary, $o >>); 167 $P -> Function(Rest, A0, A1, A2, << Acc/binary, $p >>); 168 $Q -> Function(Rest, A0, A1, A2, << Acc/binary, $q >>); 169 $R -> Function(Rest, A0, A1, A2, << Acc/binary, $r >>); 170 $S -> Function(Rest, A0, A1, A2, << Acc/binary, $s >>); 171 $T -> Function(Rest, A0, A1, A2, << Acc/binary, $t >>); 172 $U -> Function(Rest, A0, A1, A2, << Acc/binary, $u >>); 173 $V -> Function(Rest, A0, A1, A2, << Acc/binary, $v >>); 174 $W -> Function(Rest, A0, A1, A2, << Acc/binary, $w >>); 175 $X -> Function(Rest, A0, A1, A2, << Acc/binary, $x >>); 176 $Y -> Function(Rest, A0, A1, A2, << Acc/binary, $y >>); 177 $Z -> Function(Rest, A0, A1, A2, << Acc/binary, $z >>); 178 C -> Function(Rest, A0, A1, A2, << Acc/binary, C >>) 179 end). 180 181 -define(LOWER(Function, Rest, A0, A1, A2, A3, Acc), case C of 182 $A -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $a >>); 183 $B -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $b >>); 184 $C -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $c >>); 185 $D -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $d >>); 186 $E -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $e >>); 187 $F -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $f >>); 188 $G -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $g >>); 189 $H -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $h >>); 190 $I -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $i >>); 191 $J -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $j >>); 192 $K -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $k >>); 193 $L -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $l >>); 194 $M -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $m >>); 195 $N -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $n >>); 196 $O -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $o >>); 197 $P -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $p >>); 198 $Q -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $q >>); 199 $R -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $r >>); 200 $S -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $s >>); 201 $T -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $t >>); 202 $U -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $u >>); 203 $V -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $v >>); 204 $W -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $w >>); 205 $X -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $x >>); 206 $Y -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $y >>); 207 $Z -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $z >>); 208 C -> Function(Rest, A0, A1, A2, A3, << Acc/binary, C >>) 209 end). 210 211 -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, Acc), case C of 212 $A -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $a >>); 213 $B -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $b >>); 214 $C -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $c >>); 215 $D -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $d >>); 216 $E -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $e >>); 217 $F -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $f >>); 218 $G -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $g >>); 219 $H -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $h >>); 220 $I -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $i >>); 221 $J -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $j >>); 222 $K -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $k >>); 223 $L -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $l >>); 224 $M -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $m >>); 225 $N -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $n >>); 226 $O -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $o >>); 227 $P -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $p >>); 228 $Q -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $q >>); 229 $R -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $r >>); 230 $S -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $s >>); 231 $T -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $t >>); 232 $U -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $u >>); 233 $V -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $v >>); 234 $W -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $w >>); 235 $X -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $x >>); 236 $Y -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $y >>); 237 $Z -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $z >>); 238 C -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, C >>) 239 end). 240 241 -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, Acc), case C of 242 $A -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $a >>); 243 $B -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $b >>); 244 $C -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $c >>); 245 $D -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $d >>); 246 $E -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $e >>); 247 $F -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $f >>); 248 $G -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $g >>); 249 $H -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $h >>); 250 $I -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $i >>); 251 $J -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $j >>); 252 $K -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $k >>); 253 $L -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $l >>); 254 $M -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $m >>); 255 $N -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $n >>); 256 $O -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $o >>); 257 $P -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $p >>); 258 $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $q >>); 259 $R -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $r >>); 260 $S -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $s >>); 261 $T -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $t >>); 262 $U -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $u >>); 263 $V -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $v >>); 264 $W -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $w >>); 265 $X -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $x >>); 266 $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $y >>); 267 $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $z >>); 268 C -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, C >>) 269 end). 270 271 -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, Acc), case C of 272 $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $a >>); 273 $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $b >>); 274 $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $c >>); 275 $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $d >>); 276 $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $e >>); 277 $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $f >>); 278 $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $g >>); 279 $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $h >>); 280 $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $i >>); 281 $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $j >>); 282 $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $k >>); 283 $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $l >>); 284 $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $m >>); 285 $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $n >>); 286 $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $o >>); 287 $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $p >>); 288 $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $q >>); 289 $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $r >>); 290 $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $s >>); 291 $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $t >>); 292 $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $u >>); 293 $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $v >>); 294 $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $w >>); 295 $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $x >>); 296 $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $y >>); 297 $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $z >>); 298 C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, C >>) 299 end). 300 301 -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, Acc), case C of 302 $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $a >>); 303 $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $b >>); 304 $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $c >>); 305 $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $d >>); 306 $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $e >>); 307 $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $f >>); 308 $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $g >>); 309 $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $h >>); 310 $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $i >>); 311 $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $j >>); 312 $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $k >>); 313 $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $l >>); 314 $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $m >>); 315 $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $n >>); 316 $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $o >>); 317 $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $p >>); 318 $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $q >>); 319 $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $r >>); 320 $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $s >>); 321 $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $t >>); 322 $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $u >>); 323 $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $v >>); 324 $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $w >>); 325 $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $x >>); 326 $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $y >>); 327 $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $z >>); 328 C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, C >>) 329 end). 330 331 -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, Acc), case C of 332 $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $a >>); 333 $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $b >>); 334 $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $c >>); 335 $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $d >>); 336 $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $e >>); 337 $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $f >>); 338 $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $g >>); 339 $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $h >>); 340 $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $i >>); 341 $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $j >>); 342 $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $k >>); 343 $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $l >>); 344 $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $m >>); 345 $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $n >>); 346 $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $o >>); 347 $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $p >>); 348 $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $q >>); 349 $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $r >>); 350 $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $s >>); 351 $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $t >>); 352 $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $u >>); 353 $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $v >>); 354 $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $w >>); 355 $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $x >>); 356 $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $y >>); 357 $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $z >>); 358 C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, C >>) 359 end). 360 361 -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Acc), case C of 362 $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $a >>); 363 $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $b >>); 364 $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $c >>); 365 $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $d >>); 366 $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $e >>); 367 $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $f >>); 368 $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $g >>); 369 $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $h >>); 370 $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $i >>); 371 $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $j >>); 372 $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $k >>); 373 $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $l >>); 374 $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $m >>); 375 $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $n >>); 376 $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $o >>); 377 $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $p >>); 378 $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $q >>); 379 $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $r >>); 380 $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $s >>); 381 $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $t >>); 382 $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $u >>); 383 $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $v >>); 384 $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $w >>); 385 $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $x >>); 386 $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $y >>); 387 $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $z >>); 388 C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, C >>) 389 end). 390 391 %% HEX(C) 392 393 -define(HEX(C), (?HEXHL(C bsr 4)), (?HEXHL(C band 16#0f))). 394 395 -define(HEXHL(HL), 396 case HL of 397 0 -> $0; 398 1 -> $1; 399 2 -> $2; 400 3 -> $3; 401 4 -> $4; 402 5 -> $5; 403 6 -> $6; 404 7 -> $7; 405 8 -> $8; 406 9 -> $9; 407 10 -> $A; 408 11 -> $B; 409 12 -> $C; 410 13 -> $D; 411 14 -> $E; 412 15 -> $F 413 end 414 ). 415 416 %% UNHEX(H, L) 417 418 -define(UNHEX(H, L), (?UNHEX(H) bsl 4 bor ?UNHEX(L))). 419 420 -define(UNHEX(C), 421 case C of 422 $0 -> 0; 423 $1 -> 1; 424 $2 -> 2; 425 $3 -> 3; 426 $4 -> 4; 427 $5 -> 5; 428 $6 -> 6; 429 $7 -> 7; 430 $8 -> 8; 431 $9 -> 9; 432 $A -> 10; 433 $B -> 11; 434 $C -> 12; 435 $D -> 13; 436 $E -> 14; 437 $F -> 15; 438 $a -> 10; 439 $b -> 11; 440 $c -> 12; 441 $d -> 13; 442 $e -> 14; 443 $f -> 15 444 end 445 ). 446 447 -endif.