hpricot 0.8.2-java
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +88 -0
- data/COPYING +18 -0
- data/README +275 -0
- data/Rakefile +272 -0
- data/ext/fast_xs/FastXsService.java +1030 -0
- data/ext/fast_xs/extconf.rb +4 -0
- data/ext/fast_xs/fast_xs.c +201 -0
- data/ext/hpricot_scan/HpricotCss.java +831 -0
- data/ext/hpricot_scan/HpricotScanService.java +2086 -0
- data/ext/hpricot_scan/extconf.rb +6 -0
- data/ext/hpricot_scan/hpricot_common.rl +76 -0
- data/ext/hpricot_scan/hpricot_css.c +3503 -0
- data/ext/hpricot_scan/hpricot_css.java.rl +155 -0
- data/ext/hpricot_scan/hpricot_css.rl +115 -0
- data/ext/hpricot_scan/hpricot_scan.c +6927 -0
- data/ext/hpricot_scan/hpricot_scan.h +79 -0
- data/ext/hpricot_scan/hpricot_scan.java.rl +1152 -0
- data/ext/hpricot_scan/hpricot_scan.rl +788 -0
- data/extras/mingw-rbconfig.rb +176 -0
- data/lib/fast_xs.jar +0 -0
- data/lib/hpricot.rb +26 -0
- data/lib/hpricot/blankslate.rb +63 -0
- data/lib/hpricot/builder.rb +216 -0
- data/lib/hpricot/elements.rb +510 -0
- data/lib/hpricot/htmlinfo.rb +691 -0
- data/lib/hpricot/inspect.rb +103 -0
- data/lib/hpricot/modules.rb +40 -0
- data/lib/hpricot/parse.rb +38 -0
- data/lib/hpricot/tag.rb +219 -0
- data/lib/hpricot/tags.rb +164 -0
- data/lib/hpricot/traverse.rb +839 -0
- data/lib/hpricot/xchar.rb +94 -0
- data/lib/hpricot_scan.jar +0 -0
- data/test/files/basic.xhtml +17 -0
- data/test/files/boingboing.html +2266 -0
- data/test/files/cy0.html +3653 -0
- data/test/files/immob.html +400 -0
- data/test/files/pace_application.html +1320 -0
- data/test/files/tenderlove.html +16 -0
- data/test/files/uswebgen.html +220 -0
- data/test/files/utf8.html +1054 -0
- data/test/files/week9.html +1723 -0
- data/test/files/why.xml +19 -0
- data/test/load_files.rb +7 -0
- data/test/nokogiri-bench.rb +64 -0
- data/test/test_alter.rb +96 -0
- data/test/test_builder.rb +37 -0
- data/test/test_parser.rb +428 -0
- data/test/test_paths.rb +25 -0
- data/test/test_preserved.rb +88 -0
- data/test/test_xml.rb +28 -0
- metadata +112 -0
@@ -0,0 +1,201 @@
|
|
1
|
+
#define VERSION "0.1"
|
2
|
+
|
3
|
+
#include <ruby.h>
|
4
|
+
#include <assert.h>
|
5
|
+
/* #include <stdio.h> */
|
6
|
+
|
7
|
+
#ifndef RARRAY_LEN
|
8
|
+
#define RARRAY_LEN(arr) RARRAY(arr)->len
|
9
|
+
#define RARRAY_PTR(arr) RARRAY(arr)->ptr
|
10
|
+
#define RSTRING_LEN(str) RSTRING(str)->len
|
11
|
+
#define RSTRING_PTR(str) RSTRING(str)->ptr
|
12
|
+
#endif
|
13
|
+
|
14
|
+
static ID unpack_id;
|
15
|
+
static VALUE U_fmt, C_fmt;
|
16
|
+
|
17
|
+
/* give GCC hints for better branch prediction
|
18
|
+
* (we layout branches so that ASCII characters are handled faster) */
|
19
|
+
#if defined(__GNUC__) && (__GNUC__ >= 3)
|
20
|
+
# define likely(x) __builtin_expect (!!(x), 1)
|
21
|
+
# define unlikely(x) __builtin_expect (!!(x), 0)
|
22
|
+
#else
|
23
|
+
# define unlikely(x) (x)
|
24
|
+
# define likely(x) (x)
|
25
|
+
#endif
|
26
|
+
|
27
|
+
/* pass-through certain characters for CP-1252 */
|
28
|
+
#define p(x) (x-128)
|
29
|
+
|
30
|
+
static const int cp_1252[] = {
|
31
|
+
8364, /* 128 => 8364, euro sign */
|
32
|
+
p(129), /* 129 => 129, pass-through */
|
33
|
+
8218, /* 130 => 8218, single low-9 quotation mark */
|
34
|
+
402, /* 131 => 402, latin small letter f with hook */
|
35
|
+
8222, /* 132 => 8222, double low-9 quotation mark */
|
36
|
+
8230, /* 133 => 8230, horizontal ellipsis */
|
37
|
+
8224, /* 134 => 8224, dagger */
|
38
|
+
8225, /* 135 => 8225, double dagger */
|
39
|
+
710, /* 136 => 710, modifier letter circumflex accent */
|
40
|
+
8240, /* 137 => 8240, per mille sign */
|
41
|
+
352, /* 138 => 352, latin capital letter s with caron */
|
42
|
+
8249, /* 139 => 8249, single left-pointing angle quotation mark */
|
43
|
+
338, /* 140 => 338, latin capital ligature oe */
|
44
|
+
p(141), /* 141 => 141, pass-through */
|
45
|
+
381, /* 142 => 381, latin capital letter z with caron */
|
46
|
+
p(143), /* 143 => 143, pass-through */
|
47
|
+
p(144), /* 144 => 144, pass-through */
|
48
|
+
8216, /* 145 => 8216, left single quotation mark */
|
49
|
+
8217, /* 146 => 8217, right single quotation mark */
|
50
|
+
8220, /* 147 => 8220, left double quotation mark */
|
51
|
+
8221, /* 148 => 8221, right double quotation mark */
|
52
|
+
8226, /* 149 => 8226, bullet */
|
53
|
+
8211, /* 150 => 8211, en dash */
|
54
|
+
8212, /* 151 => 8212, em dash */
|
55
|
+
732, /* 152 => 732, small tilde */
|
56
|
+
8482, /* 153 => 8482, trade mark sign */
|
57
|
+
353, /* 154 => 353, latin small letter s with caron */
|
58
|
+
8250, /* 155 => 8250, single right-pointing angle quotation mark */
|
59
|
+
339, /* 156 => 339, latin small ligature oe */
|
60
|
+
p(157), /* 157 => 157, pass-through */
|
61
|
+
382, /* 158 => 382, latin small letter z with caron */
|
62
|
+
376 /* 159 => 376} latin capital letter y with diaeresis */
|
63
|
+
};
|
64
|
+
|
65
|
+
#define VALID_VALUE(n) \
|
66
|
+
(n >= 0x20 && n <= 0xD7FF) || \
|
67
|
+
(n >= 0xE000 && n <= 0xFFFD) || \
|
68
|
+
(n >= 0x10000 && n <= 0x10FFFF)
|
69
|
+
|
70
|
+
#define CP_1252_ESCAPE(n) do { \
|
71
|
+
if (n >= 128 && n <= 159) \
|
72
|
+
n = cp_1252[n - 128]; \
|
73
|
+
} while(0)
|
74
|
+
|
75
|
+
#define return_const_len(x) do { \
|
76
|
+
memcpy(buf, x, sizeof(x) - 1); \
|
77
|
+
return (sizeof(x) - 1); \
|
78
|
+
} while (0)
|
79
|
+
|
80
|
+
static inline size_t bytes_for(int n)
|
81
|
+
{
|
82
|
+
if (n < 1000)
|
83
|
+
return sizeof("ϧ") - 1;
|
84
|
+
if (n < 10000)
|
85
|
+
return sizeof("✏") - 1;
|
86
|
+
if (n < 100000)
|
87
|
+
return sizeof("𘚟") - 1;
|
88
|
+
if (n < 1000000)
|
89
|
+
return sizeof("󴈿") - 1;
|
90
|
+
/* if (n < 10000000), we won't have cases above 0x10FFFF */
|
91
|
+
return sizeof("�") - 1;
|
92
|
+
}
|
93
|
+
|
94
|
+
static long escape(char *buf, int n)
|
95
|
+
{
|
96
|
+
/* handle ASCII first */
|
97
|
+
if (likely(n < 128)) {
|
98
|
+
if (likely(n >= 0x20 || n == 0x9 || n == 0xA || n == 0xD)) {
|
99
|
+
if (unlikely(n == 34))
|
100
|
+
return_const_len(""");
|
101
|
+
if (unlikely(n == 38))
|
102
|
+
return_const_len("&");
|
103
|
+
if (unlikely(n == 60))
|
104
|
+
return_const_len("<");
|
105
|
+
if (unlikely(n == 62))
|
106
|
+
return_const_len(">");
|
107
|
+
buf[0] = (char)n;
|
108
|
+
return 1;
|
109
|
+
}
|
110
|
+
|
111
|
+
buf[0] = '*';
|
112
|
+
return 1;
|
113
|
+
}
|
114
|
+
|
115
|
+
CP_1252_ESCAPE(n);
|
116
|
+
|
117
|
+
if (VALID_VALUE(n)) {
|
118
|
+
/* return snprintf(buf, sizeof(""), "&#%i;", n); */
|
119
|
+
RUBY_EXTERN const char ruby_digitmap[];
|
120
|
+
int rv = 3; /* &#; */
|
121
|
+
buf += bytes_for(n);
|
122
|
+
*--buf = ';';
|
123
|
+
do {
|
124
|
+
*--buf = ruby_digitmap[(int)(n % 10)];
|
125
|
+
++rv;
|
126
|
+
} while (n /= 10);
|
127
|
+
*--buf = '#';
|
128
|
+
*--buf = '&';
|
129
|
+
return rv;
|
130
|
+
}
|
131
|
+
buf[0] = '*';
|
132
|
+
return 1;
|
133
|
+
}
|
134
|
+
|
135
|
+
#undef return_const_len
|
136
|
+
|
137
|
+
static long escaped_len(int n)
|
138
|
+
{
|
139
|
+
if (likely(n < 128)) {
|
140
|
+
if (unlikely(n == 34))
|
141
|
+
return (sizeof(""") - 1);
|
142
|
+
if (unlikely(n == 38))
|
143
|
+
return (sizeof("&") - 1);
|
144
|
+
if (unlikely(n == 60 || n == 62))
|
145
|
+
return (sizeof(">") - 1);
|
146
|
+
return 1;
|
147
|
+
}
|
148
|
+
|
149
|
+
CP_1252_ESCAPE(n);
|
150
|
+
|
151
|
+
if (VALID_VALUE(n))
|
152
|
+
return bytes_for(n);
|
153
|
+
return 1;
|
154
|
+
}
|
155
|
+
|
156
|
+
static VALUE unpack_utf8(VALUE self)
|
157
|
+
{
|
158
|
+
return rb_funcall(self, unpack_id, 1, U_fmt);
|
159
|
+
}
|
160
|
+
|
161
|
+
static VALUE unpack_uchar(VALUE self)
|
162
|
+
{
|
163
|
+
return rb_funcall(self, unpack_id, 1, C_fmt);
|
164
|
+
}
|
165
|
+
|
166
|
+
VALUE fast_xs(VALUE self)
|
167
|
+
{
|
168
|
+
long i;
|
169
|
+
struct RArray *array;
|
170
|
+
char *s, *c;
|
171
|
+
long s_len = 0;
|
172
|
+
VALUE *tmp;
|
173
|
+
|
174
|
+
array = RARRAY(rb_rescue(unpack_utf8, self, unpack_uchar, self));
|
175
|
+
|
176
|
+
tmp = RARRAY_PTR(array);
|
177
|
+
for (i = RARRAY_LEN(array); --i >= 0; tmp++)
|
178
|
+
s_len += escaped_len(NUM2INT(*tmp));
|
179
|
+
|
180
|
+
c = s = alloca(s_len + 1);
|
181
|
+
|
182
|
+
tmp = RARRAY_PTR(array);
|
183
|
+
for (i = RARRAY_LEN(array); --i >= 0; tmp++)
|
184
|
+
c += escape(c, NUM2INT(*tmp));
|
185
|
+
|
186
|
+
*c = '\0';
|
187
|
+
return rb_str_new(s, s_len);
|
188
|
+
}
|
189
|
+
|
190
|
+
void Init_fast_xs(void)
|
191
|
+
{
|
192
|
+
assert(cp_1252[159 - 128] == 376); /* just in case I skipped a line */
|
193
|
+
|
194
|
+
unpack_id = rb_intern("unpack");
|
195
|
+
U_fmt = rb_str_new("U*", 2);
|
196
|
+
C_fmt = rb_str_new("C*", 2);
|
197
|
+
rb_global_variable(&U_fmt);
|
198
|
+
rb_global_variable(&C_fmt);
|
199
|
+
|
200
|
+
rb_define_method(rb_cString, "fast_xs", fast_xs, 0);
|
201
|
+
}
|
@@ -0,0 +1,831 @@
|
|
1
|
+
// line 1 "hpricot_css.java.rl"
|
2
|
+
import java.io.IOException;
|
3
|
+
|
4
|
+
import org.jruby.Ruby;
|
5
|
+
import org.jruby.RubyArray;
|
6
|
+
import org.jruby.RubyClass;
|
7
|
+
import org.jruby.RubyHash;
|
8
|
+
import org.jruby.RubyModule;
|
9
|
+
import org.jruby.RubyNumeric;
|
10
|
+
import org.jruby.RubyObject;
|
11
|
+
import org.jruby.RubyObjectAdapter;
|
12
|
+
import org.jruby.RubyRegexp;
|
13
|
+
import org.jruby.RubyString;
|
14
|
+
import org.jruby.anno.JRubyMethod;
|
15
|
+
import org.jruby.exceptions.RaiseException;
|
16
|
+
import org.jruby.javasupport.JavaEmbedUtils;
|
17
|
+
import org.jruby.runtime.Arity;
|
18
|
+
import org.jruby.runtime.Block;
|
19
|
+
import org.jruby.runtime.ObjectAllocator;
|
20
|
+
import org.jruby.runtime.ThreadContext;
|
21
|
+
import org.jruby.runtime.builtin.IRubyObject;
|
22
|
+
import org.jruby.runtime.callback.Callback;
|
23
|
+
import org.jruby.exceptions.RaiseException;
|
24
|
+
import org.jruby.runtime.load.BasicLibraryService;
|
25
|
+
import org.jruby.util.ByteList;
|
26
|
+
|
27
|
+
public class HpricotCss {
|
28
|
+
public void FILTER(String id) {
|
29
|
+
IRubyObject[] args = new IRubyObject[fargs];
|
30
|
+
System.arraycopy(fvals, 0, args, 0, fargs);
|
31
|
+
mod.callMethod(ctx, id, args);
|
32
|
+
tmpt.rb_clear();
|
33
|
+
fargs = 1;
|
34
|
+
}
|
35
|
+
|
36
|
+
public void FILTERAUTO() {
|
37
|
+
try {
|
38
|
+
FILTER(new String(data, ts, te - ts, "ISO-8859-1"));
|
39
|
+
} catch(java.io.UnsupportedEncodingException e) {}
|
40
|
+
}
|
41
|
+
|
42
|
+
public void PUSH(int aps, int ape) {
|
43
|
+
RubyString str = RubyString.newString(runtime, data, aps, ape-aps);
|
44
|
+
fvals[fargs++] = str;
|
45
|
+
tmpt.append(str);
|
46
|
+
}
|
47
|
+
|
48
|
+
private IRubyObject self, mod, str, node;
|
49
|
+
private int cs, act, eof, p, pe, ts, te, aps, ape, aps2, ape2;
|
50
|
+
private byte[] data;
|
51
|
+
|
52
|
+
private int fargs = 1;
|
53
|
+
private IRubyObject[] fvals = new IRubyObject[6];
|
54
|
+
private RubyArray focus;
|
55
|
+
private RubyArray tmpt;
|
56
|
+
private Ruby runtime;
|
57
|
+
private ThreadContext ctx;
|
58
|
+
|
59
|
+
public HpricotCss(IRubyObject self, IRubyObject mod, IRubyObject str, IRubyObject node) {
|
60
|
+
this.self = self;
|
61
|
+
this.mod = mod;
|
62
|
+
this.str = str;
|
63
|
+
this.node = node;
|
64
|
+
this.runtime = self.getRuntime();
|
65
|
+
this.ctx = runtime.getCurrentContext();
|
66
|
+
this.focus = RubyArray.newArray(runtime, node);
|
67
|
+
this.tmpt = runtime.newArray();
|
68
|
+
|
69
|
+
fvals[0] = focus;
|
70
|
+
|
71
|
+
if(!(str instanceof RubyString)) {
|
72
|
+
throw runtime.newArgumentError("bad CSS selector, String only please.");
|
73
|
+
}
|
74
|
+
|
75
|
+
ByteList bl = ((RubyString)str).getByteList();
|
76
|
+
|
77
|
+
data = bl.bytes;
|
78
|
+
p = bl.begin;
|
79
|
+
pe = p + bl.realSize;
|
80
|
+
eof = pe;
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
// line 85 "HpricotCss.java"
|
85
|
+
private static byte[] init__hpricot_css_actions_0()
|
86
|
+
{
|
87
|
+
return new byte [] {
|
88
|
+
0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 6, 1,
|
89
|
+
7, 1, 15, 1, 19, 1, 22, 1, 24, 1, 28, 1,
|
90
|
+
29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1,
|
91
|
+
35, 2, 0, 3, 2, 1, 14, 2, 1, 16, 2, 1,
|
92
|
+
17, 2, 1, 18, 2, 1, 20, 2, 1, 21, 2, 1,
|
93
|
+
23, 2, 1, 25, 2, 1, 26, 2, 1, 27, 2, 4,
|
94
|
+
5, 2, 7, 8, 2, 7, 9, 2, 7, 10, 2, 7,
|
95
|
+
11, 2, 7, 12, 2, 7, 13, 3, 0, 1, 16, 3,
|
96
|
+
0, 1, 18, 3, 7, 0, 8, 3, 7, 0, 9, 3,
|
97
|
+
7, 0, 10, 3, 7, 0, 13, 3, 7, 1, 13
|
98
|
+
};
|
99
|
+
}
|
100
|
+
|
101
|
+
private static final byte _hpricot_css_actions[] = init__hpricot_css_actions_0();
|
102
|
+
|
103
|
+
|
104
|
+
private static short[] init__hpricot_css_key_offsets_0()
|
105
|
+
{
|
106
|
+
return new short [] {
|
107
|
+
0, 0, 4, 20, 21, 23, 25, 27, 29, 30, 32, 34,
|
108
|
+
36, 38, 54, 55, 57, 59, 61, 63, 85, 89, 92, 95,
|
109
|
+
98, 99, 100, 101, 103, 107, 111, 114, 115, 116, 118, 119,
|
110
|
+
120, 122, 123, 125, 127, 129, 131, 137, 142, 153, 161, 165,
|
111
|
+
169, 173, 176, 180, 184, 201, 221, 222, 228, 229, 235, 237,
|
112
|
+
238, 239, 241, 242, 246, 253, 259, 261, 264, 267, 270, 272,
|
113
|
+
275, 277, 278, 299, 320, 341, 361, 384, 401, 403, 406, 409,
|
114
|
+
412, 415, 417, 419, 449, 453, 456, 472, 477, 495, 511, 527,
|
115
|
+
544, 563, 580, 598, 616, 634, 652, 670, 688, 705, 723, 741,
|
116
|
+
759, 777, 795, 812, 830, 849, 867, 885, 904, 922, 940, 958,
|
117
|
+
975, 976, 977, 994, 1011, 1027, 1044
|
118
|
+
};
|
119
|
+
}
|
120
|
+
|
121
|
+
private static final short _hpricot_css_key_offsets[] = init__hpricot_css_key_offsets_0();
|
122
|
+
|
123
|
+
|
124
|
+
private static char[] init__hpricot_css_trans_keys_0()
|
125
|
+
{
|
126
|
+
return new char [] {
|
127
|
+
32, 44, 9, 13, 45, 92, 95, 196, 48, 57, 65, 90,
|
128
|
+
97, 122, 197, 223, 224, 239, 240, 244, 46, 168, 191, 128,
|
129
|
+
191, 128, 191, 128, 191, 46, 168, 191, 128, 191, 128, 191,
|
130
|
+
128, 191, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122,
|
131
|
+
197, 223, 224, 239, 240, 244, 46, 168, 191, 128, 191, 128,
|
132
|
+
191, 128, 191, 45, 92, 95, 101, 102, 103, 108, 110, 111,
|
133
|
+
196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240,
|
134
|
+
244, 34, 39, 40, 41, 34, 40, 41, 34, 40, 41, 34,
|
135
|
+
40, 41, 41, 41, 41, 34, 40, 34, 39, 40, 41, 34,
|
136
|
+
39, 40, 41, 39, 40, 41, 41, 41, 39, 40, 41, 41,
|
137
|
+
40, 41, 46, 168, 191, 128, 191, 128, 191, 128, 191, 34,
|
138
|
+
39, 40, 41, 48, 57, 34, 40, 41, 48, 57, 34, 39,
|
139
|
+
40, 41, 43, 45, 101, 110, 111, 48, 57, 34, 40, 41,
|
140
|
+
43, 45, 110, 48, 57, 34, 40, 41, 118, 34, 40, 41,
|
141
|
+
101, 34, 40, 41, 110, 34, 40, 41, 34, 40, 41, 100,
|
142
|
+
34, 40, 41, 100, 45, 92, 95, 110, 196, 48, 57, 65,
|
143
|
+
90, 97, 122, 197, 223, 224, 239, 240, 244, 32, 45, 61,
|
144
|
+
92, 95, 196, 9, 13, 48, 57, 65, 90, 97, 122, 197,
|
145
|
+
223, 224, 239, 240, 244, 61, 32, 34, 39, 93, 9, 13,
|
146
|
+
93, 32, 34, 39, 93, 9, 13, 34, 93, 34, 93, 39,
|
147
|
+
93, 39, 32, 61, 9, 13, 32, 34, 39, 61, 93, 9,
|
148
|
+
13, 32, 34, 39, 93, 9, 13, 46, 61, 61, 168, 191,
|
149
|
+
61, 128, 191, 61, 128, 191, 128, 191, 61, 128, 191, 128,
|
150
|
+
191, 46, 32, 45, 61, 92, 95, 97, 196, 9, 13, 48,
|
151
|
+
57, 65, 90, 98, 122, 197, 223, 224, 239, 240, 244, 32,
|
152
|
+
45, 61, 92, 95, 109, 196, 9, 13, 48, 57, 65, 90,
|
153
|
+
97, 122, 197, 223, 224, 239, 240, 244, 32, 45, 61, 92,
|
154
|
+
95, 101, 196, 9, 13, 48, 57, 65, 90, 97, 122, 197,
|
155
|
+
223, 224, 239, 240, 244, 32, 45, 61, 92, 95, 196, 9,
|
156
|
+
13, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240,
|
157
|
+
244, 32, 34, 39, 45, 61, 92, 93, 95, 196, 9, 13,
|
158
|
+
48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244,
|
159
|
+
45, 92, 93, 95, 196, 48, 57, 65, 90, 97, 122, 197,
|
160
|
+
223, 224, 239, 240, 244, 46, 93, 93, 168, 191, 93, 128,
|
161
|
+
191, 93, 128, 191, 93, 128, 191, 168, 191, 128, 191, 32,
|
162
|
+
35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 101, 110,
|
163
|
+
111, 126, 196, 9, 13, 48, 57, 65, 90, 97, 122, 197,
|
164
|
+
223, 224, 239, 240, 244, 32, 44, 9, 13, 32, 9, 13,
|
165
|
+
45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223,
|
166
|
+
224, 239, 240, 244, 43, 45, 110, 48, 57, 43, 45, 92,
|
167
|
+
95, 110, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224,
|
168
|
+
239, 240, 244, 45, 92, 95, 196, 48, 57, 65, 90, 97,
|
169
|
+
122, 197, 223, 224, 239, 240, 244, 45, 92, 95, 196, 48,
|
170
|
+
57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40,
|
171
|
+
45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223,
|
172
|
+
224, 239, 240, 244, 40, 45, 92, 95, 113, 118, 196, 48,
|
173
|
+
57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40,
|
174
|
+
45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223,
|
175
|
+
224, 239, 240, 244, 40, 45, 92, 95, 101, 196, 48, 57,
|
176
|
+
65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45,
|
177
|
+
92, 95, 110, 196, 48, 57, 65, 90, 97, 122, 197, 223,
|
178
|
+
224, 239, 240, 244, 40, 45, 92, 95, 105, 196, 48, 57,
|
179
|
+
65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45,
|
180
|
+
92, 95, 114, 196, 48, 57, 65, 90, 97, 122, 197, 223,
|
181
|
+
224, 239, 240, 244, 40, 45, 92, 95, 115, 196, 48, 57,
|
182
|
+
65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45,
|
183
|
+
92, 95, 116, 196, 48, 57, 65, 90, 97, 122, 197, 223,
|
184
|
+
224, 239, 240, 244, 40, 45, 92, 95, 196, 48, 57, 65,
|
185
|
+
90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92,
|
186
|
+
95, 99, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224,
|
187
|
+
239, 240, 244, 40, 45, 92, 95, 104, 196, 48, 57, 65,
|
188
|
+
90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92,
|
189
|
+
95, 105, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224,
|
190
|
+
239, 240, 244, 40, 45, 92, 95, 108, 196, 48, 57, 65,
|
191
|
+
90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92,
|
192
|
+
95, 100, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224,
|
193
|
+
239, 240, 244, 40, 45, 92, 95, 196, 48, 57, 65, 90,
|
194
|
+
97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95,
|
195
|
+
116, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239,
|
196
|
+
240, 244, 40, 45, 92, 95, 97, 116, 196, 48, 57, 65,
|
197
|
+
90, 98, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92,
|
198
|
+
95, 116, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224,
|
199
|
+
239, 240, 244, 40, 45, 92, 95, 104, 196, 48, 57, 65,
|
200
|
+
90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92,
|
201
|
+
95, 100, 110, 196, 48, 57, 65, 90, 97, 122, 197, 223,
|
202
|
+
224, 239, 240, 244, 40, 45, 92, 95, 100, 196, 48, 57,
|
203
|
+
65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45,
|
204
|
+
92, 95, 108, 196, 48, 57, 65, 90, 97, 122, 197, 223,
|
205
|
+
224, 239, 240, 244, 40, 45, 92, 95, 121, 196, 48, 57,
|
206
|
+
65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45,
|
207
|
+
92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224,
|
208
|
+
239, 240, 244, 34, 39, 45, 92, 95, 118, 196, 48, 57,
|
209
|
+
65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 45, 92,
|
210
|
+
95, 101, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224,
|
211
|
+
239, 240, 244, 45, 92, 95, 196, 48, 57, 65, 90, 97,
|
212
|
+
122, 197, 223, 224, 239, 240, 244, 45, 92, 95, 100, 196,
|
213
|
+
48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244,
|
214
|
+
45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223,
|
215
|
+
224, 239, 240, 244, 0
|
216
|
+
};
|
217
|
+
}
|
218
|
+
|
219
|
+
private static final char _hpricot_css_trans_keys[] = init__hpricot_css_trans_keys_0();
|
220
|
+
|
221
|
+
|
222
|
+
private static byte[] init__hpricot_css_single_lengths_0()
|
223
|
+
{
|
224
|
+
return new byte [] {
|
225
|
+
0, 2, 4, 1, 0, 0, 0, 0, 1, 0, 0, 0,
|
226
|
+
0, 4, 1, 0, 0, 0, 0, 10, 4, 3, 3, 1,
|
227
|
+
1, 1, 1, 2, 4, 4, 1, 1, 1, 2, 1, 1,
|
228
|
+
2, 1, 0, 0, 0, 0, 4, 3, 9, 6, 4, 4,
|
229
|
+
4, 3, 4, 4, 5, 6, 1, 4, 1, 4, 2, 1,
|
230
|
+
1, 2, 1, 2, 5, 4, 2, 1, 1, 1, 0, 1,
|
231
|
+
0, 1, 7, 7, 7, 6, 9, 5, 2, 1, 1, 1,
|
232
|
+
1, 0, 0, 16, 2, 1, 4, 3, 6, 4, 4, 5,
|
233
|
+
7, 5, 6, 6, 6, 6, 6, 6, 5, 6, 6, 6,
|
234
|
+
6, 6, 5, 6, 7, 6, 6, 7, 6, 6, 6, 5,
|
235
|
+
1, 1, 5, 5, 4, 5, 4
|
236
|
+
};
|
237
|
+
}
|
238
|
+
|
239
|
+
private static final byte _hpricot_css_single_lengths[] = init__hpricot_css_single_lengths_0();
|
240
|
+
|
241
|
+
|
242
|
+
private static byte[] init__hpricot_css_range_lengths_0()
|
243
|
+
{
|
244
|
+
return new byte [] {
|
245
|
+
0, 1, 6, 0, 1, 1, 1, 1, 0, 1, 1, 1,
|
246
|
+
1, 6, 0, 1, 1, 1, 1, 6, 0, 0, 0, 1,
|
247
|
+
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
|
248
|
+
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
|
249
|
+
0, 0, 0, 0, 6, 7, 0, 1, 0, 1, 0, 0,
|
250
|
+
0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1,
|
251
|
+
1, 0, 7, 7, 7, 7, 7, 6, 0, 1, 1, 1,
|
252
|
+
1, 1, 1, 7, 1, 1, 6, 1, 6, 6, 6, 6,
|
253
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
254
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
255
|
+
0, 0, 6, 6, 6, 6, 6
|
256
|
+
};
|
257
|
+
}
|
258
|
+
|
259
|
+
private static final byte _hpricot_css_range_lengths[] = init__hpricot_css_range_lengths_0();
|
260
|
+
|
261
|
+
|
262
|
+
private static short[] init__hpricot_css_index_offsets_0()
|
263
|
+
{
|
264
|
+
return new short [] {
|
265
|
+
0, 0, 4, 15, 17, 19, 21, 23, 25, 27, 29, 31,
|
266
|
+
33, 35, 46, 48, 50, 52, 54, 56, 73, 78, 82, 86,
|
267
|
+
89, 91, 93, 95, 98, 103, 108, 111, 113, 115, 118, 120,
|
268
|
+
122, 125, 127, 129, 131, 133, 135, 141, 146, 157, 165, 170,
|
269
|
+
175, 180, 184, 189, 194, 206, 220, 222, 228, 230, 236, 239,
|
270
|
+
241, 243, 246, 248, 252, 259, 265, 268, 271, 274, 277, 279,
|
271
|
+
282, 284, 286, 301, 316, 331, 345, 362, 374, 377, 380, 383,
|
272
|
+
386, 389, 391, 393, 417, 421, 424, 435, 440, 453, 464, 475,
|
273
|
+
487, 501, 513, 526, 539, 552, 565, 578, 591, 603, 616, 629,
|
274
|
+
642, 655, 668, 680, 693, 707, 720, 733, 747, 760, 773, 786,
|
275
|
+
798, 800, 802, 814, 826, 837, 849
|
276
|
+
};
|
277
|
+
}
|
278
|
+
|
279
|
+
private static final short _hpricot_css_index_offsets[] = init__hpricot_css_index_offsets_0();
|
280
|
+
|
281
|
+
|
282
|
+
private static byte[] init__hpricot_css_trans_targs_wi_0()
|
283
|
+
{
|
284
|
+
return new byte [] {
|
285
|
+
1, 89, 1, 87, 90, 3, 90, 4, 90, 90, 90, 5,
|
286
|
+
6, 7, 0, 90, 87, 90, 87, 90, 87, 5, 87, 6,
|
287
|
+
87, 93, 87, 93, 87, 93, 87, 10, 87, 11, 87, 94,
|
288
|
+
14, 94, 15, 94, 94, 94, 16, 17, 18, 0, 94, 87,
|
289
|
+
94, 87, 94, 87, 16, 87, 17, 87, 95, 37, 95, 96,
|
290
|
+
100, 111, 112, 113, 115, 38, 95, 95, 95, 39, 40, 41,
|
291
|
+
0, 22, 28, 34, 87, 21, 87, 87, 87, 21, 24, 25,
|
292
|
+
87, 23, 24, 87, 23, 87, 87, 87, 26, 27, 26, 24,
|
293
|
+
25, 87, 30, 21, 31, 87, 29, 30, 21, 87, 87, 29,
|
294
|
+
24, 87, 30, 87, 32, 33, 32, 24, 31, 87, 87, 35,
|
295
|
+
36, 35, 34, 87, 87, 95, 87, 95, 87, 95, 87, 39,
|
296
|
+
87, 40, 87, 22, 28, 34, 87, 43, 21, 87, 87, 87,
|
297
|
+
43, 21, 22, 28, 34, 87, 45, 45, 46, 45, 50, 45,
|
298
|
+
21, 87, 87, 87, 45, 45, 45, 45, 21, 87, 87, 87,
|
299
|
+
47, 21, 87, 87, 87, 48, 21, 87, 87, 87, 49, 21,
|
300
|
+
87, 87, 87, 21, 87, 87, 87, 51, 21, 87, 87, 87,
|
301
|
+
49, 21, 53, 73, 53, 74, 85, 53, 53, 53, 70, 72,
|
302
|
+
86, 0, 63, 53, 64, 66, 53, 67, 63, 53, 53, 53,
|
303
|
+
68, 69, 71, 54, 55, 0, 57, 58, 61, 0, 57, 56,
|
304
|
+
87, 56, 57, 58, 61, 87, 57, 56, 56, 120, 58, 60,
|
305
|
+
59, 87, 87, 56, 121, 61, 60, 62, 63, 64, 63, 54,
|
306
|
+
57, 58, 61, 65, 0, 57, 56, 57, 58, 61, 87, 57,
|
307
|
+
56, 53, 55, 0, 55, 53, 0, 55, 53, 0, 55, 70,
|
308
|
+
0, 53, 0, 55, 72, 0, 70, 0, 53, 0, 63, 53,
|
309
|
+
64, 66, 53, 75, 67, 63, 53, 53, 53, 68, 69, 71,
|
310
|
+
54, 63, 53, 64, 66, 53, 76, 67, 63, 53, 53, 53,
|
311
|
+
68, 69, 71, 54, 63, 53, 64, 66, 53, 77, 67, 63,
|
312
|
+
53, 53, 53, 68, 69, 71, 54, 63, 53, 78, 66, 53,
|
313
|
+
67, 63, 53, 53, 53, 68, 69, 71, 54, 57, 58, 61,
|
314
|
+
79, 65, 80, 0, 79, 81, 57, 79, 79, 79, 82, 83,
|
315
|
+
84, 56, 79, 80, 87, 79, 81, 79, 79, 79, 82, 83,
|
316
|
+
84, 56, 79, 87, 56, 87, 79, 56, 87, 79, 56, 87,
|
317
|
+
82, 56, 87, 83, 56, 53, 0, 72, 0, 88, 2, 91,
|
318
|
+
89, 92, 13, 19, 87, 52, 8, 93, 122, 92, 125, 87,
|
319
|
+
9, 88, 92, 93, 93, 10, 11, 12, 0, 1, 89, 1,
|
320
|
+
87, 89, 89, 87, 90, 3, 90, 4, 90, 90, 90, 5,
|
321
|
+
6, 7, 87, 91, 91, 91, 91, 87, 91, 92, 8, 93,
|
322
|
+
92, 9, 92, 93, 93, 10, 11, 12, 87, 93, 8, 93,
|
323
|
+
9, 93, 93, 93, 10, 11, 12, 87, 94, 14, 94, 15,
|
324
|
+
94, 94, 94, 16, 17, 18, 87, 20, 95, 37, 95, 38,
|
325
|
+
95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 97,
|
326
|
+
98, 38, 95, 95, 95, 39, 40, 41, 87, 42, 95, 37,
|
327
|
+
95, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37,
|
328
|
+
95, 99, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95,
|
329
|
+
37, 95, 97, 38, 95, 95, 95, 39, 40, 41, 87, 20,
|
330
|
+
95, 37, 95, 101, 38, 95, 95, 95, 39, 40, 41, 87,
|
331
|
+
20, 95, 37, 95, 102, 38, 95, 95, 95, 39, 40, 41,
|
332
|
+
87, 20, 95, 37, 95, 103, 38, 95, 95, 95, 39, 40,
|
333
|
+
41, 87, 20, 95, 37, 95, 104, 38, 95, 95, 95, 39,
|
334
|
+
40, 41, 87, 42, 105, 37, 95, 38, 95, 95, 95, 39,
|
335
|
+
40, 41, 87, 20, 95, 37, 95, 106, 38, 95, 95, 95,
|
336
|
+
39, 40, 41, 87, 20, 95, 37, 95, 107, 38, 95, 95,
|
337
|
+
95, 39, 40, 41, 87, 20, 95, 37, 95, 108, 38, 95,
|
338
|
+
95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 109, 38,
|
339
|
+
95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 110,
|
340
|
+
38, 95, 95, 95, 39, 40, 41, 87, 44, 95, 37, 95,
|
341
|
+
38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95,
|
342
|
+
97, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37,
|
343
|
+
95, 102, 97, 38, 95, 95, 95, 39, 40, 41, 87, 20,
|
344
|
+
95, 37, 95, 114, 38, 95, 95, 95, 39, 40, 41, 87,
|
345
|
+
20, 95, 37, 95, 104, 38, 95, 95, 95, 39, 40, 41,
|
346
|
+
87, 20, 95, 37, 95, 116, 117, 38, 95, 95, 95, 39,
|
347
|
+
40, 41, 87, 20, 95, 37, 95, 97, 38, 95, 95, 95,
|
348
|
+
39, 40, 41, 87, 20, 95, 37, 95, 118, 38, 95, 95,
|
349
|
+
95, 39, 40, 41, 87, 20, 95, 37, 95, 119, 38, 95,
|
350
|
+
95, 95, 39, 40, 41, 87, 20, 105, 37, 95, 38, 95,
|
351
|
+
95, 95, 39, 40, 41, 87, 60, 59, 60, 62, 93, 8,
|
352
|
+
93, 123, 9, 93, 93, 93, 10, 11, 12, 87, 93, 8,
|
353
|
+
93, 124, 9, 93, 93, 93, 10, 11, 12, 87, 93, 8,
|
354
|
+
93, 9, 93, 93, 93, 10, 11, 12, 87, 93, 8, 93,
|
355
|
+
126, 9, 93, 93, 93, 10, 11, 12, 87, 93, 8, 93,
|
356
|
+
9, 93, 93, 93, 10, 11, 12, 87, 0
|
357
|
+
};
|
358
|
+
}
|
359
|
+
|
360
|
+
private static final byte _hpricot_css_trans_targs_wi[] = init__hpricot_css_trans_targs_wi_0();
|
361
|
+
|
362
|
+
|
363
|
+
private static byte[] init__hpricot_css_trans_actions_wi_0()
|
364
|
+
{
|
365
|
+
return new byte [] {
|
366
|
+
0, 0, 0, 33, 99, 1, 99, 1, 99, 99, 99, 1,
|
367
|
+
1, 1, 0, 73, 35, 73, 35, 73, 35, 0, 35, 0,
|
368
|
+
35, 79, 35, 79, 35, 79, 35, 0, 35, 0, 35, 103,
|
369
|
+
1, 103, 1, 103, 103, 103, 1, 1, 1, 0, 76, 35,
|
370
|
+
76, 35, 76, 35, 0, 35, 0, 35, 111, 1, 111, 111,
|
371
|
+
111, 111, 111, 111, 111, 1, 111, 111, 111, 1, 1, 1,
|
372
|
+
0, 1, 1, 1, 95, 1, 35, 35, 49, 0, 0, 0,
|
373
|
+
35, 0, 0, 35, 0, 49, 35, 35, 0, 0, 0, 0,
|
374
|
+
0, 35, 0, 0, 0, 49, 0, 0, 0, 35, 49, 0,
|
375
|
+
0, 35, 0, 35, 0, 0, 0, 0, 0, 35, 35, 0,
|
376
|
+
0, 0, 0, 49, 35, 88, 35, 88, 35, 88, 35, 0,
|
377
|
+
35, 0, 35, 1, 1, 1, 95, 1, 1, 29, 29, 46,
|
378
|
+
0, 0, 1, 1, 1, 91, 1, 1, 1, 1, 1, 1,
|
379
|
+
1, 27, 27, 43, 0, 0, 0, 0, 0, 27, 27, 49,
|
380
|
+
0, 0, 27, 27, 49, 0, 0, 27, 27, 49, 0, 0,
|
381
|
+
27, 27, 43, 0, 27, 27, 49, 0, 0, 27, 27, 49,
|
382
|
+
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
383
|
+
1, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
384
|
+
5, 5, 5, 5, 0, 0, 7, 7, 7, 0, 7, 7,
|
385
|
+
13, 0, 0, 0, 0, 13, 0, 0, 0, 11, 0, 0,
|
386
|
+
0, 13, 25, 0, 11, 0, 0, 0, 0, 0, 0, 0,
|
387
|
+
7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 13, 7,
|
388
|
+
7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
389
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5,
|
390
|
+
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
391
|
+
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
392
|
+
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
393
|
+
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
394
|
+
5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7,
|
395
|
+
37, 7, 37, 0, 37, 37, 7, 37, 37, 37, 37, 37,
|
396
|
+
37, 7, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
|
397
|
+
0, 0, 0, 13, 0, 13, 0, 0, 13, 0, 0, 13,
|
398
|
+
0, 0, 13, 0, 0, 0, 0, 0, 0, 11, 0, 0,
|
399
|
+
0, 107, 0, 0, 15, 0, 1, 107, 107, 107, 107, 15,
|
400
|
+
1, 11, 107, 107, 107, 1, 1, 1, 0, 0, 0, 0,
|
401
|
+
23, 0, 0, 21, 73, 0, 73, 0, 73, 73, 73, 0,
|
402
|
+
0, 0, 52, 0, 0, 0, 0, 19, 3, 79, 0, 79,
|
403
|
+
79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0, 79,
|
404
|
+
0, 79, 79, 79, 0, 0, 0, 58, 76, 0, 76, 0,
|
405
|
+
76, 76, 76, 0, 0, 0, 55, 3, 88, 0, 88, 0,
|
406
|
+
88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 85,
|
407
|
+
88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 115, 3,
|
408
|
+
115, 3, 115, 115, 115, 3, 3, 3, 64, 3, 88, 0,
|
409
|
+
88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88,
|
410
|
+
0, 88, 85, 0, 88, 88, 88, 0, 0, 0, 67, 3,
|
411
|
+
88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67,
|
412
|
+
3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0,
|
413
|
+
67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0,
|
414
|
+
0, 67, 3, 88, 0, 88, 85, 0, 88, 88, 88, 0,
|
415
|
+
0, 0, 67, 3, 115, 3, 115, 3, 115, 115, 115, 3,
|
416
|
+
3, 3, 64, 3, 88, 0, 88, 88, 0, 88, 88, 88,
|
417
|
+
0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88,
|
418
|
+
88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88,
|
419
|
+
88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0,
|
420
|
+
88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 82,
|
421
|
+
0, 88, 88, 88, 0, 0, 0, 67, 3, 115, 3, 115,
|
422
|
+
3, 115, 115, 115, 3, 3, 3, 61, 3, 88, 0, 88,
|
423
|
+
85, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0,
|
424
|
+
88, 88, 85, 0, 88, 88, 88, 0, 0, 0, 67, 3,
|
425
|
+
88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67,
|
426
|
+
3, 88, 0, 88, 85, 0, 88, 88, 88, 0, 0, 0,
|
427
|
+
67, 3, 88, 0, 88, 88, 88, 0, 88, 88, 88, 0,
|
428
|
+
0, 0, 67, 3, 88, 0, 88, 85, 0, 88, 88, 88,
|
429
|
+
0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88,
|
430
|
+
88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88,
|
431
|
+
88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 0, 88,
|
432
|
+
88, 88, 0, 0, 0, 67, 0, 0, 0, 0, 79, 0,
|
433
|
+
79, 79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0,
|
434
|
+
79, 79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0,
|
435
|
+
79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0, 79,
|
436
|
+
79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0, 79,
|
437
|
+
0, 79, 79, 79, 0, 0, 0, 58, 0
|
438
|
+
};
|
439
|
+
}
|
440
|
+
|
441
|
+
private static final byte _hpricot_css_trans_actions_wi[] = init__hpricot_css_trans_actions_wi_0();
|
442
|
+
|
443
|
+
|
444
|
+
private static byte[] init__hpricot_css_to_state_actions_0()
|
445
|
+
{
|
446
|
+
return new byte [] {
|
447
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
448
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
449
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
450
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
451
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
452
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
453
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
454
|
+
0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0,
|
455
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
456
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
457
|
+
0, 0, 0, 0, 0, 0, 0
|
458
|
+
};
|
459
|
+
}
|
460
|
+
|
461
|
+
private static final byte _hpricot_css_to_state_actions[] = init__hpricot_css_to_state_actions_0();
|
462
|
+
|
463
|
+
|
464
|
+
private static byte[] init__hpricot_css_from_state_actions_0()
|
465
|
+
{
|
466
|
+
return new byte [] {
|
467
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
468
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
469
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
470
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
471
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
472
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
473
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
474
|
+
0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
|
475
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
476
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
477
|
+
0, 0, 0, 0, 0, 0, 0
|
478
|
+
};
|
479
|
+
}
|
480
|
+
|
481
|
+
private static final byte _hpricot_css_from_state_actions[] = init__hpricot_css_from_state_actions_0();
|
482
|
+
|
483
|
+
|
484
|
+
private static short[] init__hpricot_css_eof_trans_0()
|
485
|
+
{
|
486
|
+
return new short [] {
|
487
|
+
0, 1, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11,
|
488
|
+
11, 0, 11, 11, 11, 11, 11, 0, 39, 11, 11, 11,
|
489
|
+
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
|
490
|
+
11, 11, 11, 11, 11, 11, 63, 63, 67, 67, 67, 67,
|
491
|
+
67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 105,
|
492
|
+
105, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
493
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
494
|
+
0, 0, 0, 0, 150, 151, 152, 156, 157, 157, 163, 167,
|
495
|
+
167, 174, 167, 167, 167, 167, 167, 167, 174, 167, 167, 167,
|
496
|
+
167, 167, 193, 167, 167, 167, 167, 167, 167, 167, 167, 167,
|
497
|
+
201, 201, 157, 157, 157, 157, 157
|
498
|
+
};
|
499
|
+
}
|
500
|
+
|
501
|
+
private static final short _hpricot_css_eof_trans[] = init__hpricot_css_eof_trans_0();
|
502
|
+
|
503
|
+
|
504
|
+
static final int hpricot_css_start = 87;
|
505
|
+
static final int hpricot_css_error = 0;
|
506
|
+
|
507
|
+
static final int hpricot_css_en_main = 87;
|
508
|
+
|
509
|
+
// line 147 "hpricot_css.java.rl"
|
510
|
+
|
511
|
+
|
512
|
+
public IRubyObject scan() {
|
513
|
+
|
514
|
+
// line 515 "HpricotCss.java"
|
515
|
+
{
|
516
|
+
cs = hpricot_css_start;
|
517
|
+
ts = -1;
|
518
|
+
te = -1;
|
519
|
+
act = 0;
|
520
|
+
}
|
521
|
+
// line 151 "hpricot_css.java.rl"
|
522
|
+
|
523
|
+
// line 524 "HpricotCss.java"
|
524
|
+
{
|
525
|
+
int _klen;
|
526
|
+
int _trans = 0;
|
527
|
+
int _acts;
|
528
|
+
int _nacts;
|
529
|
+
int _keys;
|
530
|
+
int _goto_targ = 0;
|
531
|
+
|
532
|
+
_goto: while (true) {
|
533
|
+
switch ( _goto_targ ) {
|
534
|
+
case 0:
|
535
|
+
if ( p == pe ) {
|
536
|
+
_goto_targ = 4;
|
537
|
+
continue _goto;
|
538
|
+
}
|
539
|
+
if ( cs == 0 ) {
|
540
|
+
_goto_targ = 5;
|
541
|
+
continue _goto;
|
542
|
+
}
|
543
|
+
case 1:
|
544
|
+
_acts = _hpricot_css_from_state_actions[cs];
|
545
|
+
_nacts = (int) _hpricot_css_actions[_acts++];
|
546
|
+
while ( _nacts-- > 0 ) {
|
547
|
+
switch ( _hpricot_css_actions[_acts++] ) {
|
548
|
+
case 6:
|
549
|
+
// line 1 "hpricot_css.java.rl"
|
550
|
+
{ts = p;}
|
551
|
+
break;
|
552
|
+
// line 553 "HpricotCss.java"
|
553
|
+
}
|
554
|
+
}
|
555
|
+
|
556
|
+
_match: do {
|
557
|
+
_keys = _hpricot_css_key_offsets[cs];
|
558
|
+
_trans = _hpricot_css_index_offsets[cs];
|
559
|
+
_klen = _hpricot_css_single_lengths[cs];
|
560
|
+
if ( _klen > 0 ) {
|
561
|
+
int _lower = _keys;
|
562
|
+
int _mid;
|
563
|
+
int _upper = _keys + _klen - 1;
|
564
|
+
while (true) {
|
565
|
+
if ( _upper < _lower )
|
566
|
+
break;
|
567
|
+
|
568
|
+
_mid = _lower + ((_upper-_lower) >> 1);
|
569
|
+
if ( data[p] < _hpricot_css_trans_keys[_mid] )
|
570
|
+
_upper = _mid - 1;
|
571
|
+
else if ( data[p] > _hpricot_css_trans_keys[_mid] )
|
572
|
+
_lower = _mid + 1;
|
573
|
+
else {
|
574
|
+
_trans += (_mid - _keys);
|
575
|
+
break _match;
|
576
|
+
}
|
577
|
+
}
|
578
|
+
_keys += _klen;
|
579
|
+
_trans += _klen;
|
580
|
+
}
|
581
|
+
|
582
|
+
_klen = _hpricot_css_range_lengths[cs];
|
583
|
+
if ( _klen > 0 ) {
|
584
|
+
int _lower = _keys;
|
585
|
+
int _mid;
|
586
|
+
int _upper = _keys + (_klen<<1) - 2;
|
587
|
+
while (true) {
|
588
|
+
if ( _upper < _lower )
|
589
|
+
break;
|
590
|
+
|
591
|
+
_mid = _lower + (((_upper-_lower) >> 1) & ~1);
|
592
|
+
if ( data[p] < _hpricot_css_trans_keys[_mid] )
|
593
|
+
_upper = _mid - 2;
|
594
|
+
else if ( data[p] > _hpricot_css_trans_keys[_mid+1] )
|
595
|
+
_lower = _mid + 2;
|
596
|
+
else {
|
597
|
+
_trans += ((_mid - _keys)>>1);
|
598
|
+
break _match;
|
599
|
+
}
|
600
|
+
}
|
601
|
+
_trans += _klen;
|
602
|
+
}
|
603
|
+
} while (false);
|
604
|
+
|
605
|
+
case 3:
|
606
|
+
cs = _hpricot_css_trans_targs_wi[_trans];
|
607
|
+
|
608
|
+
if ( _hpricot_css_trans_actions_wi[_trans] != 0 ) {
|
609
|
+
_acts = _hpricot_css_trans_actions_wi[_trans];
|
610
|
+
_nacts = (int) _hpricot_css_actions[_acts++];
|
611
|
+
while ( _nacts-- > 0 )
|
612
|
+
{
|
613
|
+
switch ( _hpricot_css_actions[_acts++] )
|
614
|
+
{
|
615
|
+
case 0:
|
616
|
+
// line 85 "hpricot_css.java.rl"
|
617
|
+
{
|
618
|
+
aps = p;
|
619
|
+
}
|
620
|
+
break;
|
621
|
+
case 1:
|
622
|
+
// line 89 "hpricot_css.java.rl"
|
623
|
+
{
|
624
|
+
ape = p;
|
625
|
+
PUSH(aps, ape);
|
626
|
+
}
|
627
|
+
break;
|
628
|
+
case 2:
|
629
|
+
// line 94 "hpricot_css.java.rl"
|
630
|
+
{
|
631
|
+
ape = p;
|
632
|
+
aps2 = p;
|
633
|
+
}
|
634
|
+
break;
|
635
|
+
case 3:
|
636
|
+
// line 99 "hpricot_css.java.rl"
|
637
|
+
{
|
638
|
+
ape2 = p;
|
639
|
+
PUSH(aps, ape);
|
640
|
+
PUSH(aps2, ape2);
|
641
|
+
}
|
642
|
+
break;
|
643
|
+
case 7:
|
644
|
+
// line 1 "hpricot_css.java.rl"
|
645
|
+
{te = p+1;}
|
646
|
+
break;
|
647
|
+
case 8:
|
648
|
+
// line 132 "hpricot_css.java.rl"
|
649
|
+
{act = 1;}
|
650
|
+
break;
|
651
|
+
case 9:
|
652
|
+
// line 133 "hpricot_css.java.rl"
|
653
|
+
{act = 2;}
|
654
|
+
break;
|
655
|
+
case 10:
|
656
|
+
// line 136 "hpricot_css.java.rl"
|
657
|
+
{act = 5;}
|
658
|
+
break;
|
659
|
+
case 11:
|
660
|
+
// line 138 "hpricot_css.java.rl"
|
661
|
+
{act = 7;}
|
662
|
+
break;
|
663
|
+
case 12:
|
664
|
+
// line 139 "hpricot_css.java.rl"
|
665
|
+
{act = 8;}
|
666
|
+
break;
|
667
|
+
case 13:
|
668
|
+
// line 140 "hpricot_css.java.rl"
|
669
|
+
{act = 9;}
|
670
|
+
break;
|
671
|
+
case 14:
|
672
|
+
// line 134 "hpricot_css.java.rl"
|
673
|
+
{te = p+1;{ FILTER("NAME"); }}
|
674
|
+
break;
|
675
|
+
case 15:
|
676
|
+
// line 135 "hpricot_css.java.rl"
|
677
|
+
{te = p+1;{ FILTER("ATTR"); }}
|
678
|
+
break;
|
679
|
+
case 16:
|
680
|
+
// line 138 "hpricot_css.java.rl"
|
681
|
+
{te = p+1;{ FILTER("CHILD"); }}
|
682
|
+
break;
|
683
|
+
case 17:
|
684
|
+
// line 139 "hpricot_css.java.rl"
|
685
|
+
{te = p+1;{ FILTER("POS"); }}
|
686
|
+
break;
|
687
|
+
case 18:
|
688
|
+
// line 140 "hpricot_css.java.rl"
|
689
|
+
{te = p+1;{ FILTER("PSUEDO"); }}
|
690
|
+
break;
|
691
|
+
case 19:
|
692
|
+
// line 142 "hpricot_css.java.rl"
|
693
|
+
{te = p+1;{ FILTERAUTO(); }}
|
694
|
+
break;
|
695
|
+
case 20:
|
696
|
+
// line 132 "hpricot_css.java.rl"
|
697
|
+
{te = p;p--;{ FILTER("ID"); }}
|
698
|
+
break;
|
699
|
+
case 21:
|
700
|
+
// line 133 "hpricot_css.java.rl"
|
701
|
+
{te = p;p--;{ FILTER("CLASS"); }}
|
702
|
+
break;
|
703
|
+
case 22:
|
704
|
+
// line 135 "hpricot_css.java.rl"
|
705
|
+
{te = p;p--;{ FILTER("ATTR"); }}
|
706
|
+
break;
|
707
|
+
case 23:
|
708
|
+
// line 136 "hpricot_css.java.rl"
|
709
|
+
{te = p;p--;{ FILTER("TAG"); }}
|
710
|
+
break;
|
711
|
+
case 24:
|
712
|
+
// line 137 "hpricot_css.java.rl"
|
713
|
+
{te = p;p--;{ FILTER("MOD"); }}
|
714
|
+
break;
|
715
|
+
case 25:
|
716
|
+
// line 138 "hpricot_css.java.rl"
|
717
|
+
{te = p;p--;{ FILTER("CHILD"); }}
|
718
|
+
break;
|
719
|
+
case 26:
|
720
|
+
// line 139 "hpricot_css.java.rl"
|
721
|
+
{te = p;p--;{ FILTER("POS"); }}
|
722
|
+
break;
|
723
|
+
case 27:
|
724
|
+
// line 140 "hpricot_css.java.rl"
|
725
|
+
{te = p;p--;{ FILTER("PSUEDO"); }}
|
726
|
+
break;
|
727
|
+
case 28:
|
728
|
+
// line 141 "hpricot_css.java.rl"
|
729
|
+
{te = p;p--;{ focus = RubyArray.newArray(runtime, node); }}
|
730
|
+
break;
|
731
|
+
case 29:
|
732
|
+
// line 143 "hpricot_css.java.rl"
|
733
|
+
{te = p;p--;}
|
734
|
+
break;
|
735
|
+
case 30:
|
736
|
+
// line 135 "hpricot_css.java.rl"
|
737
|
+
{{p = ((te))-1;}{ FILTER("ATTR"); }}
|
738
|
+
break;
|
739
|
+
case 31:
|
740
|
+
// line 138 "hpricot_css.java.rl"
|
741
|
+
{{p = ((te))-1;}{ FILTER("CHILD"); }}
|
742
|
+
break;
|
743
|
+
case 32:
|
744
|
+
// line 139 "hpricot_css.java.rl"
|
745
|
+
{{p = ((te))-1;}{ FILTER("POS"); }}
|
746
|
+
break;
|
747
|
+
case 33:
|
748
|
+
// line 140 "hpricot_css.java.rl"
|
749
|
+
{{p = ((te))-1;}{ FILTER("PSUEDO"); }}
|
750
|
+
break;
|
751
|
+
case 34:
|
752
|
+
// line 143 "hpricot_css.java.rl"
|
753
|
+
{{p = ((te))-1;}}
|
754
|
+
break;
|
755
|
+
case 35:
|
756
|
+
// line 1 "hpricot_css.java.rl"
|
757
|
+
{ switch( act ) {
|
758
|
+
case 0:
|
759
|
+
{{cs = 0; _goto_targ = 2; if (true) continue _goto;}}
|
760
|
+
break;
|
761
|
+
case 1:
|
762
|
+
{{p = ((te))-1;} FILTER("ID"); }
|
763
|
+
break;
|
764
|
+
case 2:
|
765
|
+
{{p = ((te))-1;} FILTER("CLASS"); }
|
766
|
+
break;
|
767
|
+
case 5:
|
768
|
+
{{p = ((te))-1;} FILTER("TAG"); }
|
769
|
+
break;
|
770
|
+
case 7:
|
771
|
+
{{p = ((te))-1;} FILTER("CHILD"); }
|
772
|
+
break;
|
773
|
+
case 8:
|
774
|
+
{{p = ((te))-1;} FILTER("POS"); }
|
775
|
+
break;
|
776
|
+
case 9:
|
777
|
+
{{p = ((te))-1;} FILTER("PSUEDO"); }
|
778
|
+
break;
|
779
|
+
default: break;
|
780
|
+
}
|
781
|
+
}
|
782
|
+
break;
|
783
|
+
// line 784 "HpricotCss.java"
|
784
|
+
}
|
785
|
+
}
|
786
|
+
}
|
787
|
+
|
788
|
+
case 2:
|
789
|
+
_acts = _hpricot_css_to_state_actions[cs];
|
790
|
+
_nacts = (int) _hpricot_css_actions[_acts++];
|
791
|
+
while ( _nacts-- > 0 ) {
|
792
|
+
switch ( _hpricot_css_actions[_acts++] ) {
|
793
|
+
case 4:
|
794
|
+
// line 1 "hpricot_css.java.rl"
|
795
|
+
{ts = -1;}
|
796
|
+
break;
|
797
|
+
case 5:
|
798
|
+
// line 1 "hpricot_css.java.rl"
|
799
|
+
{act = 0;}
|
800
|
+
break;
|
801
|
+
// line 802 "HpricotCss.java"
|
802
|
+
}
|
803
|
+
}
|
804
|
+
|
805
|
+
if ( cs == 0 ) {
|
806
|
+
_goto_targ = 5;
|
807
|
+
continue _goto;
|
808
|
+
}
|
809
|
+
if ( ++p != pe ) {
|
810
|
+
_goto_targ = 1;
|
811
|
+
continue _goto;
|
812
|
+
}
|
813
|
+
case 4:
|
814
|
+
if ( p == eof )
|
815
|
+
{
|
816
|
+
if ( _hpricot_css_eof_trans[cs] > 0 ) {
|
817
|
+
_trans = _hpricot_css_eof_trans[cs] - 1;
|
818
|
+
_goto_targ = 3;
|
819
|
+
continue _goto;
|
820
|
+
}
|
821
|
+
}
|
822
|
+
|
823
|
+
case 5:
|
824
|
+
}
|
825
|
+
break; }
|
826
|
+
}
|
827
|
+
// line 152 "hpricot_css.java.rl"
|
828
|
+
|
829
|
+
return focus;
|
830
|
+
}
|
831
|
+
}
|