aboutsummaryrefslogtreecommitdiffstats
path: root/include/cow_inline.hrl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2015-01-04 19:30:11 +0100
committerLoïc Hoguin <[email protected]>2015-01-04 19:30:11 +0100
commit8bd6a5fc574a7f2fb94d12f29f37c650b1586a31 (patch)
treef406282d8875d7dd47edf16d1aa6439580af4b90 /include/cow_inline.hrl
parent2bad1df1bc13f9d4ceadb31a1cc5905a3548769a (diff)
downloadcowlib-8bd6a5fc574a7f2fb94d12f29f37c650b1586a31.tar.gz
cowlib-8bd6a5fc574a7f2fb94d12f29f37c650b1586a31.tar.bz2
cowlib-8bd6a5fc574a7f2fb94d12f29f37c650b1586a31.zip
Simplify the cow_http_hd code
Also rename the macros for inline lowercasing to ?LOWER, and move the type detection macros to cow_parse.hrl.
Diffstat (limited to 'include/cow_inline.hrl')
-rw-r--r--include/cow_inline.hrl176
1 files changed, 29 insertions, 147 deletions
diff --git a/include/cow_inline.hrl b/include/cow_inline.hrl
index 758459e..458e011 100644
--- a/include/cow_inline.hrl
+++ b/include/cow_inline.hrl
@@ -15,95 +15,6 @@
-ifndef(COW_INLINE_HRL).
-define(COW_INLINE_HRL, 1).
-%% IS_ALPHA(Character)
-
--define(IS_ALPHA(C),
- C =:= $a orelse C =:= $b orelse C =:= $c orelse C =:= $d orelse C =:= $e orelse
- C =:= $f orelse C =:= $g orelse C =:= $h orelse C =:= $i orelse C =:= $j orelse
- C =:= $k orelse C =:= $l orelse C =:= $m orelse C =:= $n orelse C =:= $o orelse
- C =:= $p orelse C =:= $q orelse C =:= $r orelse C =:= $s orelse C =:= $t orelse
- C =:= $u orelse C =:= $v orelse C =:= $w orelse C =:= $x orelse C =:= $y orelse
- C =:= $z orelse
- C =:= $A orelse C =:= $B orelse C =:= $C orelse C =:= $D orelse C =:= $E orelse
- C =:= $F orelse C =:= $G orelse C =:= $H orelse C =:= $I orelse C =:= $J orelse
- C =:= $K orelse C =:= $L orelse C =:= $M orelse C =:= $N orelse C =:= $O orelse
- C =:= $P orelse C =:= $Q orelse C =:= $R orelse C =:= $S orelse C =:= $T orelse
- C =:= $U orelse C =:= $V orelse C =:= $W orelse C =:= $X orelse C =:= $Y orelse
- C =:= $Z
-).
-
-%% IS_ALPHANUM(Character)
-
--define(IS_ALPHANUM(C), ?IS_ALPHA(C) orelse ?IS_DIGIT(C)).
-
-%% IS_CHAR(Character)
-
--define(IS_CHAR(C), C > 0, C < 128).
-
-%% IS_DIGIT(Character)
-
--define(IS_DIGIT(C),
- C =:= $0 orelse C =:= $1 orelse C =:= $2 orelse C =:= $3 orelse C =:= $4 orelse
- C =:= $5 orelse C =:= $6 orelse C =:= $7 orelse C =:= $8 orelse C =:= $9
-).
-
-%% IS_ETAGC(Character)
-
--define(IS_ETAGC(C), C =:= 16#21; C >= 16#23, C =/= 16#7f).
-
-%% IS_HEX(Character)
-
--define(IS_HEX(C),
- ?IS_DIGIT(C) orelse
- C =:= $a orelse C =:= $b orelse C =:= $c orelse
- C =:= $d orelse C =:= $e orelse C =:= $f orelse
- C =:= $A orelse C =:= $B orelse C =:= $C orelse
- C =:= $D orelse C =:= $E orelse C =:= $F).
-
-%% IS_LHEX(Character)
-
--define(IS_LHEX(C),
- ?IS_DIGIT(C) orelse
- C =:= $a orelse C =:= $b orelse C =:= $c orelse
- C =:= $d orelse C =:= $e orelse C =:= $f).
-
-%% IS_TOKEN(Character)
-
--define(IS_TOKEN(C),
- ?IS_ALPHA(C) orelse ?IS_DIGIT(C)
- orelse C =:= $! orelse C =:= $# orelse C =:= $$ orelse C =:= $% orelse C =:= $&
- orelse C =:= $' orelse C =:= $* orelse C =:= $+ orelse C =:= $- orelse C =:= $.
- orelse C =:= $^ orelse C =:= $_ orelse C =:= $` orelse C =:= $| orelse C =:= $~
-).
-
-%% IS_TOKEN68(Character)
-
--define(IS_TOKEN68(C),
- ?IS_ALPHA(C) orelse ?IS_DIGIT(C) orelse
- C =:= $- orelse C =:= $. orelse C =:= $_ orelse
- C =:= $~ orelse C =:= $+ orelse C =:= $/).
-
-%% IS_URI_UNRESERVED(Character)
-
--define(IS_URI_UNRESERVED(C),
- ?IS_ALPHA(C) orelse ?IS_DIGIT(C) orelse
- C =:= $- orelse C =:= $. orelse C =:= $_ orelse C =:= $~).
-
-%% IS_URI_SUB_DELIMS(Character)
-
--define(IS_URI_SUB_DELIMS(C),
- C =:= $! orelse C =:= $$ orelse C =:= $& orelse C =:= $' orelse
- C =:= $( orelse C =:= $) orelse C =:= $* orelse C =:= $+ orelse
- C =:= $, orelse C =:= $; orelse C =:= $=).
-
-%% IS_VCHAR(Character)
-
--define(IS_VCHAR(C), C =:= $\t; C > 31, C < 127).
-
-%% IS_VCHAR_OBS(Character)
-
--define(IS_VCHAR_OBS(C), C =:= $\t; C > 31, C =/= 127).
-
%% LC(Character)
-define(LC(C), case C of
@@ -136,12 +47,18 @@
_ -> C
end).
-%% INLINE_LOWERCASE(Function, Rest, Acc, ...)
+%% LOWER(Bin)
+%%
+%% Lowercase the entire binary string in a binary comprehension.
+
+-define(LOWER(Bin), << << ?LC(C) >> || << C >> <= Bin >>).
+
+%% LOWERCASE(Function, Rest, Acc, ...)
%%
%% To be included at the end of a case block.
%% Defined for up to 10 extra arguments.
--define(INLINE_LOWERCASE(Function, Rest, Acc),
+-define(LOWER(Function, Rest, Acc), case C of
$A -> Function(Rest, << Acc/binary, $a >>);
$B -> Function(Rest, << Acc/binary, $b >>);
$C -> Function(Rest, << Acc/binary, $c >>);
@@ -169,9 +86,9 @@ end).
$Y -> Function(Rest, << Acc/binary, $y >>);
$Z -> Function(Rest, << Acc/binary, $z >>);
C -> Function(Rest, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, Acc),
+-define(LOWER(Function, Rest, A0, Acc), case C of
$A -> Function(Rest, A0, << Acc/binary, $a >>);
$B -> Function(Rest, A0, << Acc/binary, $b >>);
$C -> Function(Rest, A0, << Acc/binary, $c >>);
@@ -199,9 +116,9 @@ end).
$Y -> Function(Rest, A0, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, << Acc/binary, $z >>);
C -> Function(Rest, A0, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, A1, Acc),
+-define(LOWER(Function, Rest, A0, A1, Acc), case C of
$A -> Function(Rest, A0, A1, << Acc/binary, $a >>);
$B -> Function(Rest, A0, A1, << Acc/binary, $b >>);
$C -> Function(Rest, A0, A1, << Acc/binary, $c >>);
@@ -229,9 +146,9 @@ end).
$Y -> Function(Rest, A0, A1, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, A1, << Acc/binary, $z >>);
C -> Function(Rest, A0, A1, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, Acc),
+-define(LOWER(Function, Rest, A0, A1, A2, Acc), case C of
$A -> Function(Rest, A0, A1, A2, << Acc/binary, $a >>);
$B -> Function(Rest, A0, A1, A2, << Acc/binary, $b >>);
$C -> Function(Rest, A0, A1, A2, << Acc/binary, $c >>);
@@ -259,9 +176,9 @@ end).
$Y -> Function(Rest, A0, A1, A2, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, A1, A2, << Acc/binary, $z >>);
C -> Function(Rest, A0, A1, A2, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, Acc),
+-define(LOWER(Function, Rest, A0, A1, A2, A3, Acc), case C of
$A -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $a >>);
$B -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $b >>);
$C -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $c >>);
@@ -289,9 +206,9 @@ end).
$Y -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, A1, A2, A3, << Acc/binary, $z >>);
C -> Function(Rest, A0, A1, A2, A3, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, Acc),
+-define(LOWER(Function, Rest, A0, A1, A2, A3, A4, Acc), case C of
$A -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $a >>);
$B -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $b >>);
$C -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $c >>);
@@ -319,9 +236,9 @@ end).
$Y -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, $z >>);
C -> Function(Rest, A0, A1, A2, A3, A4, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, Acc),
+-define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, Acc), case C of
$A -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $a >>);
$B -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $b >>);
$C -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $c >>);
@@ -349,9 +266,9 @@ end).
$Y -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, $z >>);
C -> Function(Rest, A0, A1, A2, A3, A4, A5, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, A6, Acc),
+-define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, Acc), case C of
$A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $a >>);
$B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $b >>);
$C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $c >>);
@@ -379,9 +296,9 @@ end).
$Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, $z >>);
C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, Acc),
+-define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, Acc), case C of
$A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $a >>);
$B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $b >>);
$C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $c >>);
@@ -409,9 +326,9 @@ end).
$Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, $z >>);
C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, Acc),
+-define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, Acc), case C of
$A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $a >>);
$B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $b >>);
$C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $c >>);
@@ -439,9 +356,9 @@ end).
$Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, $z >>);
C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, << Acc/binary, C >>)
-).
+end).
--define(INLINE_LOWERCASE(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Acc),
+-define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Acc), case C of
$A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $a >>);
$B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $b >>);
$C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $c >>);
@@ -469,41 +386,6 @@ end).
$Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $y >>);
$Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, $z >>);
C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, << Acc/binary, C >>)
-).
-
-%% INLINE_LOWERCASE_BC(Bin)
-%%
-%% Lowercase the entire binary string in a binary comprehension.
-
--define(INLINE_LOWERCASE_BC(Bin),
- << << case C of
- $A -> $a;
- $B -> $b;
- $C -> $c;
- $D -> $d;
- $E -> $e;
- $F -> $f;
- $G -> $g;
- $H -> $h;
- $I -> $i;
- $J -> $j;
- $K -> $k;
- $L -> $l;
- $M -> $m;
- $N -> $n;
- $O -> $o;
- $P -> $p;
- $Q -> $q;
- $R -> $r;
- $S -> $s;
- $T -> $t;
- $U -> $u;
- $V -> $v;
- $W -> $w;
- $X -> $x;
- $Y -> $y;
- $Z -> $z;
- C -> C
- end >> || << C >> <= Bin >>).
+end).
-endif.