OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 library characters; | |
6 | |
7 const int $EOF = 0; | |
8 const int $STX = 2; | |
9 const int $BS = 8; | |
10 const int $TAB = 9; | |
11 const int $LF = 10; | |
12 const int $VTAB = 11; | |
13 const int $FF = 12; | |
14 const int $CR = 13; | |
15 const int $SPACE = 32; | |
16 const int $BANG = 33; | |
17 const int $DQ = 34; | |
18 const int $HASH = 35; | |
19 const int $$ = 36; | |
20 const int $PERCENT = 37; | |
21 const int $AMPERSAND = 38; | |
22 const int $SQ = 39; | |
23 const int $OPEN_PAREN = 40; | |
24 const int $CLOSE_PAREN = 41; | |
25 const int $STAR = 42; | |
26 const int $PLUS = 43; | |
27 const int $COMMA = 44; | |
28 const int $MINUS = 45; | |
29 const int $PERIOD = 46; | |
30 const int $SLASH = 47; | |
31 const int $0 = 48; | |
32 const int $1 = 49; | |
33 const int $2 = 50; | |
34 const int $3 = 51; | |
35 const int $4 = 52; | |
36 const int $5 = 53; | |
37 const int $6 = 54; | |
38 const int $7 = 55; | |
39 const int $8 = 56; | |
40 const int $9 = 57; | |
41 const int $COLON = 58; | |
42 const int $SEMICOLON = 59; | |
43 const int $LT = 60; | |
44 const int $EQ = 61; | |
45 const int $GT = 62; | |
46 const int $QUESTION = 63; | |
47 const int $AT = 64; | |
48 const int $A = 65; | |
49 const int $B = 66; | |
50 const int $C = 67; | |
51 const int $D = 68; | |
52 const int $E = 69; | |
53 const int $F = 70; | |
54 const int $G = 71; | |
55 const int $H = 72; | |
56 const int $I = 73; | |
57 const int $J = 74; | |
58 const int $K = 75; | |
59 const int $L = 76; | |
60 const int $M = 77; | |
61 const int $N = 78; | |
62 const int $O = 79; | |
63 const int $P = 80; | |
64 const int $Q = 81; | |
65 const int $R = 82; | |
66 const int $S = 83; | |
67 const int $T = 84; | |
68 const int $U = 85; | |
69 const int $V = 86; | |
70 const int $W = 87; | |
71 const int $X = 88; | |
72 const int $Y = 89; | |
73 const int $Z = 90; | |
74 const int $OPEN_SQUARE_BRACKET = 91; | |
75 const int $BACKSLASH = 92; | |
76 const int $CLOSE_SQUARE_BRACKET = 93; | |
77 const int $CARET = 94; | |
78 const int $_ = 95; | |
79 const int $BACKPING = 96; | |
80 const int $a = 97; | |
81 const int $b = 98; | |
82 const int $c = 99; | |
83 const int $d = 100; | |
84 const int $e = 101; | |
85 const int $f = 102; | |
86 const int $g = 103; | |
87 const int $h = 104; | |
88 const int $i = 105; | |
89 const int $j = 106; | |
90 const int $k = 107; | |
91 const int $l = 108; | |
92 const int $m = 109; | |
93 const int $n = 110; | |
94 const int $o = 111; | |
95 const int $p = 112; | |
96 const int $q = 113; | |
97 const int $r = 114; | |
98 const int $s = 115; | |
99 const int $t = 116; | |
100 const int $u = 117; | |
101 const int $v = 118; | |
102 const int $w = 119; | |
103 const int $x = 120; | |
104 const int $y = 121; | |
105 const int $z = 122; | |
106 const int $OPEN_CURLY_BRACKET = 123; | |
107 const int $BAR = 124; | |
108 const int $CLOSE_CURLY_BRACKET = 125; | |
109 const int $TILDE = 126; | |
110 const int $DEL = 127; | |
111 const int $NBSP = 160; | |
112 const int $LS = 0x2028; | |
113 const int $PS = 0x2029; | |
114 | |
115 const int $FIRST_SURROGATE = 0xd800; | |
116 const int $LAST_SURROGATE = 0xdfff; | |
117 const int $LAST_CODE_POINT = 0x10ffff; | |
118 | |
119 bool isHexDigit(int characterCode) { | |
120 if (characterCode <= $9) return $0 <= characterCode; | |
121 characterCode |= $a ^ $A; | |
122 return ($a <= characterCode && characterCode <= $f); | |
123 } | |
124 | |
125 int hexDigitValue(int hexDigit) { | |
126 assert(isHexDigit(hexDigit)); | |
127 // hexDigit is one of '0'..'9', 'A'..'F' and 'a'..'f'. | |
128 if (hexDigit <= $9) return hexDigit - $0; | |
129 return (hexDigit | ($a ^ $A)) - ($a - 10); | |
130 } | |
131 | |
132 bool isUnicodeScalarValue(int value) { | |
133 return value < $FIRST_SURROGATE || | |
134 (value > $LAST_SURROGATE && value <= $LAST_CODE_POINT); | |
135 } | |
136 | |
137 bool isUtf16LeadSurrogate(int value) { | |
138 return value >= 0xd800 && value <= 0xdbff; | |
139 } | |
140 | |
141 bool isUtf16TrailSurrogate(int value) { | |
142 return value >= 0xdc00 && value <= 0xdfff; | |
143 } | |
OLD | NEW |