hpricot 0.8.1-x86-mswin32 → 0.8.2-x86-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +13 -0
- data/README +6 -15
- data/Rakefile +40 -28
- data/ext/fast_xs/FastXsService.java +13 -1
- data/ext/hpricot_scan/HpricotCss.java +831 -0
- data/ext/hpricot_scan/HpricotScanService.java +1168 -387
- data/ext/hpricot_scan/hpricot_css.c +101 -100
- data/ext/hpricot_scan/hpricot_css.java.rl +155 -0
- data/ext/hpricot_scan/hpricot_scan.c +287 -128
- data/ext/hpricot_scan/hpricot_scan.java.rl +1078 -299
- data/ext/hpricot_scan/hpricot_scan.rl +2 -0
- data/lib/fast_xs.so +0 -0
- data/lib/hpricot/tag.rb +31 -12
- data/lib/hpricot/traverse.rb +1 -0
- data/lib/hpricot_scan.so +0 -0
- data/test/test_alter.rb +21 -2
- data/test/test_parser.rb +8 -0
- data/test/test_preserved.rb +18 -0
- metadata +30 -29
- data/ext/hpricot_scan/test.rb +0 -4
data/CHANGELOG
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
= 0.8.2
|
2
|
+
=== 5 November, 2009
|
3
|
+
* Bring JRuby support up to speed, including Java-based hpricot_css support
|
4
|
+
* Change JRuby fast_xs to have same escaping behavior as C fast_xs
|
5
|
+
|
6
|
+
= 0.8.1
|
7
|
+
=== 3 April, 2009
|
8
|
+
* fix for issue #2, downcasing of html attributes inside the parser.
|
9
|
+
* solve issue #3 with bogus etags being preserved in `to_s` rather than just `to_original_html`.
|
10
|
+
* fix error when attempting to reparent cleared node. (issue #5)
|
11
|
+
* Hpricot::Attributes proxy object for using `ele.attributes[k] = v` directly.
|
12
|
+
however, it is preferred to use the jquery-like `elements.attr(k, v)`.
|
13
|
+
|
1
14
|
= 0.8
|
2
15
|
=== 31st March, 2009
|
3
16
|
* Saving memory and speed by using RStruct-based elements in the C extension.
|
data/README
CHANGED
@@ -31,12 +31,11 @@ Let's clear up what Hpricot is.
|
|
31
31
|
|
32
32
|
First, here are all the links you need to know:
|
33
33
|
|
34
|
-
* http://
|
34
|
+
* http://wiki.github.com/hpricot/hpricot is the Hpricot wiki and
|
35
|
+
http://github.com/hpricot/hpricot/issues is the bug tracker.
|
35
36
|
Go there for news and recipes and patches. It's the center of activity.
|
36
|
-
* http://
|
37
|
+
* http://github.com/hpricot/hpricot is the main Git
|
37
38
|
repository for Hpricot. You can get the latest code there.
|
38
|
-
* http://code.whytheluckystiff.net/doc/hpricot is the home for the latest copy of
|
39
|
-
this reference.
|
40
39
|
* See COPYING for the terms of this software. (Spoiler: it's absolutely free.)
|
41
40
|
|
42
41
|
If you have any trouble, don't hesitate to contact the author. As always, I'm
|
@@ -46,24 +45,16 @@ as quickly as I can. Your responsibility is to report the inadequacies.
|
|
46
45
|
|
47
46
|
== Installing Hpricot
|
48
47
|
|
49
|
-
You may get the latest stable version from Rubyforge. Win32 binaries
|
50
|
-
gems are available.
|
48
|
+
You may get the latest stable version from Rubyforge. Win32 binaries,
|
49
|
+
Java binaries (for JRuby), and source gems are available.
|
51
50
|
|
52
51
|
$ gem install hpricot
|
53
52
|
|
54
|
-
As Hpricot is still under active development, you can also try the most recent
|
55
|
-
candidate build here:
|
56
|
-
|
57
|
-
$ gem install hpricot --source http://code.whytheluckystiff.net
|
58
|
-
|
59
|
-
The development gem is usually in pretty good shape actually. You can also
|
60
|
-
get the bleeding edge code or plain Ruby tarballs on the wiki.
|
61
|
-
|
62
53
|
== An Hpricot Showcase
|
63
54
|
|
64
55
|
We're going to run through a big pile of examples to get you jump-started.
|
65
56
|
Many of these examples are also found at
|
66
|
-
http://
|
57
|
+
http://wiki.github.com/hpricot/hpricot/hpricot-basics, in case you
|
67
58
|
want to add some of your own.
|
68
59
|
|
69
60
|
=== Loading Hpricot Itself
|
data/Rakefile
CHANGED
@@ -14,12 +14,12 @@ VERS = ENV['VERSION'] || "0.8" + (REV ? ".#{REV}" : "")
|
|
14
14
|
PKG = "#{NAME}-#{VERS}"
|
15
15
|
BIN = "*.{bundle,jar,so,o,obj,pdb,lib,def,exp,class}"
|
16
16
|
CLEAN.include ["ext/hpricot_scan/#{BIN}", "ext/fast_xs/#{BIN}", "lib/**/#{BIN}",
|
17
|
-
'ext/fast_xs/Makefile', 'ext/hpricot_scan/Makefile',
|
17
|
+
'ext/fast_xs/Makefile', 'ext/hpricot_scan/Makefile',
|
18
18
|
'**/.*.sw?', '*.gem', '.config', 'pkg']
|
19
19
|
RDOC_OPTS = ['--quiet', '--title', 'The Hpricot Reference', '--main', 'README', '--inline-source']
|
20
20
|
PKG_FILES = %w(CHANGELOG COPYING README Rakefile) +
|
21
|
-
Dir.glob("{bin,doc,test,lib,extras}/**/*") +
|
22
|
-
Dir.glob("ext/**/*.{h,java,c,rb,rl}") +
|
21
|
+
Dir.glob("{bin,doc,test,lib,extras}/**/*") +
|
22
|
+
Dir.glob("ext/**/*.{h,java,c,rb,rl}") +
|
23
23
|
%w[ext/hpricot_scan/hpricot_scan.c ext/hpricot_scan/hpricot_css.c ext/hpricot_scan/HpricotScanService.java] # needed because they are generated later
|
24
24
|
RAGEL_C_CODE_GENERATION_STYLES = {
|
25
25
|
"table_driven" => 'T0',
|
@@ -47,7 +47,7 @@ SPEC =
|
|
47
47
|
s.homepage = 'http://code.whytheluckystiff.net/hpricot/'
|
48
48
|
s.rubyforge_project = 'hobix'
|
49
49
|
s.files = PKG_FILES
|
50
|
-
s.require_paths = ["lib"]
|
50
|
+
s.require_paths = ["lib"]
|
51
51
|
s.extensions = FileList["ext/**/extconf.rb"].to_a
|
52
52
|
s.bindir = "bin"
|
53
53
|
end
|
@@ -56,11 +56,15 @@ Win32Spec = SPEC.dup
|
|
56
56
|
Win32Spec.platform = 'x86-mswin32'
|
57
57
|
Win32Spec.files = PKG_FILES + ["lib/hpricot_scan.so", "lib/fast_xs.so"]
|
58
58
|
Win32Spec.extensions = []
|
59
|
-
|
59
|
+
|
60
60
|
WIN32_PKG_DIR = "#{PKG}-mswin32"
|
61
61
|
|
62
62
|
desc "Does a full compile, test run"
|
63
|
+
if defined?(JRUBY_VERSION)
|
64
|
+
task :default => [:compile_java, :test]
|
65
|
+
else
|
63
66
|
task :default => [:compile, :test]
|
67
|
+
end
|
64
68
|
|
65
69
|
desc "Packages up Hpricot."
|
66
70
|
task :package => [:clean, :ragel]
|
@@ -68,6 +72,7 @@ task :package => [:clean, :ragel]
|
|
68
72
|
desc "Releases packages for all Hpricot packages and platforms."
|
69
73
|
task :release => [:package, :package_win32, :package_jruby]
|
70
74
|
|
75
|
+
|
71
76
|
desc "Run all the tests"
|
72
77
|
Rake::TestTask.new do |t|
|
73
78
|
t.libs << "test"
|
@@ -97,7 +102,7 @@ end
|
|
97
102
|
"#{ext}/extconf.rb",
|
98
103
|
"#{ext}/Makefile",
|
99
104
|
"lib"
|
100
|
-
]
|
105
|
+
]
|
101
106
|
|
102
107
|
desc "Builds just the #{extension} extension"
|
103
108
|
task extension.to_sym => [:ragel, "#{ext}/Makefile", ext_so ]
|
@@ -147,21 +152,26 @@ desc "Generates the C scanner code with Ragel."
|
|
147
152
|
task :ragel => [:ragel_version] do
|
148
153
|
if @ragel_v >= 6.1
|
149
154
|
@ragel_c_code_generation_style = RAGEL_C_CODE_GENERATION_STYLES[DEFAULT_RAGEL_C_CODE_GENERATION]
|
150
|
-
|
151
|
-
|
155
|
+
Dir.chdir("ext/hpricot_scan") do
|
156
|
+
sh %{ragel hpricot_scan.rl -#{@ragel_c_code_generation_style} -o hpricot_scan.c}
|
157
|
+
sh %{ragel hpricot_css.rl -#{@ragel_c_code_generation_style} -o hpricot_css.c}
|
158
|
+
end
|
152
159
|
else
|
153
160
|
STDERR.puts "Ragel 6.1 or greater is required."
|
154
161
|
exit(1)
|
155
162
|
end
|
156
163
|
end
|
157
164
|
|
158
|
-
# Java only supports the table-driven code
|
159
|
-
# generation style at this point.
|
165
|
+
# Java only supports the table-driven code
|
166
|
+
# generation style at this point.
|
160
167
|
desc "Generates the Java scanner code using the Ragel table-driven code generation style."
|
161
168
|
task :ragel_java => [:ragel_version] do
|
162
169
|
if @ragel_v >= 6.1
|
163
170
|
puts "compiling with ragel version #{@ragel_v}"
|
164
|
-
|
171
|
+
Dir.chdir("ext/hpricot_scan") do
|
172
|
+
sh %{ragel -J -o HpricotCss.java hpricot_css.java.rl}
|
173
|
+
sh %{ragel -J -o HpricotScanService.java hpricot_scan.java.rl}
|
174
|
+
end
|
165
175
|
else
|
166
176
|
STDERR.puts "Ragel 6.1 or greater is required."
|
167
177
|
exit(1)
|
@@ -190,46 +200,48 @@ CLEAN.include WIN32_PKG_DIR
|
|
190
200
|
|
191
201
|
### JRuby Packages ###
|
192
202
|
|
193
|
-
def java_classpath_arg
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
203
|
+
def java_classpath_arg # myriad of ways to discover JRuby classpath
|
204
|
+
begin
|
205
|
+
cpath = Java::java.lang.System.getProperty('java.class.path').split(File::PATH_SEPARATOR)
|
206
|
+
cpath += Java::java.lang.System.getProperty('sun.boot.class.path').split(File::PATH_SEPARATOR)
|
207
|
+
jruby_cpath = cpath.compact.join(File::PATH_SEPARATOR)
|
208
|
+
rescue => e
|
209
|
+
end
|
210
|
+
unless jruby_cpath
|
211
|
+
jruby_cpath = ENV['JRUBY_PARENT_CLASSPATH'] || ENV['JRUBY_HOME'] &&
|
212
|
+
FileList["#{ENV['JRUBY_HOME']}/lib/*.jar"].join(File::PATH_SEPARATOR)
|
201
213
|
end
|
202
|
-
|
214
|
+
jruby_cpath ? "-cp \"#{jruby_cpath}\"" : ""
|
203
215
|
end
|
204
216
|
|
205
|
-
def compile_java(
|
206
|
-
sh %{javac -source 1.
|
217
|
+
def compile_java(filenames, jarname)
|
218
|
+
sh %{javac -source 1.5 -target 1.5 #{java_classpath_arg} #{filenames.join(" ")}}
|
207
219
|
sh %{jar cf #{jarname} *.class}
|
208
220
|
end
|
209
221
|
|
210
222
|
task :hpricot_scan_java => [:ragel_java] do
|
211
223
|
Dir.chdir "ext/hpricot_scan" do
|
212
|
-
compile_java("HpricotScanService.java", "hpricot_scan.jar")
|
224
|
+
compile_java(["HpricotScanService.java", "HpricotCss.java"], "hpricot_scan.jar")
|
213
225
|
end
|
214
226
|
end
|
215
227
|
|
216
228
|
task :fast_xs_java do
|
217
229
|
Dir.chdir "ext/fast_xs" do
|
218
|
-
compile_java("FastXsService.java", "fast_xs.jar")
|
230
|
+
compile_java(["FastXsService.java"], "fast_xs.jar")
|
219
231
|
end
|
220
232
|
end
|
221
233
|
|
222
234
|
desc "Compiles the JRuby extensions"
|
223
|
-
task :
|
235
|
+
task :compile_java => [:hpricot_scan_java, :fast_xs_java] do
|
224
236
|
%w(hpricot_scan fast_xs).each {|ext| mv "ext/#{ext}/#{ext}.jar", "lib"}
|
225
237
|
end
|
226
238
|
|
227
239
|
JRubySpec = SPEC.dup
|
228
|
-
JRubySpec.platform = '
|
240
|
+
JRubySpec.platform = 'java'
|
229
241
|
JRubySpec.files = PKG_FILES + ["lib/hpricot_scan.jar", "lib/fast_xs.jar"]
|
230
242
|
JRubySpec.extensions = []
|
231
243
|
|
232
|
-
JRUBY_PKG_DIR = "#{PKG}-
|
244
|
+
JRUBY_PKG_DIR = "#{PKG}-java"
|
233
245
|
|
234
246
|
desc "Package up the JRuby distribution."
|
235
247
|
file JRUBY_PKG_DIR => [:ragel_java, :package] do
|
@@ -240,7 +252,7 @@ end
|
|
240
252
|
desc "Build the RubyGems package for JRuby"
|
241
253
|
task :package_jruby => JRUBY_PKG_DIR do
|
242
254
|
Dir.chdir("#{JRUBY_PKG_DIR}") do
|
243
|
-
Rake::Task[:
|
255
|
+
Rake::Task[:compile_java].invoke
|
244
256
|
Gem::Builder.new(JRubySpec).build
|
245
257
|
verbose(true) {
|
246
258
|
mv Dir["*.gem"].first, "../pkg/#{JRUBY_PKG_DIR}.gem"
|
@@ -25,7 +25,7 @@ public class FastXsService implements BasicLibraryService {
|
|
25
25
|
String string = recv.convertToString().getUnicodeValue();
|
26
26
|
StringWriter writer = new StringWriter ((int)(string.length() * 1.5));
|
27
27
|
try {
|
28
|
-
Entities.
|
28
|
+
Entities.FAST_XS.escape(writer, string);
|
29
29
|
return recv.getRuntime().newString(writer.toString());
|
30
30
|
} catch (IOException e) {
|
31
31
|
throw recv.getRuntime().newIOErrorFromException(e);
|
@@ -398,6 +398,13 @@ class Entities {
|
|
398
398
|
*/
|
399
399
|
public static final Entities HTML40;
|
400
400
|
|
401
|
+
/**
|
402
|
+
* <p>
|
403
|
+
* The set of entities supported by the Ruby fast_xs extension.
|
404
|
+
* </p>
|
405
|
+
*/
|
406
|
+
public static final Entities FAST_XS;
|
407
|
+
|
401
408
|
static {
|
402
409
|
XML = new Entities();
|
403
410
|
XML.addEntities(BASIC_ARRAY);
|
@@ -415,6 +422,11 @@ class Entities {
|
|
415
422
|
fillWithHtml40Entities(HTML40);
|
416
423
|
}
|
417
424
|
|
425
|
+
static {
|
426
|
+
FAST_XS = new Entities();
|
427
|
+
FAST_XS.addEntities(BASIC_ARRAY);
|
428
|
+
}
|
429
|
+
|
418
430
|
/**
|
419
431
|
* <p>
|
420
432
|
* Fills the specified entities instance with HTML 40 entities.
|
@@ -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
|
+
}
|