cow_inline.hrl 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. %% Copyright (c) 2014, 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. -ifndef(COW_INLINE_HRL).
  15. -define(COW_INLINE_HRL, 1).
  16. %% IS_ALPHA(Character)
  17. -define(IS_ALPHA(C),
  18. C =:= $a; C =:= $b; C =:= $c; C =:= $d; C =:= $e;
  19. C =:= $f; C =:= $g; C =:= $h; C =:= $i; C =:= $j;
  20. C =:= $k; C =:= $l; C =:= $m; C =:= $n; C =:= $o;
  21. C =:= $p; C =:= $q; C =:= $r; C =:= $s; C =:= $t;
  22. C =:= $u; C =:= $v; C =:= $w; C =:= $x; C =:= $y;
  23. C =:= $z;
  24. C =:= $A; C =:= $B; C =:= $C; C =:= $D; C =:= $E;
  25. C =:= $F; C =:= $G; C =:= $H; C =:= $I; C =:= $J;
  26. C =:= $K; C =:= $L; C =:= $M; C =:= $N; C =:= $O;
  27. C =:= $P; C =:= $Q; C =:= $R; C =:= $S; C =:= $T;
  28. C =:= $U; C =:= $V; C =:= $W; C =:= $X; C =:= $Y;
  29. C =:= $Z
  30. ).
  31. %% IS_DIGIT(Character)
  32. -define(IS_DIGIT(C),
  33. C =:= $0; C =:= $1; C =:= $2; C =:= $3; C =:= $4;
  34. C =:= $5; C =:= $6; C =:= $7; C =:= $8; C =:= $9
  35. ).
  36. %% IS_ETAGC(Character)
  37. -define(IS_ETAGC(C), C =:= 16#21; C >= 16#23, C =/= 16#7f).
  38. %% IS_TOKEN(Character)
  39. -define(IS_TOKEN(C),
  40. ?IS_ALPHA(C); ?IS_DIGIT(C);
  41. C =:= $!; C =:= $#; C =:= $$; C =:= $%; C =:= $&;
  42. C =:= $'; C =:= $*; C =:= $+; C =:= $-; C =:= $.;
  43. C =:= $^; C =:= $_; C =:= $`; C =:= $|; C =:= $~
  44. ).
  45. %% IS_VCHAR(Character)
  46. -define(IS_VCHAR(C), C =:= $\t; C > 31, C =/= 127).
  47. %% INLINE_LOWERCASE(Function, Rest, Acc, ...)
  48. %%
  49. %% To be included at the end of a case block.
  50. %% Defined for up to 10 extra arguments.
  51. -define(INLINE_LOWERCASE(Function, Rest, Acc),
  52. $A -> Function(Rest, << Acc/binary, $a >>);
  53. $B -> Function(Rest, << Acc/binary, $b >>);
  54. $C -> Function(Rest, << Acc/binary, $c >>);
  55. $D -> Function(Rest, << Acc/binary, $d >>);
  56. $E -> Function(Rest, << Acc/binary, $e >>);
  57. $F -> Function(Rest, << Acc/binary, $f >>);
  58. $G -> Function(Rest, << Acc/binary, $g >>);
  59. $H -> Function(Rest, << Acc/binary, $h >>);
  60. $I -> Function(Rest, << Acc/binary, $i >>);
  61. $J -> Function(Rest, << Acc/binary, $j >>);
  62. $K -> Function(Rest, << Acc/binary, $k >>);
  63. $L -> Function(Rest, << Acc/binary, $l >>);
  64. $M -> Function(Rest, << Acc/binary, $m >>);
  65. $N -> Function(Rest, << Acc/binary, $n >>);
  66. $O -> Function(Rest, << Acc/binary, $o >>);
  67. $P -> Function(Rest, << Acc/binary, $p >>);
  68. $Q -> Function(Rest, << Acc/binary, $q >>);
  69. $R -> Function(Rest, << Acc/binary, $r >>);
  70. $S -> Function(Rest, << Acc/binary, $s >>);
  71. $T -> Function(Rest, << Acc/binary, $t >>);
  72. $U -> Function(Rest, << Acc/binary, $u >>);
  73. $V -> Function(Rest, << Acc/binary, $v >>);
  74. $W -> Function(Rest, << Acc/binary, $w >>);
  75. $X -> Function(Rest, << Acc/binary, $x >>);
  76. $Y -> Function(Rest, << Acc/binary, $y >>);
  77. $Z -> Function(Rest, << Acc/binary, $z >>);
  78. C -> Function(Rest, << Acc/binary, C >>)
  79. ).
  80. -define(INLINE_LOWERCASE(Function, Rest, A0, Acc),
  81. $A -> Function(Rest, A0, << Acc/binary, $a >>);
  82. $B -> Function(Rest, A0, << Acc/binary, $b >>);
  83. $C -> Function(Rest, A0, << Acc/binary, $c >>);
  84. $D -> Function(Rest, A0, << Acc/binary, $d >>);
  85. $E -> Function(Rest, A0, << Acc/binary, $e >>);
  86. $F -> Function(Rest, A0, << Acc/binary, $f >>);
  87. $G -> Function(Rest, A0, << Acc/binary, $g >>);
  88. $H -> Function(Rest, A0, << Acc/binary, $h >>);
  89. $I -> Function(Rest, A0, << Acc/binary, $i >>);
  90. $J -> Function(Rest, A0, << Acc/binary, $j >>);
  91. $K -> Function(Rest, A0, << Acc/binary, $k >>);
  92. $L -> Function(Rest, A0, << Acc/binary, $l >>);
  93. $M -> Function(Rest, A0, << Acc/binary, $m >>);
  94. $N -> Function(Rest, A0, << Acc/binary, $n >>);
  95. $O -> Function(Rest, A0, << Acc/binary, $o >>);
  96. $P -> Function(Rest, A0, << Acc/binary, $p >>);
  97. $Q -> Function(Rest, A0, << Acc/binary, $q >>);
  98. $R -> Function(Rest, A0, << Acc/binary, $r >>);
  99. $S -> Function(Rest, A0, << Acc/binary, $s >>);
  100. $T -> Function(Rest, A0, << Acc/binary, $t >>);
  101. $U -> Function(Rest, A0, << Acc/binary, $u >>);
  102. $V -> Function(Rest, A0, << Acc/binary, $v >>);
  103. $W -> Function(Rest, A0, << Acc/binary, $w >>);
  104. $X -> Function(Rest, A0, << Acc/binary, $x >>);
  105. $Y -> Function(Rest, A0, << Acc/binary, $y >>);
  106. $Z -> Function(Rest, A0, << Acc/binary, $z >>);
  107. C -> Function(Rest, A0, << Acc/binary, C >>)
  108. ).
  109. -define(INLINE_LOWERCASE(Function, Rest, A0, A1, Acc),
  110. $A -> Function(Rest, A0, A1, << Acc/binary, $a >>);
  111. $B -> Function(Rest, A0, A1, << Acc/binary, $b >>);
  112. $C -> Function(Rest, A0, A1, << Acc/binary, $c >>);
  113. $D -> Function(Rest, A0, A1, << Acc/binary, $d >>);
  114. $E -> Function(Rest, A0, A1, << Acc/binary, $e >>);
  115. $F -> Function(Rest, A0, A1, << Acc/binary, $f >>);
  116. $G -> Function(Rest, A0, A1, << Acc/binary, $g >>);
  117. $H -> Function(Rest, A0, A1, << Acc/binary, $h >>);
  118. $I -> Function(Rest, A0, A1, << Acc/binary, $i >>);
  119. $J -> Function(Rest, A0, A1, << Acc/binary, $j >>);
  120. $K -> Function(Rest, A0, A1, << Acc/binary, $k >>);
  121. $L -> Function(Rest, A0, A1, << Acc/binary, $l >>);
  122. $M -> Function(Rest, A0, A1, << Acc/binary, $m >>);
  123. $N -> Function(Rest, A0, A1, << Acc/binary, $n >>);
  124. $O -> Function(Rest, A0, A1, << Acc/binary, $o >>);
  125. $P -> Function(Rest, A0, A1, << Acc/binary, $p >>);
  126. $Q -> Function(Rest, A0, A1, << Acc/binary, $q >>);
  127. $R -> Function(Rest, A0, A1, << Acc/binary, $r >>);
  128. $S -> Function(Rest, A0, A1, << Acc/binary, $s >>);
  129. $T -> Function(Rest, A0, A1, << Acc/binary, $t >>);
  130. $U -> Function(Rest, A0, A1, << Acc/binary, $u >>);
  131. $V -> Function(Rest, A0, A1, << Acc/binary, $v >>);
  132. $W -> Function(Rest, A0, A1, << Acc/binary, $w >>);
  133. $X -> Function(Rest, A0, A1, << Acc/binary, $x >>);
  134. $Y -> Function(Rest, A0, A1, << Acc/binary, $y >>);
  135. $Z -> Function(Rest, A0, A1, << Acc/binary, $z >>);
  136. C -> Function(Rest, A0, A1, << Acc/binary, C >>)
  137. ).
  138. -define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, Acc),
  139. $A -> Function(Rest, A0, A1, A2, << Acc/binary, $a >>);
  140. $B -> Function(Rest, A0, A1, A2, << Acc/binary, $b >>);
  141. $C -> Function(Rest, A0, A1, A2, << Acc/binary, $c >>);
  142. $D -> Function(Rest, A0, A1, A2, << Acc/binary, $d >>);
  143. $E -> Function(Rest, A0, A1, A2, << Acc/binary, $e >>);
  144. $F -> Function(Rest, A0, A1, A2, << Acc/binary, $f >>);
  145. $G -> Function(Rest, A0, A1, A2, << Acc/binary, $g >>);
  146. $H -> Function(Rest, A0, A1, A2, << Acc/binary, $h >>);
  147. $I -> Function(Rest, A0, A1, A2, << Acc/binary, $i >>);
  148. $J -> Function(Rest, A0, A1, A2, << Acc/binary, $j >>);
  149. $K -> Function(Rest, A0, A1, A2, << Acc/binary, $k >>);
  150. $L -> Function(Rest, A0, A1, A2, << Acc/binary, $l >>);
  151. $M -> Function(Rest, A0, A1, A2, << Acc/binary, $m >>);
  152. $N -> Function(Rest, A0, A1, A2, << Acc/binary, $n >>);
  153. $O -> Function(Rest, A0, A1, A2, << Acc/binary, $o >>);
  154. $P -> Function(Rest, A0, A1, A2, << Acc/binary, $p >>);
  155. $Q -> Function(Rest, A0, A1, A2, << Acc/binary, $q >>);
  156. $R -> Function(Rest, A0, A1, A2, << Acc/binary, $r >>);
  157. $S -> Function(Rest, A0, A1, A2, << Acc/binary, $s >>);
  158. $T -> Function(Rest, A0, A1, A2, << Acc/binary, $t >>);
  159. $U -> Function(Rest, A0, A1, A2, << Acc/binary, $u >>);
  160. $V -> Function(Rest, A0, A1, A2, << Acc/binary, $v >>);
  161. $W -> Function(Rest, A0, A1, A2, << Acc/binary, $w >>);
  162. $X -> Function(Rest, A0, A1, A2, << Acc/binary, $x >>);
  163. $Y -> Function(Rest, A0, A1, A2, << Acc/binary, $y >>);
  164. $Z -> Function(Rest, A0, A1, A2, << Acc/binary, $z >>);
  165. C -> Function(Rest, A0, A1, A2, << Acc/binary, C >>)
  166. ).
  167. -define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, Acc),
  168. $A -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $a >>);
  169. $B -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $b >>);
  170. $C -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $c >>);
  171. $D -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $d >>);
  172. $E -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $e >>);
  173. $F -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $f >>);
  174. $G -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $g >>);
  175. $H -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $h >>);
  176. $I -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $i >>);
  177. $J -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $j >>);
  178. $K -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $k >>);
  179. $L -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $l >>);
  180. $M -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $m >>);
  181. $N -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $n >>);
  182. $O -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $o >>);
  183. $P -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $p >>);
  184. $Q -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $q >>);
  185. $R -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $r >>);
  186. $S -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $s >>);
  187. $T -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $t >>);
  188. $U -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $u >>);
  189. $V -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $v >>);
  190. $W -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $w >>);
  191. $X -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $x >>);
  192. $Y -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $y >>);
  193. $Z -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $z >>);
  194. C -> Function(Rest, A0, A1, A2, A3, << Acc/binary, C >>)
  195. ).
  196. -define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, Acc),
  197. $A -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $a >>);
  198. $B -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $b >>);
  199. $C -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $c >>);
  200. $D -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $d >>);
  201. $E -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $e >>);
  202. $F -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $f >>);
  203. $G -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $g >>);
  204. $H -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $h >>);
  205. $I -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $i >>);
  206. $J -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $j >>);
  207. $K -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $k >>);
  208. $L -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $l >>);
  209. $M -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $m >>);
  210. $N -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $n >>);
  211. $O -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $o >>);
  212. $P -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $p >>);
  213. $Q -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $q >>);
  214. $R -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $r >>);
  215. $S -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $s >>);
  216. $T -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $t >>);
  217. $U -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $u >>);
  218. $V -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $v >>);
  219. $W -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $w >>);
  220. $X -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $x >>);
  221. $Y -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $y >>);
  222. $Z -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $z >>);
  223. C -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, C >>)
  224. ).
  225. -define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, Acc),
  226. $A -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $a >>);
  227. $B -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $b >>);
  228. $C -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $c >>);
  229. $D -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $d >>);
  230. $E -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $e >>);
  231. $F -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $f >>);
  232. $G -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $g >>);
  233. $H -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $h >>);
  234. $I -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $i >>);
  235. $J -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $j >>);
  236. $K -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $k >>);
  237. $L -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $l >>);
  238. $M -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $m >>);
  239. $N -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $n >>);
  240. $O -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $o >>);
  241. $P -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $p >>);
  242. $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $q >>);
  243. $R -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $r >>);
  244. $S -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $s >>);
  245. $T -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $t >>);
  246. $U -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $u >>);
  247. $V -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $v >>);
  248. $W -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $w >>);
  249. $X -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $x >>);
  250. $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $y >>);
  251. $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $z >>);
  252. C -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, C >>)
  253. ).
  254. -define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, A6, Acc),
  255. $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $a >>);
  256. $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $b >>);
  257. $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $c >>);
  258. $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $d >>);
  259. $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $e >>);
  260. $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $f >>);
  261. $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $g >>);
  262. $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $h >>);
  263. $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $i >>);
  264. $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $j >>);
  265. $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $k >>);
  266. $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $l >>);
  267. $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $m >>);
  268. $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $n >>);
  269. $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $o >>);
  270. $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $p >>);
  271. $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $q >>);
  272. $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $r >>);
  273. $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $s >>);
  274. $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $t >>);
  275. $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $u >>);
  276. $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $v >>);
  277. $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $w >>);
  278. $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $x >>);
  279. $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $y >>);
  280. $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $z >>);
  281. C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, C >>)
  282. ).
  283. -define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, Acc),
  284. $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $a >>);
  285. $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $b >>);
  286. $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $c >>);
  287. $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $d >>);
  288. $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $e >>);
  289. $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $f >>);
  290. $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $g >>);
  291. $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $h >>);
  292. $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $i >>);
  293. $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $j >>);
  294. $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $k >>);
  295. $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $l >>);
  296. $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $m >>);
  297. $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $n >>);
  298. $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $o >>);
  299. $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $p >>);
  300. $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $q >>);
  301. $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $r >>);
  302. $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $s >>);
  303. $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $t >>);
  304. $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $u >>);
  305. $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $v >>);
  306. $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $w >>);
  307. $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $x >>);
  308. $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $y >>);
  309. $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $z >>);
  310. C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, C >>)
  311. ).
  312. -define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, Acc),
  313. $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $a >>);
  314. $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $b >>);
  315. $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $c >>);
  316. $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $d >>);
  317. $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $e >>);
  318. $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $f >>);
  319. $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $g >>);
  320. $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $h >>);
  321. $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $i >>);
  322. $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $j >>);
  323. $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $k >>);
  324. $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $l >>);
  325. $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $m >>);
  326. $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $n >>);
  327. $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $o >>);
  328. $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $p >>);
  329. $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $q >>);
  330. $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $r >>);
  331. $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $s >>);
  332. $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $t >>);
  333. $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $u >>);
  334. $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $v >>);
  335. $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $w >>);
  336. $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $x >>);
  337. $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $y >>);
  338. $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $z >>);
  339. C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, C >>)
  340. ).
  341. -define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Acc),
  342. $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $a >>);
  343. $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $b >>);
  344. $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $c >>);
  345. $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $d >>);
  346. $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $e >>);
  347. $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $f >>);
  348. $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $g >>);
  349. $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $h >>);
  350. $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $i >>);
  351. $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $j >>);
  352. $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $k >>);
  353. $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $l >>);
  354. $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $m >>);
  355. $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $n >>);
  356. $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $o >>);
  357. $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $p >>);
  358. $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $q >>);
  359. $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $r >>);
  360. $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $s >>);
  361. $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $t >>);
  362. $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $u >>);
  363. $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $v >>);
  364. $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $w >>);
  365. $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $x >>);
  366. $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $y >>);
  367. $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $z >>);
  368. C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, C >>)
  369. ).
  370. %% INLINE_LOWERCASE_BC(Bin)
  371. %%
  372. %% Lowercase the entire binary string in a binary comprehension.
  373. -define(INLINE_LOWERCASE_BC(Bin),
  374. << << case C of
  375. $A -> $a;
  376. $B -> $b;
  377. $C -> $c;
  378. $D -> $d;
  379. $E -> $e;
  380. $F -> $f;
  381. $G -> $g;
  382. $H -> $h;
  383. $I -> $i;
  384. $J -> $j;
  385. $K -> $k;
  386. $L -> $l;
  387. $M -> $m;
  388. $N -> $n;
  389. $O -> $o;
  390. $P -> $p;
  391. $Q -> $q;
  392. $R -> $r;
  393. $S -> $s;
  394. $T -> $t;
  395. $U -> $u;
  396. $V -> $v;
  397. $W -> $w;
  398. $X -> $x;
  399. $Y -> $y;
  400. $Z -> $z;
  401. C -> C
  402. end >> || << C >> <= Bin >>).
  403. -endif.