nokogiri 1.5.10 → 1.10.4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of nokogiri might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/LICENSE-DEPENDENCIES.md +1614 -0
- data/LICENSE.md +9 -0
- data/README.md +198 -0
- data/bin/nokogiri +50 -10
- data/dependencies.yml +72 -0
- data/ext/nokogiri/extconf.rb +634 -92
- data/ext/nokogiri/html_document.c +8 -8
- data/ext/nokogiri/html_element_description.c +15 -15
- data/ext/nokogiri/html_entity_lookup.c +1 -1
- data/ext/nokogiri/html_sax_parser_context.c +4 -4
- data/ext/nokogiri/html_sax_push_parser.c +2 -2
- data/ext/nokogiri/nokogiri.c +20 -12
- data/ext/nokogiri/nokogiri.h +1 -44
- data/ext/nokogiri/xml_attr.c +34 -25
- data/ext/nokogiri/xml_cdata.c +12 -6
- data/ext/nokogiri/xml_comment.c +18 -3
- data/ext/nokogiri/xml_document.c +64 -32
- data/ext/nokogiri/xml_dtd.c +2 -2
- data/ext/nokogiri/xml_encoding_handler.c +3 -3
- data/ext/nokogiri/xml_entity_reference.c +1 -1
- data/ext/nokogiri/xml_io.c +11 -6
- data/ext/nokogiri/xml_namespace.c +50 -17
- data/ext/nokogiri/xml_namespace.h +3 -2
- data/ext/nokogiri/xml_node.c +459 -240
- data/ext/nokogiri/xml_node_set.c +166 -147
- data/ext/nokogiri/xml_node_set.h +2 -4
- data/ext/nokogiri/xml_processing_instruction.c +2 -2
- data/ext/nokogiri/xml_reader.c +6 -19
- data/ext/nokogiri/xml_sax_parser.c +11 -13
- data/ext/nokogiri/xml_sax_parser_context.c +41 -1
- data/ext/nokogiri/xml_sax_push_parser.c +56 -12
- data/ext/nokogiri/xml_schema.c +1 -1
- data/ext/nokogiri/xml_syntax_error.c +11 -5
- data/ext/nokogiri/xml_syntax_error.h +1 -1
- data/ext/nokogiri/xml_text.c +1 -1
- data/ext/nokogiri/xml_xpath_context.c +17 -38
- data/ext/nokogiri/xslt_stylesheet.c +10 -10
- data/lib/nokogiri/css/node.rb +0 -50
- data/lib/nokogiri/css/parser.rb +263 -233
- data/lib/nokogiri/css/parser.y +54 -40
- data/lib/nokogiri/css/tokenizer.rb +104 -103
- data/lib/nokogiri/css/tokenizer.rex +5 -5
- data/lib/nokogiri/css/xpath_visitor.rb +78 -19
- data/lib/nokogiri/decorators/slop.rb +12 -5
- data/lib/nokogiri/html/document.rb +102 -21
- data/lib/nokogiri/html/document_fragment.rb +11 -3
- data/lib/nokogiri/html/sax/parser.rb +12 -2
- data/lib/nokogiri/html/sax/push_parser.rb +22 -2
- data/lib/nokogiri/version.rb +40 -22
- data/lib/nokogiri/xml/builder.rb +34 -31
- data/lib/nokogiri/xml/document.rb +20 -14
- data/lib/nokogiri/xml/document_fragment.rb +50 -2
- data/lib/nokogiri/xml/dtd.rb +14 -4
- data/lib/nokogiri/xml/entity_reference.rb +18 -0
- data/lib/nokogiri/xml/node.rb +148 -203
- data/lib/nokogiri/xml/node_set.rb +139 -123
- data/lib/nokogiri/xml/parse_options.rb +22 -0
- data/lib/nokogiri/xml/sax/document.rb +1 -1
- data/lib/nokogiri/xml/sax/parser.rb +7 -8
- data/lib/nokogiri/xml/searchable.rb +230 -0
- data/lib/nokogiri/xml/syntax_error.rb +24 -1
- data/lib/nokogiri/xml.rb +3 -1
- data/lib/nokogiri.rb +40 -24
- data/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +78 -0
- data/patches/libxml2/0002-Remove-script-macro-support.patch +40 -0
- data/patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi.patch +44 -0
- data/patches/libxslt/0001-Fix-security-framework-bypass.patch +120 -0
- data/ports/archives/libxml2-2.9.9.tar.gz +0 -0
- data/ports/archives/libxslt-1.1.33.tar.gz +0 -0
- metadata +252 -388
- data/.autotest +0 -26
- data/.gemtest +0 -0
- data/CHANGELOG.ja.rdoc +0 -785
- data/CHANGELOG.rdoc +0 -783
- data/C_CODING_STYLE.rdoc +0 -33
- data/Manifest.txt +0 -303
- data/README.ja.rdoc +0 -106
- data/README.rdoc +0 -175
- data/ROADMAP.md +0 -90
- data/Rakefile +0 -228
- data/STANDARD_RESPONSES.md +0 -47
- data/Y_U_NO_GEMSPEC.md +0 -155
- data/build_all +0 -105
- data/tasks/cross_compile.rb +0 -150
- data/tasks/nokogiri.org.rb +0 -24
- data/tasks/test.rb +0 -95
- data/test/css/test_nthiness.rb +0 -159
- data/test/css/test_parser.rb +0 -341
- data/test/css/test_tokenizer.rb +0 -198
- data/test/css/test_xpath_visitor.rb +0 -91
- data/test/decorators/test_slop.rb +0 -16
- data/test/files/2ch.html +0 -108
- data/test/files/address_book.rlx +0 -12
- data/test/files/address_book.xml +0 -10
- data/test/files/bar/bar.xsd +0 -4
- data/test/files/dont_hurt_em_why.xml +0 -422
- data/test/files/encoding.html +0 -82
- data/test/files/encoding.xhtml +0 -84
- data/test/files/exslt.xml +0 -8
- data/test/files/exslt.xslt +0 -35
- data/test/files/foo/foo.xsd +0 -4
- data/test/files/metacharset.html +0 -10
- data/test/files/noencoding.html +0 -47
- data/test/files/po.xml +0 -32
- data/test/files/po.xsd +0 -66
- data/test/files/shift_jis.html +0 -10
- data/test/files/shift_jis.xml +0 -5
- data/test/files/snuggles.xml +0 -3
- data/test/files/staff.dtd +0 -10
- data/test/files/staff.xml +0 -59
- data/test/files/staff.xslt +0 -32
- data/test/files/test_document_url/bar.xml +0 -2
- data/test/files/test_document_url/document.dtd +0 -4
- data/test/files/test_document_url/document.xml +0 -6
- data/test/files/tlm.html +0 -850
- data/test/files/to_be_xincluded.xml +0 -2
- data/test/files/valid_bar.xml +0 -2
- data/test/files/xinclude.xml +0 -4
- data/test/helper.rb +0 -154
- data/test/html/sax/test_parser.rb +0 -141
- data/test/html/sax/test_parser_context.rb +0 -46
- data/test/html/test_builder.rb +0 -164
- data/test/html/test_document.rb +0 -552
- data/test/html/test_document_encoding.rb +0 -138
- data/test/html/test_document_fragment.rb +0 -261
- data/test/html/test_element_description.rb +0 -105
- data/test/html/test_named_characters.rb +0 -14
- data/test/html/test_node.rb +0 -196
- data/test/html/test_node_encoding.rb +0 -27
- data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +0 -14
- data/test/namespaces/test_namespaces_in_builder_doc.rb +0 -75
- data/test/namespaces/test_namespaces_in_created_doc.rb +0 -75
- data/test/namespaces/test_namespaces_in_parsed_doc.rb +0 -66
- data/test/test_convert_xpath.rb +0 -135
- data/test/test_css_cache.rb +0 -45
- data/test/test_encoding_handler.rb +0 -46
- data/test/test_memory_leak.rb +0 -156
- data/test/test_nokogiri.rb +0 -132
- data/test/test_reader.rb +0 -555
- data/test/test_soap4r_sax.rb +0 -52
- data/test/test_xslt_transforms.rb +0 -254
- data/test/xml/node/test_save_options.rb +0 -28
- data/test/xml/node/test_subclass.rb +0 -44
- data/test/xml/sax/test_parser.rb +0 -366
- data/test/xml/sax/test_parser_context.rb +0 -106
- data/test/xml/sax/test_push_parser.rb +0 -157
- data/test/xml/test_attr.rb +0 -64
- data/test/xml/test_attribute_decl.rb +0 -86
- data/test/xml/test_builder.rb +0 -306
- data/test/xml/test_c14n.rb +0 -151
- data/test/xml/test_cdata.rb +0 -48
- data/test/xml/test_comment.rb +0 -29
- data/test/xml/test_document.rb +0 -828
- data/test/xml/test_document_encoding.rb +0 -28
- data/test/xml/test_document_fragment.rb +0 -223
- data/test/xml/test_dtd.rb +0 -103
- data/test/xml/test_dtd_encoding.rb +0 -33
- data/test/xml/test_element_content.rb +0 -56
- data/test/xml/test_element_decl.rb +0 -73
- data/test/xml/test_entity_decl.rb +0 -122
- data/test/xml/test_entity_reference.rb +0 -245
- data/test/xml/test_namespace.rb +0 -95
- data/test/xml/test_node.rb +0 -1137
- data/test/xml/test_node_attributes.rb +0 -96
- data/test/xml/test_node_encoding.rb +0 -107
- data/test/xml/test_node_inheritance.rb +0 -32
- data/test/xml/test_node_reparenting.rb +0 -374
- data/test/xml/test_node_set.rb +0 -755
- data/test/xml/test_parse_options.rb +0 -64
- data/test/xml/test_processing_instruction.rb +0 -30
- data/test/xml/test_reader_encoding.rb +0 -142
- data/test/xml/test_relax_ng.rb +0 -60
- data/test/xml/test_schema.rb +0 -103
- data/test/xml/test_syntax_error.rb +0 -12
- data/test/xml/test_text.rb +0 -45
- data/test/xml/test_unparented_node.rb +0 -422
- data/test/xml/test_xinclude.rb +0 -83
- data/test/xml/test_xpath.rb +0 -295
- data/test/xslt/test_custom_functions.rb +0 -133
- data/test/xslt/test_exception_handling.rb +0 -37
- data/test_all +0 -81
data/lib/nokogiri/css/parser.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# DO NOT MODIFY!!!!
|
3
|
-
# This file is automatically generated by Racc 1.4.
|
3
|
+
# This file is automatically generated by Racc 1.4.14
|
4
4
|
# from Racc grammer file "".
|
5
5
|
#
|
6
6
|
|
@@ -8,182 +8,212 @@ require 'racc/parser.rb'
|
|
8
8
|
|
9
9
|
|
10
10
|
require 'nokogiri/css/parser_extras'
|
11
|
+
|
11
12
|
module Nokogiri
|
12
13
|
module CSS
|
13
14
|
class Parser < Racc::Parser
|
15
|
+
|
16
|
+
|
17
|
+
def unescape_css_identifier(identifier)
|
18
|
+
identifier.gsub(/\\(?:([^0-9a-fA-F])|([0-9a-fA-F]{1,6})\s?)/){ |m| $1 || [$2.hex].pack('U') }
|
19
|
+
end
|
20
|
+
|
21
|
+
def unescape_css_string(str)
|
22
|
+
str.gsub(/\\(?:([^0-9a-fA-F])|([0-9a-fA-F]{1,6})\s?)/) do |m|
|
23
|
+
if $1=="\n"
|
24
|
+
''
|
25
|
+
else
|
26
|
+
$1 || [$2.hex].pack('U')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
14
30
|
##### State transition tables begin ###
|
15
31
|
|
16
32
|
racc_action_table = [
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
33
|
+
24, 93, 56, 57, 33, 55, 94, 23, 24, 22,
|
34
|
+
12, 93, 33, 27, 35, 52, 44, 22, -23, 25,
|
35
|
+
45, 98, 23, 33, 26, 18, 20, 25, 27, -23,
|
36
|
+
23, 24, 26, 18, 20, 33, 27, 11, 39, 24,
|
37
|
+
22, 23, 74, 33, 18, 91, 90, 27, 22, 12,
|
38
|
+
25, 24, -23, 23, 85, 26, 18, 20, 25, 27,
|
39
|
+
66, 23, 24, 26, 18, 20, 33, 27, 86, 88,
|
40
|
+
51, 22, 89, 92, 24, 26, 56, 87, 95, 60,
|
41
|
+
90, 25, 96, 46, 23, 49, 26, 18, 20, 99,
|
42
|
+
27, 33, 33, 51, 103, 104, 56, 58, 26, 60,
|
43
|
+
93, 106, 33, 33, 33, 109, 39, 39, 110, 23,
|
44
|
+
23, nil, 18, 18, 20, 27, 27, 39, 39, 39,
|
45
|
+
23, 23, 23, 18, 18, 18, 27, 27, 27, 33,
|
46
|
+
33, 101, 100, nil, 102, 22, 56, 87, nil, 60,
|
47
|
+
33, nil, nil, nil, 39, 39, nil, 23, 23, nil,
|
48
|
+
18, 18, 20, 27, 27, 39, 82, 83, 23, 56,
|
49
|
+
87, 18, 60, nil, 27, 82, 83, 78, 79, 80,
|
50
|
+
nil, 81, nil, nil, nil, 77, 78, 79, 80, nil,
|
51
|
+
81, 4, 5, 10, 77, 4, 5, 43, nil, 56,
|
52
|
+
87, 6, 60, 8, 7, 6, nil, 8, 7, 4,
|
53
|
+
5, 10, nil, nil, nil, nil, nil, nil, nil, 6,
|
54
|
+
nil, 8, 7 ]
|
34
55
|
|
35
56
|
racc_action_check = [
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
57
|
+
3, 58, 24, 24, 3, 24, 57, 15, 9, 3,
|
58
|
+
64, 57, 9, 15, 11, 24, 18, 9, 58, 3,
|
59
|
+
21, 64, 3, 14, 3, 3, 3, 9, 3, 22,
|
60
|
+
9, 12, 9, 9, 9, 12, 9, 1, 14, 42,
|
61
|
+
12, 14, 45, 42, 14, 55, 55, 14, 42, 1,
|
62
|
+
12, 27, 46, 12, 49, 12, 12, 12, 42, 12,
|
63
|
+
27, 42, 43, 42, 42, 42, 43, 42, 50, 53,
|
64
|
+
27, 43, 54, 56, 23, 27, 51, 51, 59, 51,
|
65
|
+
60, 43, 61, 23, 43, 23, 43, 43, 43, 75,
|
66
|
+
43, 28, 25, 23, 84, 86, 25, 25, 23, 25,
|
67
|
+
87, 91, 29, 30, 31, 94, 28, 25, 106, 28,
|
68
|
+
25, nil, 28, 25, 25, 28, 25, 29, 30, 31,
|
69
|
+
29, 30, 31, 29, 30, 31, 29, 30, 31, 32,
|
70
|
+
39, 76, 76, nil, 76, 39, 90, 90, nil, 90,
|
71
|
+
62, nil, nil, nil, 32, 39, nil, 32, 39, nil,
|
72
|
+
32, 39, 39, 32, 39, 62, 47, 47, 62, 92,
|
73
|
+
92, 62, 92, nil, 62, 48, 48, 47, 47, 47,
|
74
|
+
nil, 47, nil, nil, nil, 47, 48, 48, 48, nil,
|
75
|
+
48, 0, 0, 0, 48, 17, 17, 17, nil, 93,
|
76
|
+
93, 0, 93, 0, 0, 17, nil, 17, 17, 26,
|
77
|
+
26, 26, nil, nil, nil, nil, nil, nil, nil, 26,
|
78
|
+
nil, 26, 26 ]
|
53
79
|
|
54
80
|
racc_action_pointer = [
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
nil, nil,
|
63
|
-
nil,
|
64
|
-
|
65
|
-
nil,
|
81
|
+
174, 37, nil, -2, nil, nil, nil, nil, nil, 6,
|
82
|
+
nil, 14, 29, nil, 17, -17, nil, 178, 5, nil,
|
83
|
+
nil, -9, 0, 72, -8, 86, 192, 49, 85, 96,
|
84
|
+
97, 98, 123, nil, nil, nil, nil, nil, nil, 124,
|
85
|
+
nil, nil, 37, 60, nil, 31, 23, 153, 162, 29,
|
86
|
+
39, 66, nil, 46, 49, 34, 61, -1, -11, 55,
|
87
|
+
68, 59, 134, nil, -2, nil, nil, nil, nil, nil,
|
88
|
+
nil, nil, nil, nil, nil, 64, 121, nil, nil, nil,
|
89
|
+
nil, nil, nil, nil, 69, nil, 84, 88, nil, nil,
|
90
|
+
126, 94, 149, 179, 92, nil, nil, nil, nil, nil,
|
91
|
+
nil, nil, nil, nil, nil, nil, 95, nil, nil, nil,
|
92
|
+
nil ]
|
66
93
|
|
67
94
|
racc_action_default = [
|
68
|
-
-
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
95
|
+
-75, -76, -2, -24, -4, -5, -6, -7, -8, -24,
|
96
|
+
-74, -76, -24, -3, -47, -10, -13, -17, -76, -19,
|
97
|
+
-20, -76, -22, -24, -76, -24, -75, -76, -53, -54,
|
98
|
+
-55, -56, -57, -58, -14, 111, -1, -9, -46, -24,
|
99
|
+
-11, -12, -24, -24, -18, -76, -29, -62, -62, -76,
|
100
|
+
-76, -76, -30, -76, -76, -38, -39, -40, -22, -76,
|
101
|
+
-38, -76, -71, -73, -76, -44, -45, -48, -49, -50,
|
102
|
+
-51, -52, -15, -16, -21, -76, -76, -63, -64, -65,
|
103
|
+
-66, -67, -68, -69, -76, -27, -76, -40, -31, -32,
|
104
|
+
-76, -43, -76, -76, -76, -33, -70, -72, -34, -25,
|
105
|
+
-59, -60, -61, -26, -28, -35, -76, -36, -37, -42,
|
106
|
+
-41 ]
|
79
107
|
|
80
108
|
racc_goto_table = [
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
70, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
109
|
+
53, 38, 13, 1, 42, 48, 62, 37, 34, 65,
|
110
|
+
40, 36, 63, 75, 84, 67, 68, 69, 70, 71,
|
111
|
+
62, 41, 50, 47, 54, nil, 63, nil, nil, 64,
|
85
112
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
113
|
+
nil, 72, 73, nil, nil, nil, nil, nil, nil, 97,
|
86
114
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
87
|
-
|
115
|
+
nil, nil, nil, nil, nil, nil, 105, nil, 107, 108 ]
|
88
116
|
|
89
117
|
racc_goto_check = [
|
90
|
-
18,
|
91
|
-
|
92
|
-
|
93
|
-
2, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
118
|
+
18, 12, 2, 1, 5, 9, 7, 8, 2, 9,
|
119
|
+
10, 2, 12, 17, 17, 12, 12, 12, 12, 12,
|
120
|
+
7, 11, 15, 16, 19, nil, 12, nil, nil, 1,
|
94
121
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
122
|
+
nil, 2, 2, nil, nil, nil, nil, nil, nil, 12,
|
95
123
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
96
|
-
|
124
|
+
nil, nil, nil, nil, nil, nil, 18, nil, 18, 18 ]
|
97
125
|
|
98
126
|
racc_goto_pointer = [
|
99
|
-
nil,
|
100
|
-
|
101
|
-
nil, nil,
|
127
|
+
nil, 3, -1, nil, nil, -13, nil, -19, -7, -18,
|
128
|
+
-5, 6, -13, nil, nil, -1, 0, -34, -24, 0,
|
129
|
+
nil, nil, nil, nil ]
|
102
130
|
|
103
131
|
racc_goto_default = [
|
104
|
-
nil, nil, 3,
|
105
|
-
|
106
|
-
|
132
|
+
nil, nil, nil, 2, 3, 9, 17, 14, nil, 15,
|
133
|
+
31, 30, 16, 29, 19, 21, nil, nil, 59, nil,
|
134
|
+
28, 32, 76, 61 ]
|
107
135
|
|
108
136
|
racc_reduce_table = [
|
109
137
|
0, 0, :racc_error,
|
110
138
|
3, 32, :_reduce_1,
|
111
139
|
1, 32, :_reduce_2,
|
112
|
-
|
113
|
-
1,
|
114
|
-
1,
|
115
|
-
1,
|
116
|
-
1,
|
117
|
-
1,
|
118
|
-
|
119
|
-
2, 36, :_reduce_10,
|
120
|
-
3, 36, :_reduce_11,
|
121
|
-
2, 36, :_reduce_12,
|
122
|
-
1, 36, :_reduce_none,
|
123
|
-
2, 36, :_reduce_14,
|
124
|
-
2, 36, :_reduce_15,
|
125
|
-
2, 36, :_reduce_16,
|
126
|
-
1, 36, :_reduce_17,
|
127
|
-
2, 34, :_reduce_18,
|
128
|
-
3, 33, :_reduce_19,
|
129
|
-
1, 33, :_reduce_none,
|
130
|
-
2, 44, :_reduce_21,
|
140
|
+
2, 32, :_reduce_3,
|
141
|
+
1, 36, :_reduce_4,
|
142
|
+
1, 36, :_reduce_5,
|
143
|
+
1, 36, :_reduce_6,
|
144
|
+
1, 36, :_reduce_7,
|
145
|
+
1, 36, :_reduce_8,
|
146
|
+
2, 37, :_reduce_9,
|
131
147
|
1, 37, :_reduce_none,
|
132
|
-
|
133
|
-
|
134
|
-
1,
|
135
|
-
|
148
|
+
2, 37, :_reduce_11,
|
149
|
+
2, 37, :_reduce_12,
|
150
|
+
1, 37, :_reduce_13,
|
151
|
+
2, 34, :_reduce_14,
|
152
|
+
3, 33, :_reduce_15,
|
153
|
+
3, 33, :_reduce_16,
|
154
|
+
1, 33, :_reduce_none,
|
155
|
+
2, 44, :_reduce_18,
|
156
|
+
1, 38, :_reduce_none,
|
157
|
+
1, 38, :_reduce_20,
|
158
|
+
3, 45, :_reduce_21,
|
159
|
+
1, 45, :_reduce_22,
|
160
|
+
1, 46, :_reduce_23,
|
136
161
|
0, 46, :_reduce_none,
|
137
|
-
4,
|
138
|
-
4,
|
139
|
-
3,
|
140
|
-
3, 47, :
|
141
|
-
1, 47, :
|
142
|
-
2,
|
143
|
-
3,
|
144
|
-
3,
|
145
|
-
3,
|
146
|
-
3,
|
147
|
-
3, 49, :
|
148
|
-
3, 49, :
|
149
|
-
3, 49, :
|
162
|
+
4, 42, :_reduce_25,
|
163
|
+
4, 42, :_reduce_26,
|
164
|
+
3, 42, :_reduce_27,
|
165
|
+
3, 47, :_reduce_28,
|
166
|
+
1, 47, :_reduce_29,
|
167
|
+
2, 40, :_reduce_30,
|
168
|
+
3, 40, :_reduce_31,
|
169
|
+
3, 40, :_reduce_32,
|
170
|
+
3, 40, :_reduce_33,
|
171
|
+
3, 40, :_reduce_34,
|
172
|
+
3, 49, :_reduce_35,
|
173
|
+
3, 49, :_reduce_36,
|
174
|
+
3, 49, :_reduce_37,
|
150
175
|
1, 49, :_reduce_none,
|
151
176
|
1, 49, :_reduce_none,
|
152
|
-
1, 49, :
|
153
|
-
4, 50, :
|
154
|
-
3, 50, :
|
155
|
-
2, 50, :
|
156
|
-
2,
|
157
|
-
2,
|
158
|
-
1, 38, :_reduce_none,
|
159
|
-
0, 38, :_reduce_none,
|
160
|
-
2, 39, :_reduce_51,
|
161
|
-
2, 39, :_reduce_52,
|
162
|
-
2, 39, :_reduce_53,
|
163
|
-
2, 39, :_reduce_54,
|
164
|
-
1, 39, :_reduce_none,
|
177
|
+
1, 49, :_reduce_40,
|
178
|
+
4, 50, :_reduce_41,
|
179
|
+
3, 50, :_reduce_42,
|
180
|
+
2, 50, :_reduce_43,
|
181
|
+
2, 41, :_reduce_44,
|
182
|
+
2, 41, :_reduce_45,
|
165
183
|
1, 39, :_reduce_none,
|
166
|
-
|
167
|
-
|
168
|
-
|
184
|
+
0, 39, :_reduce_none,
|
185
|
+
2, 43, :_reduce_48,
|
186
|
+
2, 43, :_reduce_49,
|
187
|
+
2, 43, :_reduce_50,
|
188
|
+
2, 43, :_reduce_51,
|
189
|
+
2, 43, :_reduce_52,
|
190
|
+
1, 43, :_reduce_none,
|
191
|
+
1, 43, :_reduce_none,
|
192
|
+
1, 43, :_reduce_none,
|
193
|
+
1, 43, :_reduce_none,
|
194
|
+
1, 43, :_reduce_none,
|
195
|
+
1, 51, :_reduce_58,
|
196
|
+
2, 48, :_reduce_59,
|
169
197
|
2, 48, :_reduce_60,
|
170
198
|
2, 48, :_reduce_61,
|
171
199
|
0, 48, :_reduce_none,
|
172
|
-
1,
|
173
|
-
1,
|
174
|
-
1,
|
175
|
-
1,
|
176
|
-
1,
|
177
|
-
1,
|
178
|
-
1,
|
179
|
-
3,
|
180
|
-
1,
|
181
|
-
2,
|
182
|
-
1,
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
200
|
+
1, 53, :_reduce_63,
|
201
|
+
1, 53, :_reduce_64,
|
202
|
+
1, 53, :_reduce_65,
|
203
|
+
1, 53, :_reduce_66,
|
204
|
+
1, 53, :_reduce_67,
|
205
|
+
1, 53, :_reduce_68,
|
206
|
+
1, 53, :_reduce_69,
|
207
|
+
3, 52, :_reduce_70,
|
208
|
+
1, 54, :_reduce_none,
|
209
|
+
2, 54, :_reduce_none,
|
210
|
+
1, 54, :_reduce_none,
|
211
|
+
1, 35, :_reduce_none,
|
212
|
+
0, 35, :_reduce_none ]
|
213
|
+
|
214
|
+
racc_reduce_n = 76
|
215
|
+
|
216
|
+
racc_shift_n = 111
|
187
217
|
|
188
218
|
racc_token_table = {
|
189
219
|
false => 0,
|
@@ -274,23 +304,24 @@ Racc_token_to_s_table = [
|
|
274
304
|
"selector",
|
275
305
|
"simple_selector_1toN",
|
276
306
|
"prefixless_combinator_selector",
|
307
|
+
"optional_S",
|
277
308
|
"combinator",
|
278
309
|
"simple_selector",
|
279
310
|
"element_name",
|
280
311
|
"hcap_0toN",
|
281
|
-
"hcap_1toN",
|
282
|
-
"negation",
|
283
312
|
"function",
|
284
313
|
"pseudo",
|
285
314
|
"attrib",
|
315
|
+
"hcap_1toN",
|
286
316
|
"class",
|
287
317
|
"namespaced_ident",
|
288
318
|
"namespace",
|
289
319
|
"attrib_name",
|
290
320
|
"attrib_val_0or1",
|
291
321
|
"expr",
|
292
|
-
"
|
322
|
+
"nth",
|
293
323
|
"attribute_id",
|
324
|
+
"negation",
|
294
325
|
"eql_incl_dash",
|
295
326
|
"negation_arg" ]
|
296
327
|
|
@@ -312,7 +343,7 @@ def _reduce_2(val, _values, result)
|
|
312
343
|
end
|
313
344
|
|
314
345
|
def _reduce_3(val, _values, result)
|
315
|
-
result = val.flatten
|
346
|
+
result = [val.last].flatten
|
316
347
|
result
|
317
348
|
end
|
318
349
|
|
@@ -337,16 +368,11 @@ def _reduce_7(val, _values, result)
|
|
337
368
|
end
|
338
369
|
|
339
370
|
def _reduce_8(val, _values, result)
|
340
|
-
result = :DESCENDANT_SELECTOR
|
341
|
-
result
|
342
|
-
end
|
343
|
-
|
344
|
-
def _reduce_9(val, _values, result)
|
345
371
|
result = :CHILD_SELECTOR
|
346
372
|
result
|
347
373
|
end
|
348
374
|
|
349
|
-
def
|
375
|
+
def _reduce_9(val, _values, result)
|
350
376
|
result = if val[1].nil?
|
351
377
|
val.first
|
352
378
|
else
|
@@ -356,83 +382,61 @@ def _reduce_10(val, _values, result)
|
|
356
382
|
result
|
357
383
|
end
|
358
384
|
|
359
|
-
|
360
|
-
result = Node.new(:CONDITIONAL_SELECTOR,
|
361
|
-
[
|
362
|
-
val.first,
|
363
|
-
Node.new(:COMBINATOR, [val[1], val.last])
|
364
|
-
]
|
365
|
-
)
|
366
|
-
|
367
|
-
result
|
368
|
-
end
|
369
|
-
|
370
|
-
def _reduce_12(val, _values, result)
|
371
|
-
result = Node.new(:CONDITIONAL_SELECTOR, val)
|
372
|
-
|
373
|
-
result
|
374
|
-
end
|
375
|
-
|
376
|
-
# reduce 13 omitted
|
385
|
+
# reduce 10 omitted
|
377
386
|
|
378
|
-
def
|
387
|
+
def _reduce_11(val, _values, result)
|
379
388
|
result = Node.new(:CONDITIONAL_SELECTOR, val)
|
380
389
|
|
381
390
|
result
|
382
391
|
end
|
383
392
|
|
384
|
-
def
|
393
|
+
def _reduce_12(val, _values, result)
|
385
394
|
result = Node.new(:CONDITIONAL_SELECTOR, val)
|
386
395
|
|
387
396
|
result
|
388
397
|
end
|
389
398
|
|
390
|
-
def
|
399
|
+
def _reduce_13(val, _values, result)
|
391
400
|
result = Node.new(:CONDITIONAL_SELECTOR,
|
392
|
-
[
|
393
|
-
Node.new(:ELEMENT_NAME, ['*']),
|
394
|
-
Node.new(:COMBINATOR, val)
|
395
|
-
]
|
401
|
+
[Node.new(:ELEMENT_NAME, ['*']), val.first]
|
396
402
|
)
|
397
403
|
|
398
404
|
result
|
399
405
|
end
|
400
406
|
|
401
|
-
def
|
402
|
-
result = Node.new(
|
403
|
-
[Node.new(:ELEMENT_NAME, ['*']), val.first]
|
404
|
-
)
|
407
|
+
def _reduce_14(val, _values, result)
|
408
|
+
result = Node.new(val.first, [nil, val.last])
|
405
409
|
|
406
410
|
result
|
407
411
|
end
|
408
412
|
|
409
|
-
def
|
410
|
-
result = Node.new(val
|
413
|
+
def _reduce_15(val, _values, result)
|
414
|
+
result = Node.new(val[1], [val.first, val.last])
|
411
415
|
|
412
416
|
result
|
413
417
|
end
|
414
418
|
|
415
|
-
def
|
416
|
-
result = Node.new(
|
419
|
+
def _reduce_16(val, _values, result)
|
420
|
+
result = Node.new(:DESCENDANT_SELECTOR, [val.first, val.last])
|
417
421
|
|
418
422
|
result
|
419
423
|
end
|
420
424
|
|
421
|
-
# reduce
|
425
|
+
# reduce 17 omitted
|
422
426
|
|
423
|
-
def
|
424
|
-
result = Node.new(:CLASS_CONDITION, [val[1]])
|
427
|
+
def _reduce_18(val, _values, result)
|
428
|
+
result = Node.new(:CLASS_CONDITION, [unescape_css_identifier(val[1])])
|
425
429
|
result
|
426
430
|
end
|
427
431
|
|
428
|
-
# reduce
|
432
|
+
# reduce 19 omitted
|
429
433
|
|
430
|
-
def
|
434
|
+
def _reduce_20(val, _values, result)
|
431
435
|
result = Node.new(:ELEMENT_NAME, val)
|
432
436
|
result
|
433
437
|
end
|
434
438
|
|
435
|
-
def
|
439
|
+
def _reduce_21(val, _values, result)
|
436
440
|
result = Node.new(:ELEMENT_NAME,
|
437
441
|
[[val.first, val.last].compact.join(':')]
|
438
442
|
)
|
@@ -440,21 +444,21 @@ def _reduce_24(val, _values, result)
|
|
440
444
|
result
|
441
445
|
end
|
442
446
|
|
443
|
-
def
|
447
|
+
def _reduce_22(val, _values, result)
|
444
448
|
name = @namespaces.key?('xmlns') ? "xmlns:#{val.first}" : val.first
|
445
449
|
result = Node.new(:ELEMENT_NAME, [name])
|
446
450
|
|
447
451
|
result
|
448
452
|
end
|
449
453
|
|
450
|
-
def
|
454
|
+
def _reduce_23(val, _values, result)
|
451
455
|
result = val[0]
|
452
456
|
result
|
453
457
|
end
|
454
458
|
|
455
|
-
# reduce
|
459
|
+
# reduce 24 omitted
|
456
460
|
|
457
|
-
def
|
461
|
+
def _reduce_25(val, _values, result)
|
458
462
|
result = Node.new(:ATTRIBUTE_CONDITION,
|
459
463
|
[val[1]] + (val[2] || [])
|
460
464
|
)
|
@@ -462,7 +466,7 @@ def _reduce_28(val, _values, result)
|
|
462
466
|
result
|
463
467
|
end
|
464
468
|
|
465
|
-
def
|
469
|
+
def _reduce_26(val, _values, result)
|
466
470
|
result = Node.new(:ATTRIBUTE_CONDITION,
|
467
471
|
[val[1]] + (val[2] || [])
|
468
472
|
)
|
@@ -470,7 +474,7 @@ def _reduce_29(val, _values, result)
|
|
470
474
|
result
|
471
475
|
end
|
472
476
|
|
473
|
-
def
|
477
|
+
def _reduce_27(val, _values, result)
|
474
478
|
# Non standard, but hpricot supports it.
|
475
479
|
result = Node.new(:PSEUDO_CLASS,
|
476
480
|
[Node.new(:FUNCTION, ['nth-child(', val[1]])]
|
@@ -479,7 +483,7 @@ def _reduce_30(val, _values, result)
|
|
479
483
|
result
|
480
484
|
end
|
481
485
|
|
482
|
-
def
|
486
|
+
def _reduce_28(val, _values, result)
|
483
487
|
result = Node.new(:ELEMENT_NAME,
|
484
488
|
[[val.first, val.last].compact.join(':')]
|
485
489
|
)
|
@@ -487,7 +491,7 @@ def _reduce_31(val, _values, result)
|
|
487
491
|
result
|
488
492
|
end
|
489
493
|
|
490
|
-
def
|
494
|
+
def _reduce_29(val, _values, result)
|
491
495
|
# Default namespace is not applied to attributes.
|
492
496
|
# So we don't add prefix "xmlns:" as in namespaced_ident.
|
493
497
|
result = Node.new(:ELEMENT_NAME, [val.first])
|
@@ -495,62 +499,63 @@ def _reduce_32(val, _values, result)
|
|
495
499
|
result
|
496
500
|
end
|
497
501
|
|
498
|
-
def
|
502
|
+
def _reduce_30(val, _values, result)
|
499
503
|
result = Node.new(:FUNCTION, [val.first.strip])
|
500
504
|
|
501
505
|
result
|
502
506
|
end
|
503
507
|
|
504
|
-
def
|
508
|
+
def _reduce_31(val, _values, result)
|
505
509
|
result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
|
506
510
|
|
507
511
|
result
|
508
512
|
end
|
509
513
|
|
510
|
-
def
|
514
|
+
def _reduce_32(val, _values, result)
|
511
515
|
result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
|
512
516
|
|
513
517
|
result
|
514
518
|
end
|
515
519
|
|
516
|
-
def
|
520
|
+
def _reduce_33(val, _values, result)
|
517
521
|
result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
|
518
522
|
|
519
523
|
result
|
520
524
|
end
|
521
525
|
|
522
|
-
def
|
526
|
+
def _reduce_34(val, _values, result)
|
523
527
|
result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
|
524
528
|
|
525
529
|
result
|
526
530
|
end
|
527
531
|
|
528
|
-
def
|
532
|
+
def _reduce_35(val, _values, result)
|
529
533
|
result = [val.first, val.last]
|
530
534
|
result
|
531
535
|
end
|
532
536
|
|
533
|
-
def
|
537
|
+
def _reduce_36(val, _values, result)
|
534
538
|
result = [val.first, val.last]
|
535
539
|
result
|
536
540
|
end
|
537
541
|
|
538
|
-
def
|
542
|
+
def _reduce_37(val, _values, result)
|
539
543
|
result = [val.first, val.last]
|
540
544
|
result
|
541
545
|
end
|
542
546
|
|
543
|
-
# reduce
|
547
|
+
# reduce 38 omitted
|
544
548
|
|
545
|
-
# reduce
|
549
|
+
# reduce 39 omitted
|
546
550
|
|
547
|
-
def
|
548
|
-
|
549
|
-
|
550
|
-
result = Node.new(:
|
551
|
-
|
552
|
-
|
553
|
-
|
551
|
+
def _reduce_40(val, _values, result)
|
552
|
+
case val[0]
|
553
|
+
when 'even'
|
554
|
+
result = Node.new(:NTH, ['2','n','+','0'])
|
555
|
+
when 'odd'
|
556
|
+
result = Node.new(:NTH, ['2','n','+','1'])
|
557
|
+
when 'n'
|
558
|
+
result = Node.new(:NTH, ['1','n','+','0'])
|
554
559
|
else
|
555
560
|
# This is not CSS standard. It allows us to support this:
|
556
561
|
# assert_xpath("//a[foo(., @href)]", @parser.parse('a:foo(@href)'))
|
@@ -562,9 +567,9 @@ def _reduce_43(val, _values, result)
|
|
562
567
|
result
|
563
568
|
end
|
564
569
|
|
565
|
-
def
|
570
|
+
def _reduce_41(val, _values, result)
|
566
571
|
if val[1] == 'n'
|
567
|
-
result = Node.new(:
|
572
|
+
result = Node.new(:NTH, val)
|
568
573
|
else
|
569
574
|
raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
|
570
575
|
end
|
@@ -572,15 +577,15 @@ def _reduce_44(val, _values, result)
|
|
572
577
|
result
|
573
578
|
end
|
574
579
|
|
575
|
-
def
|
580
|
+
def _reduce_42(val, _values, result)
|
576
581
|
# n+3, -n+3
|
577
582
|
if val[0] == 'n'
|
578
583
|
val.unshift("1")
|
579
|
-
result = Node.new(:
|
584
|
+
result = Node.new(:NTH, val)
|
580
585
|
elsif val[0] == '-n'
|
581
586
|
val[0] = 'n'
|
582
587
|
val.unshift("-1")
|
583
|
-
result = Node.new(:
|
588
|
+
result = Node.new(:NTH, val)
|
584
589
|
else
|
585
590
|
raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
|
586
591
|
end
|
@@ -588,11 +593,19 @@ def _reduce_45(val, _values, result)
|
|
588
593
|
result
|
589
594
|
end
|
590
595
|
|
591
|
-
def
|
592
|
-
|
596
|
+
def _reduce_43(val, _values, result)
|
597
|
+
# 5n, -5n, 10n-1
|
598
|
+
n = val[1]
|
599
|
+
if n[0, 2] == 'n-'
|
600
|
+
val[1] = 'n'
|
601
|
+
val << "-"
|
602
|
+
# b is contained in n as n is the string "n-b"
|
603
|
+
val << n[2, n.size]
|
604
|
+
result = Node.new(:NTH, val)
|
605
|
+
elsif n == 'n'
|
593
606
|
val << "+"
|
594
607
|
val << "0"
|
595
|
-
result = Node.new(:
|
608
|
+
result = Node.new(:NTH, val)
|
596
609
|
else
|
597
610
|
raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
|
598
611
|
end
|
@@ -600,60 +613,73 @@ def _reduce_46(val, _values, result)
|
|
600
613
|
result
|
601
614
|
end
|
602
615
|
|
603
|
-
def
|
616
|
+
def _reduce_44(val, _values, result)
|
604
617
|
result = Node.new(:PSEUDO_CLASS, [val[1]])
|
605
618
|
|
606
619
|
result
|
607
620
|
end
|
608
621
|
|
609
|
-
def
|
622
|
+
def _reduce_45(val, _values, result)
|
610
623
|
result = Node.new(:PSEUDO_CLASS, [val[1]])
|
611
624
|
result
|
612
625
|
end
|
613
626
|
|
614
|
-
# reduce
|
627
|
+
# reduce 46 omitted
|
615
628
|
|
616
|
-
# reduce
|
629
|
+
# reduce 47 omitted
|
617
630
|
|
618
|
-
def
|
631
|
+
def _reduce_48(val, _values, result)
|
619
632
|
result = Node.new(:COMBINATOR, val)
|
620
633
|
|
621
634
|
result
|
622
635
|
end
|
623
636
|
|
624
|
-
def
|
637
|
+
def _reduce_49(val, _values, result)
|
625
638
|
result = Node.new(:COMBINATOR, val)
|
626
639
|
|
627
640
|
result
|
628
641
|
end
|
629
642
|
|
630
|
-
def
|
643
|
+
def _reduce_50(val, _values, result)
|
631
644
|
result = Node.new(:COMBINATOR, val)
|
632
645
|
|
633
646
|
result
|
634
647
|
end
|
635
648
|
|
636
|
-
def
|
649
|
+
def _reduce_51(val, _values, result)
|
637
650
|
result = Node.new(:COMBINATOR, val)
|
638
651
|
|
639
652
|
result
|
640
653
|
end
|
641
654
|
|
655
|
+
def _reduce_52(val, _values, result)
|
656
|
+
result = Node.new(:COMBINATOR, val)
|
657
|
+
|
658
|
+
result
|
659
|
+
end
|
660
|
+
|
661
|
+
# reduce 53 omitted
|
662
|
+
|
663
|
+
# reduce 54 omitted
|
664
|
+
|
642
665
|
# reduce 55 omitted
|
643
666
|
|
644
667
|
# reduce 56 omitted
|
645
668
|
|
646
669
|
# reduce 57 omitted
|
647
670
|
|
648
|
-
|
671
|
+
def _reduce_58(val, _values, result)
|
672
|
+
result = Node.new(:ID, [unescape_css_identifier(val.first)])
|
673
|
+
result
|
674
|
+
end
|
649
675
|
|
650
676
|
def _reduce_59(val, _values, result)
|
651
|
-
result =
|
677
|
+
result = [val.first, unescape_css_identifier(val[1])]
|
652
678
|
result
|
653
679
|
end
|
654
680
|
|
655
681
|
def _reduce_60(val, _values, result)
|
656
|
-
result = [val.first, val[1]]
|
682
|
+
result = [val.first, unescape_css_string(val[1])]
|
657
683
|
result
|
658
684
|
end
|
659
685
|
|
@@ -711,6 +737,10 @@ end
|
|
711
737
|
|
712
738
|
# reduce 73 omitted
|
713
739
|
|
740
|
+
# reduce 74 omitted
|
741
|
+
|
742
|
+
# reduce 75 omitted
|
743
|
+
|
714
744
|
def _reduce_none(val, _values, result)
|
715
745
|
val[0]
|
716
746
|
end
|