// line 1 "hpricot_css.java.rl" import java.io.IOException; import org.jruby.Ruby; import org.jruby.RubyArray; import org.jruby.RubyClass; import org.jruby.RubyHash; import org.jruby.RubyModule; import org.jruby.RubyNumeric; import org.jruby.RubyObject; import org.jruby.RubyObjectAdapter; import org.jruby.RubyRegexp; import org.jruby.RubyString; import org.jruby.anno.JRubyMethod; import org.jruby.exceptions.RaiseException; import org.jruby.javasupport.JavaEmbedUtils; import org.jruby.runtime.Arity; import org.jruby.runtime.Block; import org.jruby.runtime.ObjectAllocator; import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; import org.jruby.runtime.callback.Callback; import org.jruby.exceptions.RaiseException; import org.jruby.runtime.load.BasicLibraryService; import org.jruby.util.ByteList; public class HpricotCss { public void FILTER(String id) { IRubyObject[] args = new IRubyObject[fargs]; System.arraycopy(fvals, 0, args, 0, fargs); mod.callMethod(ctx, id, args); tmpt.rb_clear(); fargs = 1; } public void FILTERAUTO() { try { FILTER(new String(data, ts, te - ts, "ISO-8859-1")); } catch(java.io.UnsupportedEncodingException e) {} } public void PUSH(int aps, int ape) { RubyString str = RubyString.newString(runtime, data, aps, ape-aps); fvals[fargs++] = str; tmpt.append(str); } private IRubyObject self, mod, str, node; private int cs, act, eof, p, pe, ts, te, aps, ape, aps2, ape2; private byte[] data; private int fargs = 1; private IRubyObject[] fvals = new IRubyObject[6]; private RubyArray focus; private RubyArray tmpt; private Ruby runtime; private ThreadContext ctx; public HpricotCss(IRubyObject self, IRubyObject mod, IRubyObject str, IRubyObject node) { this.self = self; this.mod = mod; this.str = str; this.node = node; this.runtime = self.getRuntime(); this.ctx = runtime.getCurrentContext(); this.focus = RubyArray.newArray(runtime, node); this.tmpt = runtime.newArray(); fvals[0] = focus; if(!(str instanceof RubyString)) { throw runtime.newArgumentError("bad CSS selector, String only please."); } ByteList bl = ((RubyString)str).getByteList(); data = bl.bytes; p = bl.begin; pe = p + bl.realSize; eof = pe; } // line 85 "HpricotCss.java" private static byte[] init__hpricot_css_actions_0() { return new byte [] { 0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 6, 1, 7, 1, 15, 1, 19, 1, 22, 1, 24, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 2, 0, 3, 2, 1, 14, 2, 1, 16, 2, 1, 17, 2, 1, 18, 2, 1, 20, 2, 1, 21, 2, 1, 23, 2, 1, 25, 2, 1, 26, 2, 1, 27, 2, 4, 5, 2, 7, 8, 2, 7, 9, 2, 7, 10, 2, 7, 11, 2, 7, 12, 2, 7, 13, 3, 0, 1, 16, 3, 0, 1, 18, 3, 7, 0, 8, 3, 7, 0, 9, 3, 7, 0, 10, 3, 7, 0, 13, 3, 7, 1, 13 }; } private static final byte _hpricot_css_actions[] = init__hpricot_css_actions_0(); private static short[] init__hpricot_css_key_offsets_0() { return new short [] { 0, 0, 4, 20, 21, 23, 25, 27, 29, 30, 32, 34, 36, 38, 54, 55, 57, 59, 61, 63, 85, 89, 92, 95, 98, 99, 100, 101, 103, 107, 111, 114, 115, 116, 118, 119, 120, 122, 123, 125, 127, 129, 131, 137, 142, 153, 161, 165, 169, 173, 176, 180, 184, 201, 221, 222, 228, 229, 235, 237, 238, 239, 241, 242, 246, 253, 259, 261, 264, 267, 270, 272, 275, 277, 278, 299, 320, 341, 361, 384, 401, 403, 406, 409, 412, 415, 417, 419, 449, 453, 456, 472, 477, 495, 511, 527, 544, 563, 580, 598, 616, 634, 652, 670, 688, 705, 723, 741, 759, 777, 795, 812, 830, 849, 867, 885, 904, 922, 940, 958, 975, 976, 977, 994, 1011, 1027, 1044 }; } private static final short _hpricot_css_key_offsets[] = init__hpricot_css_key_offsets_0(); private static char[] init__hpricot_css_trans_keys_0() { return new char [] { 32, 44, 9, 13, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 46, 168, 191, 128, 191, 128, 191, 128, 191, 46, 168, 191, 128, 191, 128, 191, 128, 191, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 46, 168, 191, 128, 191, 128, 191, 128, 191, 45, 92, 95, 101, 102, 103, 108, 110, 111, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 34, 39, 40, 41, 34, 40, 41, 34, 40, 41, 34, 40, 41, 41, 41, 41, 34, 40, 34, 39, 40, 41, 34, 39, 40, 41, 39, 40, 41, 41, 41, 39, 40, 41, 41, 40, 41, 46, 168, 191, 128, 191, 128, 191, 128, 191, 34, 39, 40, 41, 48, 57, 34, 40, 41, 48, 57, 34, 39, 40, 41, 43, 45, 101, 110, 111, 48, 57, 34, 40, 41, 43, 45, 110, 48, 57, 34, 40, 41, 118, 34, 40, 41, 101, 34, 40, 41, 110, 34, 40, 41, 34, 40, 41, 100, 34, 40, 41, 100, 45, 92, 95, 110, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 32, 45, 61, 92, 95, 196, 9, 13, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 61, 32, 34, 39, 93, 9, 13, 93, 32, 34, 39, 93, 9, 13, 34, 93, 34, 93, 39, 93, 39, 32, 61, 9, 13, 32, 34, 39, 61, 93, 9, 13, 32, 34, 39, 93, 9, 13, 46, 61, 61, 168, 191, 61, 128, 191, 61, 128, 191, 128, 191, 61, 128, 191, 128, 191, 46, 32, 45, 61, 92, 95, 97, 196, 9, 13, 48, 57, 65, 90, 98, 122, 197, 223, 224, 239, 240, 244, 32, 45, 61, 92, 95, 109, 196, 9, 13, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 32, 45, 61, 92, 95, 101, 196, 9, 13, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 32, 45, 61, 92, 95, 196, 9, 13, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 32, 34, 39, 45, 61, 92, 93, 95, 196, 9, 13, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 45, 92, 93, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 46, 93, 93, 168, 191, 93, 128, 191, 93, 128, 191, 93, 128, 191, 168, 191, 128, 191, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 101, 110, 111, 126, 196, 9, 13, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 32, 44, 9, 13, 32, 9, 13, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 43, 45, 110, 48, 57, 43, 45, 92, 95, 110, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 113, 118, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 101, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 110, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 105, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 114, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 115, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 116, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 99, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 104, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 105, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 108, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 100, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 116, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 97, 116, 196, 48, 57, 65, 90, 98, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 116, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 104, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 100, 110, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 100, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 108, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 121, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 40, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 34, 39, 45, 92, 95, 118, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 45, 92, 95, 101, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 45, 92, 95, 100, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 45, 92, 95, 196, 48, 57, 65, 90, 97, 122, 197, 223, 224, 239, 240, 244, 0 }; } private static final char _hpricot_css_trans_keys[] = init__hpricot_css_trans_keys_0(); private static byte[] init__hpricot_css_single_lengths_0() { return new byte [] { 0, 2, 4, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 10, 4, 3, 3, 1, 1, 1, 1, 2, 4, 4, 1, 1, 1, 2, 1, 1, 2, 1, 0, 0, 0, 0, 4, 3, 9, 6, 4, 4, 4, 3, 4, 4, 5, 6, 1, 4, 1, 4, 2, 1, 1, 2, 1, 2, 5, 4, 2, 1, 1, 1, 0, 1, 0, 1, 7, 7, 7, 6, 9, 5, 2, 1, 1, 1, 1, 0, 0, 16, 2, 1, 4, 3, 6, 4, 4, 5, 7, 5, 6, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 5, 6, 7, 6, 6, 7, 6, 6, 6, 5, 1, 1, 5, 5, 4, 5, 4 }; } private static final byte _hpricot_css_single_lengths[] = init__hpricot_css_single_lengths_0(); private static byte[] init__hpricot_css_range_lengths_0() { return new byte [] { 0, 1, 6, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 6, 0, 1, 1, 1, 1, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 6, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 7, 7, 7, 7, 7, 6, 0, 1, 1, 1, 1, 1, 1, 7, 1, 1, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 6, 6, 6, 6, 6 }; } private static final byte _hpricot_css_range_lengths[] = init__hpricot_css_range_lengths_0(); private static short[] init__hpricot_css_index_offsets_0() { return new short [] { 0, 0, 4, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 46, 48, 50, 52, 54, 56, 73, 78, 82, 86, 89, 91, 93, 95, 98, 103, 108, 111, 113, 115, 118, 120, 122, 125, 127, 129, 131, 133, 135, 141, 146, 157, 165, 170, 175, 180, 184, 189, 194, 206, 220, 222, 228, 230, 236, 239, 241, 243, 246, 248, 252, 259, 265, 268, 271, 274, 277, 279, 282, 284, 286, 301, 316, 331, 345, 362, 374, 377, 380, 383, 386, 389, 391, 393, 417, 421, 424, 435, 440, 453, 464, 475, 487, 501, 513, 526, 539, 552, 565, 578, 591, 603, 616, 629, 642, 655, 668, 680, 693, 707, 720, 733, 747, 760, 773, 786, 798, 800, 802, 814, 826, 837, 849 }; } private static final short _hpricot_css_index_offsets[] = init__hpricot_css_index_offsets_0(); private static byte[] init__hpricot_css_trans_targs_wi_0() { return new byte [] { 1, 89, 1, 87, 90, 3, 90, 4, 90, 90, 90, 5, 6, 7, 0, 90, 87, 90, 87, 90, 87, 5, 87, 6, 87, 93, 87, 93, 87, 93, 87, 10, 87, 11, 87, 94, 14, 94, 15, 94, 94, 94, 16, 17, 18, 0, 94, 87, 94, 87, 94, 87, 16, 87, 17, 87, 95, 37, 95, 96, 100, 111, 112, 113, 115, 38, 95, 95, 95, 39, 40, 41, 0, 22, 28, 34, 87, 21, 87, 87, 87, 21, 24, 25, 87, 23, 24, 87, 23, 87, 87, 87, 26, 27, 26, 24, 25, 87, 30, 21, 31, 87, 29, 30, 21, 87, 87, 29, 24, 87, 30, 87, 32, 33, 32, 24, 31, 87, 87, 35, 36, 35, 34, 87, 87, 95, 87, 95, 87, 95, 87, 39, 87, 40, 87, 22, 28, 34, 87, 43, 21, 87, 87, 87, 43, 21, 22, 28, 34, 87, 45, 45, 46, 45, 50, 45, 21, 87, 87, 87, 45, 45, 45, 45, 21, 87, 87, 87, 47, 21, 87, 87, 87, 48, 21, 87, 87, 87, 49, 21, 87, 87, 87, 21, 87, 87, 87, 51, 21, 87, 87, 87, 49, 21, 53, 73, 53, 74, 85, 53, 53, 53, 70, 72, 86, 0, 63, 53, 64, 66, 53, 67, 63, 53, 53, 53, 68, 69, 71, 54, 55, 0, 57, 58, 61, 0, 57, 56, 87, 56, 57, 58, 61, 87, 57, 56, 56, 120, 58, 60, 59, 87, 87, 56, 121, 61, 60, 62, 63, 64, 63, 54, 57, 58, 61, 65, 0, 57, 56, 57, 58, 61, 87, 57, 56, 53, 55, 0, 55, 53, 0, 55, 53, 0, 55, 70, 0, 53, 0, 55, 72, 0, 70, 0, 53, 0, 63, 53, 64, 66, 53, 75, 67, 63, 53, 53, 53, 68, 69, 71, 54, 63, 53, 64, 66, 53, 76, 67, 63, 53, 53, 53, 68, 69, 71, 54, 63, 53, 64, 66, 53, 77, 67, 63, 53, 53, 53, 68, 69, 71, 54, 63, 53, 78, 66, 53, 67, 63, 53, 53, 53, 68, 69, 71, 54, 57, 58, 61, 79, 65, 80, 0, 79, 81, 57, 79, 79, 79, 82, 83, 84, 56, 79, 80, 87, 79, 81, 79, 79, 79, 82, 83, 84, 56, 79, 87, 56, 87, 79, 56, 87, 79, 56, 87, 82, 56, 87, 83, 56, 53, 0, 72, 0, 88, 2, 91, 89, 92, 13, 19, 87, 52, 8, 93, 122, 92, 125, 87, 9, 88, 92, 93, 93, 10, 11, 12, 0, 1, 89, 1, 87, 89, 89, 87, 90, 3, 90, 4, 90, 90, 90, 5, 6, 7, 87, 91, 91, 91, 91, 87, 91, 92, 8, 93, 92, 9, 92, 93, 93, 10, 11, 12, 87, 93, 8, 93, 9, 93, 93, 93, 10, 11, 12, 87, 94, 14, 94, 15, 94, 94, 94, 16, 17, 18, 87, 20, 95, 37, 95, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 97, 98, 38, 95, 95, 95, 39, 40, 41, 87, 42, 95, 37, 95, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 99, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 97, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 101, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 102, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 103, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 104, 38, 95, 95, 95, 39, 40, 41, 87, 42, 105, 37, 95, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 106, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 107, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 108, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 109, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 110, 38, 95, 95, 95, 39, 40, 41, 87, 44, 95, 37, 95, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 97, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 102, 97, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 114, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 104, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 116, 117, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 97, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 118, 38, 95, 95, 95, 39, 40, 41, 87, 20, 95, 37, 95, 119, 38, 95, 95, 95, 39, 40, 41, 87, 20, 105, 37, 95, 38, 95, 95, 95, 39, 40, 41, 87, 60, 59, 60, 62, 93, 8, 93, 123, 9, 93, 93, 93, 10, 11, 12, 87, 93, 8, 93, 124, 9, 93, 93, 93, 10, 11, 12, 87, 93, 8, 93, 9, 93, 93, 93, 10, 11, 12, 87, 93, 8, 93, 126, 9, 93, 93, 93, 10, 11, 12, 87, 93, 8, 93, 9, 93, 93, 93, 10, 11, 12, 87, 0 }; } private static final byte _hpricot_css_trans_targs_wi[] = init__hpricot_css_trans_targs_wi_0(); private static byte[] init__hpricot_css_trans_actions_wi_0() { return new byte [] { 0, 0, 0, 33, 99, 1, 99, 1, 99, 99, 99, 1, 1, 1, 0, 73, 35, 73, 35, 73, 35, 0, 35, 0, 35, 79, 35, 79, 35, 79, 35, 0, 35, 0, 35, 103, 1, 103, 1, 103, 103, 103, 1, 1, 1, 0, 76, 35, 76, 35, 76, 35, 0, 35, 0, 35, 111, 1, 111, 111, 111, 111, 111, 111, 111, 1, 111, 111, 111, 1, 1, 1, 0, 1, 1, 1, 95, 1, 35, 35, 49, 0, 0, 0, 35, 0, 0, 35, 0, 49, 35, 35, 0, 0, 0, 0, 0, 35, 0, 0, 0, 49, 0, 0, 0, 35, 49, 0, 0, 35, 0, 35, 0, 0, 0, 0, 0, 35, 35, 0, 0, 0, 0, 49, 35, 88, 35, 88, 35, 88, 35, 0, 35, 0, 35, 1, 1, 1, 95, 1, 1, 29, 29, 46, 0, 0, 1, 1, 1, 91, 1, 1, 1, 1, 1, 1, 1, 27, 27, 43, 0, 0, 0, 0, 0, 27, 27, 49, 0, 0, 27, 27, 49, 0, 0, 27, 27, 49, 0, 0, 27, 27, 43, 0, 27, 27, 49, 0, 0, 27, 27, 49, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 7, 7, 7, 0, 7, 7, 13, 0, 0, 0, 0, 13, 0, 0, 0, 11, 0, 0, 0, 13, 25, 0, 11, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 13, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 37, 7, 37, 0, 37, 37, 7, 37, 37, 37, 37, 37, 37, 7, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 13, 0, 0, 13, 0, 0, 13, 0, 0, 13, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 107, 0, 0, 15, 0, 1, 107, 107, 107, 107, 15, 1, 11, 107, 107, 107, 1, 1, 1, 0, 0, 0, 0, 23, 0, 0, 21, 73, 0, 73, 0, 73, 73, 73, 0, 0, 0, 52, 0, 0, 0, 0, 19, 3, 79, 0, 79, 79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0, 79, 0, 79, 79, 79, 0, 0, 0, 58, 76, 0, 76, 0, 76, 76, 76, 0, 0, 0, 55, 3, 88, 0, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 85, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 115, 3, 115, 3, 115, 115, 115, 3, 3, 3, 64, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 85, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 85, 0, 88, 88, 88, 0, 0, 0, 67, 3, 115, 3, 115, 3, 115, 115, 115, 3, 3, 3, 64, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 82, 0, 88, 88, 88, 0, 0, 0, 67, 3, 115, 3, 115, 3, 115, 115, 115, 3, 3, 3, 61, 3, 88, 0, 88, 85, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 85, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 85, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 85, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 88, 0, 88, 88, 88, 0, 0, 0, 67, 3, 88, 0, 88, 0, 88, 88, 88, 0, 0, 0, 67, 0, 0, 0, 0, 79, 0, 79, 79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0, 79, 79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0, 79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0, 79, 79, 0, 79, 79, 79, 0, 0, 0, 58, 79, 0, 79, 0, 79, 79, 79, 0, 0, 0, 58, 0 }; } private static final byte _hpricot_css_trans_actions_wi[] = init__hpricot_css_trans_actions_wi_0(); private static byte[] init__hpricot_css_to_state_actions_0() { return new byte [] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; } private static final byte _hpricot_css_to_state_actions[] = init__hpricot_css_to_state_actions_0(); private static byte[] init__hpricot_css_from_state_actions_0() { return new byte [] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; } private static final byte _hpricot_css_from_state_actions[] = init__hpricot_css_from_state_actions_0(); private static short[] init__hpricot_css_eof_trans_0() { return new short [] { 0, 1, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 11, 11, 11, 11, 11, 0, 39, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 63, 63, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 105, 105, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, 156, 157, 157, 163, 167, 167, 174, 167, 167, 167, 167, 167, 167, 174, 167, 167, 167, 167, 167, 193, 167, 167, 167, 167, 167, 167, 167, 167, 167, 201, 201, 157, 157, 157, 157, 157 }; } private static final short _hpricot_css_eof_trans[] = init__hpricot_css_eof_trans_0(); static final int hpricot_css_start = 87; static final int hpricot_css_error = 0; static final int hpricot_css_en_main = 87; // line 147 "hpricot_css.java.rl" public IRubyObject scan() { // line 515 "HpricotCss.java" { cs = hpricot_css_start; ts = -1; te = -1; act = 0; } // line 151 "hpricot_css.java.rl" // line 524 "HpricotCss.java" { int _klen; int _trans = 0; int _acts; int _nacts; int _keys; int _goto_targ = 0; _goto: while (true) { switch ( _goto_targ ) { case 0: if ( p == pe ) { _goto_targ = 4; continue _goto; } if ( cs == 0 ) { _goto_targ = 5; continue _goto; } case 1: _acts = _hpricot_css_from_state_actions[cs]; _nacts = (int) _hpricot_css_actions[_acts++]; while ( _nacts-- > 0 ) { switch ( _hpricot_css_actions[_acts++] ) { case 6: // line 1 "hpricot_css.java.rl" {ts = p;} break; // line 553 "HpricotCss.java" } } _match: do { _keys = _hpricot_css_key_offsets[cs]; _trans = _hpricot_css_index_offsets[cs]; _klen = _hpricot_css_single_lengths[cs]; if ( _klen > 0 ) { int _lower = _keys; int _mid; int _upper = _keys + _klen - 1; while (true) { if ( _upper < _lower ) break; _mid = _lower + ((_upper-_lower) >> 1); if ( data[p] < _hpricot_css_trans_keys[_mid] ) _upper = _mid - 1; else if ( data[p] > _hpricot_css_trans_keys[_mid] ) _lower = _mid + 1; else { _trans += (_mid - _keys); break _match; } } _keys += _klen; _trans += _klen; } _klen = _hpricot_css_range_lengths[cs]; if ( _klen > 0 ) { int _lower = _keys; int _mid; int _upper = _keys + (_klen<<1) - 2; while (true) { if ( _upper < _lower ) break; _mid = _lower + (((_upper-_lower) >> 1) & ~1); if ( data[p] < _hpricot_css_trans_keys[_mid] ) _upper = _mid - 2; else if ( data[p] > _hpricot_css_trans_keys[_mid+1] ) _lower = _mid + 2; else { _trans += ((_mid - _keys)>>1); break _match; } } _trans += _klen; } } while (false); case 3: cs = _hpricot_css_trans_targs_wi[_trans]; if ( _hpricot_css_trans_actions_wi[_trans] != 0 ) { _acts = _hpricot_css_trans_actions_wi[_trans]; _nacts = (int) _hpricot_css_actions[_acts++]; while ( _nacts-- > 0 ) { switch ( _hpricot_css_actions[_acts++] ) { case 0: // line 85 "hpricot_css.java.rl" { aps = p; } break; case 1: // line 89 "hpricot_css.java.rl" { ape = p; PUSH(aps, ape); } break; case 2: // line 94 "hpricot_css.java.rl" { ape = p; aps2 = p; } break; case 3: // line 99 "hpricot_css.java.rl" { ape2 = p; PUSH(aps, ape); PUSH(aps2, ape2); } break; case 7: // line 1 "hpricot_css.java.rl" {te = p+1;} break; case 8: // line 132 "hpricot_css.java.rl" {act = 1;} break; case 9: // line 133 "hpricot_css.java.rl" {act = 2;} break; case 10: // line 136 "hpricot_css.java.rl" {act = 5;} break; case 11: // line 138 "hpricot_css.java.rl" {act = 7;} break; case 12: // line 139 "hpricot_css.java.rl" {act = 8;} break; case 13: // line 140 "hpricot_css.java.rl" {act = 9;} break; case 14: // line 134 "hpricot_css.java.rl" {te = p+1;{ FILTER("NAME"); }} break; case 15: // line 135 "hpricot_css.java.rl" {te = p+1;{ FILTER("ATTR"); }} break; case 16: // line 138 "hpricot_css.java.rl" {te = p+1;{ FILTER("CHILD"); }} break; case 17: // line 139 "hpricot_css.java.rl" {te = p+1;{ FILTER("POS"); }} break; case 18: // line 140 "hpricot_css.java.rl" {te = p+1;{ FILTER("PSUEDO"); }} break; case 19: // line 142 "hpricot_css.java.rl" {te = p+1;{ FILTERAUTO(); }} break; case 20: // line 132 "hpricot_css.java.rl" {te = p;p--;{ FILTER("ID"); }} break; case 21: // line 133 "hpricot_css.java.rl" {te = p;p--;{ FILTER("CLASS"); }} break; case 22: // line 135 "hpricot_css.java.rl" {te = p;p--;{ FILTER("ATTR"); }} break; case 23: // line 136 "hpricot_css.java.rl" {te = p;p--;{ FILTER("TAG"); }} break; case 24: // line 137 "hpricot_css.java.rl" {te = p;p--;{ FILTER("MOD"); }} break; case 25: // line 138 "hpricot_css.java.rl" {te = p;p--;{ FILTER("CHILD"); }} break; case 26: // line 139 "hpricot_css.java.rl" {te = p;p--;{ FILTER("POS"); }} break; case 27: // line 140 "hpricot_css.java.rl" {te = p;p--;{ FILTER("PSUEDO"); }} break; case 28: // line 141 "hpricot_css.java.rl" {te = p;p--;{ focus = RubyArray.newArray(runtime, node); }} break; case 29: // line 143 "hpricot_css.java.rl" {te = p;p--;} break; case 30: // line 135 "hpricot_css.java.rl" {{p = ((te))-1;}{ FILTER("ATTR"); }} break; case 31: // line 138 "hpricot_css.java.rl" {{p = ((te))-1;}{ FILTER("CHILD"); }} break; case 32: // line 139 "hpricot_css.java.rl" {{p = ((te))-1;}{ FILTER("POS"); }} break; case 33: // line 140 "hpricot_css.java.rl" {{p = ((te))-1;}{ FILTER("PSUEDO"); }} break; case 34: // line 143 "hpricot_css.java.rl" {{p = ((te))-1;}} break; case 35: // line 1 "hpricot_css.java.rl" { switch( act ) { case 0: {{cs = 0; _goto_targ = 2; if (true) continue _goto;}} break; case 1: {{p = ((te))-1;} FILTER("ID"); } break; case 2: {{p = ((te))-1;} FILTER("CLASS"); } break; case 5: {{p = ((te))-1;} FILTER("TAG"); } break; case 7: {{p = ((te))-1;} FILTER("CHILD"); } break; case 8: {{p = ((te))-1;} FILTER("POS"); } break; case 9: {{p = ((te))-1;} FILTER("PSUEDO"); } break; default: break; } } break; // line 784 "HpricotCss.java" } } } case 2: _acts = _hpricot_css_to_state_actions[cs]; _nacts = (int) _hpricot_css_actions[_acts++]; while ( _nacts-- > 0 ) { switch ( _hpricot_css_actions[_acts++] ) { case 4: // line 1 "hpricot_css.java.rl" {ts = -1;} break; case 5: // line 1 "hpricot_css.java.rl" {act = 0;} break; // line 802 "HpricotCss.java" } } if ( cs == 0 ) { _goto_targ = 5; continue _goto; } if ( ++p != pe ) { _goto_targ = 1; continue _goto; } case 4: if ( p == eof ) { if ( _hpricot_css_eof_trans[cs] > 0 ) { _trans = _hpricot_css_eof_trans[cs] - 1; _goto_targ = 3; continue _goto; } } case 5: } break; } } // line 152 "hpricot_css.java.rl" return focus; } }