nokogiri 1.5.10 → 1.12.5
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/Gemfile +3 -0
- data/LICENSE-DEPENDENCIES.md +1903 -0
- data/LICENSE.md +9 -0
- data/README.md +278 -0
- data/bin/nokogiri +50 -10
- data/dependencies.yml +74 -0
- data/ext/nokogiri/depend +38 -358
- data/ext/nokogiri/extconf.rb +944 -100
- data/ext/nokogiri/gumbo.c +584 -0
- data/ext/nokogiri/html4_document.c +166 -0
- data/ext/nokogiri/html4_element_description.c +294 -0
- data/ext/nokogiri/html4_entity_lookup.c +37 -0
- data/ext/nokogiri/html4_sax_parser_context.c +120 -0
- data/ext/nokogiri/html4_sax_push_parser.c +95 -0
- data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
- data/ext/nokogiri/nokogiri.c +232 -87
- data/ext/nokogiri/nokogiri.h +188 -129
- data/ext/nokogiri/test_global_handlers.c +40 -0
- data/ext/nokogiri/xml_attr.c +49 -40
- data/ext/nokogiri/xml_attribute_decl.c +18 -18
- data/ext/nokogiri/xml_cdata.c +24 -23
- data/ext/nokogiri/xml_comment.c +29 -21
- data/ext/nokogiri/xml_document.c +305 -201
- data/ext/nokogiri/xml_document_fragment.c +13 -15
- data/ext/nokogiri/xml_dtd.c +54 -48
- data/ext/nokogiri/xml_element_content.c +31 -26
- data/ext/nokogiri/xml_element_decl.c +22 -22
- data/ext/nokogiri/xml_encoding_handler.c +30 -19
- data/ext/nokogiri/xml_entity_decl.c +32 -30
- data/ext/nokogiri/xml_entity_reference.c +16 -18
- data/ext/nokogiri/xml_namespace.c +74 -32
- data/ext/nokogiri/xml_node.c +808 -503
- data/ext/nokogiri/xml_node_set.c +239 -208
- data/ext/nokogiri/xml_processing_instruction.c +17 -19
- data/ext/nokogiri/xml_reader.c +198 -186
- data/ext/nokogiri/xml_relax_ng.c +52 -28
- data/ext/nokogiri/xml_sax_parser.c +123 -125
- data/ext/nokogiri/xml_sax_parser_context.c +138 -79
- data/ext/nokogiri/xml_sax_push_parser.c +88 -35
- data/ext/nokogiri/xml_schema.c +112 -33
- data/ext/nokogiri/xml_syntax_error.c +50 -23
- data/ext/nokogiri/xml_text.c +14 -18
- data/ext/nokogiri/xml_xpath_context.c +162 -98
- data/ext/nokogiri/xslt_stylesheet.c +162 -168
- data/gumbo-parser/CHANGES.md +63 -0
- data/gumbo-parser/Makefile +101 -0
- data/gumbo-parser/THANKS +27 -0
- data/gumbo-parser/src/Makefile +34 -0
- data/gumbo-parser/src/README.md +41 -0
- data/gumbo-parser/src/ascii.c +75 -0
- data/gumbo-parser/src/ascii.h +115 -0
- data/gumbo-parser/src/attribute.c +42 -0
- data/gumbo-parser/src/attribute.h +17 -0
- data/gumbo-parser/src/char_ref.c +22225 -0
- data/gumbo-parser/src/char_ref.h +29 -0
- data/gumbo-parser/src/char_ref.rl +2154 -0
- data/gumbo-parser/src/error.c +626 -0
- data/gumbo-parser/src/error.h +148 -0
- data/gumbo-parser/src/foreign_attrs.c +104 -0
- data/gumbo-parser/src/foreign_attrs.gperf +27 -0
- data/gumbo-parser/src/gumbo.h +943 -0
- data/gumbo-parser/src/insertion_mode.h +33 -0
- data/gumbo-parser/src/macros.h +91 -0
- data/gumbo-parser/src/parser.c +4886 -0
- data/gumbo-parser/src/parser.h +41 -0
- data/gumbo-parser/src/replacement.h +33 -0
- data/gumbo-parser/src/string_buffer.c +103 -0
- data/gumbo-parser/src/string_buffer.h +68 -0
- data/gumbo-parser/src/string_piece.c +48 -0
- data/gumbo-parser/src/svg_attrs.c +174 -0
- data/gumbo-parser/src/svg_attrs.gperf +77 -0
- data/gumbo-parser/src/svg_tags.c +137 -0
- data/gumbo-parser/src/svg_tags.gperf +55 -0
- data/gumbo-parser/src/tag.c +222 -0
- data/gumbo-parser/src/tag_lookup.c +382 -0
- data/gumbo-parser/src/tag_lookup.gperf +169 -0
- data/gumbo-parser/src/tag_lookup.h +13 -0
- data/gumbo-parser/src/token_buffer.c +79 -0
- data/gumbo-parser/src/token_buffer.h +71 -0
- data/gumbo-parser/src/token_type.h +17 -0
- data/gumbo-parser/src/tokenizer.c +3463 -0
- data/gumbo-parser/src/tokenizer.h +112 -0
- data/gumbo-parser/src/tokenizer_states.h +339 -0
- data/gumbo-parser/src/utf8.c +245 -0
- data/gumbo-parser/src/utf8.h +164 -0
- data/gumbo-parser/src/util.c +68 -0
- data/gumbo-parser/src/util.h +30 -0
- data/gumbo-parser/src/vector.c +111 -0
- data/gumbo-parser/src/vector.h +45 -0
- data/lib/nokogiri/css/node.rb +1 -50
- data/lib/nokogiri/css/parser.rb +317 -286
- data/lib/nokogiri/css/parser.y +57 -43
- data/lib/nokogiri/css/parser_extras.rb +39 -36
- data/lib/nokogiri/css/syntax_error.rb +2 -1
- data/lib/nokogiri/css/tokenizer.rb +105 -103
- data/lib/nokogiri/css/tokenizer.rex +5 -5
- data/lib/nokogiri/css/xpath_visitor.rb +137 -48
- data/lib/nokogiri/css.rb +15 -14
- data/lib/nokogiri/decorators/slop.rb +13 -5
- data/lib/nokogiri/extension.rb +31 -0
- data/lib/nokogiri/gumbo.rb +14 -0
- data/lib/nokogiri/html.rb +32 -27
- data/lib/nokogiri/{html → html4}/builder.rb +3 -2
- data/lib/nokogiri/{html → html4}/document.rb +118 -50
- data/lib/nokogiri/{html → html4}/document_fragment.rb +20 -11
- data/lib/nokogiri/{html → html4}/element_description.rb +2 -1
- data/lib/nokogiri/{html → html4}/element_description_defaults.rb +2 -1
- data/lib/nokogiri/{html → html4}/entity_lookup.rb +2 -1
- data/lib/nokogiri/{html → html4}/sax/parser.rb +22 -14
- data/lib/nokogiri/html4/sax/parser_context.rb +19 -0
- data/lib/nokogiri/html4/sax/push_parser.rb +37 -0
- data/lib/nokogiri/html4.rb +40 -0
- data/lib/nokogiri/html5/document.rb +74 -0
- data/lib/nokogiri/html5/document_fragment.rb +80 -0
- data/lib/nokogiri/html5/node.rb +93 -0
- data/lib/nokogiri/html5.rb +473 -0
- data/lib/nokogiri/jruby/dependencies.rb +20 -0
- data/lib/nokogiri/syntax_error.rb +1 -0
- data/lib/nokogiri/version/constant.rb +5 -0
- data/lib/nokogiri/version/info.rb +215 -0
- data/lib/nokogiri/version.rb +3 -91
- data/lib/nokogiri/xml/attr.rb +1 -0
- data/lib/nokogiri/xml/attribute_decl.rb +1 -0
- data/lib/nokogiri/xml/builder.rb +75 -33
- data/lib/nokogiri/xml/cdata.rb +1 -0
- data/lib/nokogiri/xml/character_data.rb +1 -0
- data/lib/nokogiri/xml/document.rb +157 -54
- data/lib/nokogiri/xml/document_fragment.rb +55 -8
- data/lib/nokogiri/xml/dtd.rb +15 -4
- data/lib/nokogiri/xml/element_content.rb +1 -0
- data/lib/nokogiri/xml/element_decl.rb +1 -0
- data/lib/nokogiri/xml/entity_decl.rb +1 -0
- data/lib/nokogiri/xml/entity_reference.rb +19 -0
- data/lib/nokogiri/xml/namespace.rb +1 -0
- data/lib/nokogiri/xml/node/save_options.rb +2 -1
- data/lib/nokogiri/xml/node.rb +712 -431
- data/lib/nokogiri/xml/node_set.rb +140 -123
- data/lib/nokogiri/xml/notation.rb +1 -0
- data/lib/nokogiri/xml/parse_options.rb +31 -0
- data/lib/nokogiri/xml/pp/character_data.rb +1 -0
- data/lib/nokogiri/xml/pp/node.rb +1 -0
- data/lib/nokogiri/xml/pp.rb +3 -2
- data/lib/nokogiri/xml/processing_instruction.rb +1 -0
- data/lib/nokogiri/xml/reader.rb +9 -12
- data/lib/nokogiri/xml/relax_ng.rb +7 -2
- data/lib/nokogiri/xml/sax/document.rb +25 -30
- data/lib/nokogiri/xml/sax/parser.rb +8 -8
- data/lib/nokogiri/xml/sax/parser_context.rb +1 -0
- data/lib/nokogiri/xml/sax/push_parser.rb +1 -0
- data/lib/nokogiri/xml/sax.rb +5 -4
- data/lib/nokogiri/xml/schema.rb +13 -4
- data/lib/nokogiri/xml/searchable.rb +239 -0
- data/lib/nokogiri/xml/syntax_error.rb +25 -1
- data/lib/nokogiri/xml/text.rb +1 -0
- data/lib/nokogiri/xml/xpath/syntax_error.rb +2 -1
- data/lib/nokogiri/xml/xpath.rb +4 -5
- data/lib/nokogiri/xml/xpath_context.rb +1 -0
- data/lib/nokogiri/xml.rb +37 -35
- data/lib/nokogiri/xslt/stylesheet.rb +2 -1
- data/lib/nokogiri/xslt.rb +17 -16
- data/lib/nokogiri.rb +55 -58
- data/lib/xsd/xmlparser/nokogiri.rb +1 -0
- data/patches/libxml2/0001-Remove-script-macro-support.patch +40 -0
- data/patches/libxml2/0002-Update-entities-to-remove-handling-of-ssi.patch +44 -0
- data/patches/libxml2/0003-libxml2.la-is-in-top_builddir.patch +25 -0
- data/patches/libxml2/0004-use-glibc-strlen.patch +53 -0
- data/patches/libxml2/0005-avoid-isnan-isinf.patch +81 -0
- data/patches/libxml2/0006-update-automake-files-for-arm64.patch +2511 -0
- data/patches/libxml2/0007-Fix-XPath-recursion-limit.patch +31 -0
- data/patches/libxslt/0001-update-automake-files-for-arm64.patch +2511 -0
- data/patches/libxslt/0002-Fix-xml2-config-check-in-configure-script.patch +19 -0
- data/ports/archives/libxml2-2.9.12.tar.gz +0 -0
- data/ports/archives/libxslt-1.1.34.tar.gz +0 -0
- metadata +307 -459
- 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/ext/nokogiri/html_document.c +0 -170
- data/ext/nokogiri/html_document.h +0 -10
- data/ext/nokogiri/html_element_description.c +0 -279
- data/ext/nokogiri/html_element_description.h +0 -10
- data/ext/nokogiri/html_entity_lookup.c +0 -32
- data/ext/nokogiri/html_entity_lookup.h +0 -8
- data/ext/nokogiri/html_sax_parser_context.c +0 -116
- data/ext/nokogiri/html_sax_parser_context.h +0 -11
- data/ext/nokogiri/html_sax_push_parser.c +0 -87
- data/ext/nokogiri/html_sax_push_parser.h +0 -9
- data/ext/nokogiri/xml_attr.h +0 -9
- data/ext/nokogiri/xml_attribute_decl.h +0 -9
- data/ext/nokogiri/xml_cdata.h +0 -9
- data/ext/nokogiri/xml_comment.h +0 -9
- data/ext/nokogiri/xml_document.h +0 -23
- data/ext/nokogiri/xml_document_fragment.h +0 -10
- data/ext/nokogiri/xml_dtd.h +0 -10
- data/ext/nokogiri/xml_element_content.h +0 -10
- data/ext/nokogiri/xml_element_decl.h +0 -9
- data/ext/nokogiri/xml_encoding_handler.h +0 -8
- data/ext/nokogiri/xml_entity_decl.h +0 -10
- data/ext/nokogiri/xml_entity_reference.h +0 -9
- data/ext/nokogiri/xml_io.c +0 -56
- data/ext/nokogiri/xml_io.h +0 -11
- data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
- data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
- data/ext/nokogiri/xml_namespace.h +0 -13
- data/ext/nokogiri/xml_node.h +0 -13
- data/ext/nokogiri/xml_node_set.h +0 -14
- data/ext/nokogiri/xml_processing_instruction.h +0 -9
- data/ext/nokogiri/xml_reader.h +0 -10
- data/ext/nokogiri/xml_relax_ng.h +0 -9
- data/ext/nokogiri/xml_sax_parser.h +0 -39
- data/ext/nokogiri/xml_sax_parser_context.h +0 -10
- data/ext/nokogiri/xml_sax_push_parser.h +0 -9
- data/ext/nokogiri/xml_schema.h +0 -9
- data/ext/nokogiri/xml_syntax_error.h +0 -13
- data/ext/nokogiri/xml_text.h +0 -9
- data/ext/nokogiri/xml_xpath_context.h +0 -10
- data/ext/nokogiri/xslt_stylesheet.h +0 -14
- data/lib/nokogiri/html/sax/parser_context.rb +0 -16
- data/lib/nokogiri/html/sax/push_parser.rb +0 -16
- 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,189 +1,220 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# DO NOT MODIFY!!!!
|
3
|
-
# This file is automatically generated by Racc 1.
|
4
|
-
# from Racc
|
4
|
+
# This file is automatically generated by Racc 1.5.2
|
5
|
+
# from Racc grammar file "".
|
5
6
|
#
|
6
7
|
|
7
8
|
require 'racc/parser.rb'
|
8
9
|
|
9
10
|
|
10
|
-
|
11
|
+
require_relative "parser_extras"
|
12
|
+
|
11
13
|
module Nokogiri
|
12
14
|
module CSS
|
13
15
|
class Parser < Racc::Parser
|
16
|
+
|
17
|
+
|
18
|
+
def unescape_css_identifier(identifier)
|
19
|
+
identifier.gsub(/\\(?:([^0-9a-fA-F])|([0-9a-fA-F]{1,6})\s?)/){ |m| $1 || [$2.hex].pack('U') }
|
20
|
+
end
|
21
|
+
|
22
|
+
def unescape_css_string(str)
|
23
|
+
str.gsub(/\\(?:([^0-9a-fA-F])|([0-9a-fA-F]{1,6})\s?)/) do |m|
|
24
|
+
if $1=="\n"
|
25
|
+
''
|
26
|
+
else
|
27
|
+
$1 || [$2.hex].pack('U')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
14
31
|
##### State transition tables begin ###
|
15
32
|
|
16
33
|
racc_action_table = [
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
+
24, 93, 56, 57, 33, 55, 94, 23, 24, 22,
|
35
|
+
12, 93, 33, 27, 35, 52, 44, 22, -23, 25,
|
36
|
+
45, 98, 23, 33, 26, 18, 20, 25, 27, -23,
|
37
|
+
23, 24, 26, 18, 20, 33, 27, 11, 39, 24,
|
38
|
+
22, 23, 74, 33, 18, 91, 90, 27, 22, 12,
|
39
|
+
25, 24, -23, 23, 85, 26, 18, 20, 25, 27,
|
40
|
+
66, 23, 24, 26, 18, 20, 33, 27, 86, 88,
|
41
|
+
51, 22, 89, 92, 24, 26, 56, 87, 95, 60,
|
42
|
+
90, 25, 96, 46, 23, 49, 26, 18, 20, 99,
|
43
|
+
27, 33, 33, 51, 103, 104, 56, 58, 26, 60,
|
44
|
+
93, 106, 33, 33, 33, 109, 39, 39, 110, 23,
|
45
|
+
23, nil, 18, 18, 20, 27, 27, 39, 39, 39,
|
46
|
+
23, 23, 23, 18, 18, 18, 27, 27, 27, 33,
|
47
|
+
33, 101, 100, nil, 102, 22, 56, 87, nil, 60,
|
48
|
+
33, nil, nil, nil, 39, 39, nil, 23, 23, nil,
|
49
|
+
18, 18, 20, 27, 27, 39, 82, 83, 23, 56,
|
50
|
+
87, 18, 60, nil, 27, 82, 83, 78, 79, 80,
|
51
|
+
nil, 81, nil, nil, nil, 77, 78, 79, 80, nil,
|
52
|
+
81, 4, 5, 10, 77, 4, 5, 43, nil, 56,
|
53
|
+
87, 6, 60, 8, 7, 6, nil, 8, 7, 4,
|
54
|
+
5, 10, nil, nil, nil, nil, nil, nil, nil, 6,
|
55
|
+
nil, 8, 7 ]
|
34
56
|
|
35
57
|
racc_action_check = [
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
58
|
+
3, 58, 24, 24, 3, 24, 57, 15, 9, 3,
|
59
|
+
64, 57, 9, 15, 11, 24, 18, 9, 58, 3,
|
60
|
+
21, 64, 3, 14, 3, 3, 3, 9, 3, 22,
|
61
|
+
9, 12, 9, 9, 9, 12, 9, 1, 14, 42,
|
62
|
+
12, 14, 45, 42, 14, 55, 55, 14, 42, 1,
|
63
|
+
12, 27, 46, 12, 49, 12, 12, 12, 42, 12,
|
64
|
+
27, 42, 43, 42, 42, 42, 43, 42, 50, 53,
|
65
|
+
27, 43, 54, 56, 23, 27, 51, 51, 59, 51,
|
66
|
+
60, 43, 61, 23, 43, 23, 43, 43, 43, 75,
|
67
|
+
43, 28, 25, 23, 84, 86, 25, 25, 23, 25,
|
68
|
+
87, 91, 29, 30, 31, 94, 28, 25, 106, 28,
|
69
|
+
25, nil, 28, 25, 25, 28, 25, 29, 30, 31,
|
70
|
+
29, 30, 31, 29, 30, 31, 29, 30, 31, 32,
|
71
|
+
39, 76, 76, nil, 76, 39, 90, 90, nil, 90,
|
72
|
+
62, nil, nil, nil, 32, 39, nil, 32, 39, nil,
|
73
|
+
32, 39, 39, 32, 39, 62, 47, 47, 62, 92,
|
74
|
+
92, 62, 92, nil, 62, 48, 48, 47, 47, 47,
|
75
|
+
nil, 47, nil, nil, nil, 47, 48, 48, 48, nil,
|
76
|
+
48, 0, 0, 0, 48, 17, 17, 17, nil, 93,
|
77
|
+
93, 0, 93, 0, 0, 17, nil, 17, 17, 26,
|
78
|
+
26, 26, nil, nil, nil, nil, nil, nil, nil, 26,
|
79
|
+
nil, 26, 26 ]
|
53
80
|
|
54
81
|
racc_action_pointer = [
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
nil, nil,
|
63
|
-
nil,
|
64
|
-
|
65
|
-
nil,
|
82
|
+
174, 37, nil, -2, nil, nil, nil, nil, nil, 6,
|
83
|
+
nil, 14, 29, nil, 17, -17, nil, 178, 5, nil,
|
84
|
+
nil, -9, 0, 72, -8, 86, 192, 49, 85, 96,
|
85
|
+
97, 98, 123, nil, nil, nil, nil, nil, nil, 124,
|
86
|
+
nil, nil, 37, 60, nil, 31, 23, 153, 162, 29,
|
87
|
+
39, 66, nil, 46, 49, 34, 61, -1, -11, 55,
|
88
|
+
68, 59, 134, nil, -2, nil, nil, nil, nil, nil,
|
89
|
+
nil, nil, nil, nil, nil, 64, 121, nil, nil, nil,
|
90
|
+
nil, nil, nil, nil, 69, nil, 84, 88, nil, nil,
|
91
|
+
126, 94, 149, 179, 92, nil, nil, nil, nil, nil,
|
92
|
+
nil, nil, nil, nil, nil, nil, 95, nil, nil, nil,
|
93
|
+
nil ]
|
66
94
|
|
67
95
|
racc_action_default = [
|
68
|
-
-
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
96
|
+
-75, -76, -2, -24, -4, -5, -6, -7, -8, -24,
|
97
|
+
-74, -76, -24, -3, -47, -10, -13, -17, -76, -19,
|
98
|
+
-20, -76, -22, -24, -76, -24, -75, -76, -53, -54,
|
99
|
+
-55, -56, -57, -58, -14, 111, -1, -9, -46, -24,
|
100
|
+
-11, -12, -24, -24, -18, -76, -29, -62, -62, -76,
|
101
|
+
-76, -76, -30, -76, -76, -38, -39, -40, -22, -76,
|
102
|
+
-38, -76, -71, -73, -76, -44, -45, -48, -49, -50,
|
103
|
+
-51, -52, -15, -16, -21, -76, -76, -63, -64, -65,
|
104
|
+
-66, -67, -68, -69, -76, -27, -76, -40, -31, -32,
|
105
|
+
-76, -43, -76, -76, -76, -33, -70, -72, -34, -25,
|
106
|
+
-59, -60, -61, -26, -28, -35, -76, -36, -37, -42,
|
107
|
+
-41 ]
|
79
108
|
|
80
109
|
racc_goto_table = [
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
70, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
110
|
+
53, 38, 13, 1, 42, 48, 62, 37, 34, 65,
|
111
|
+
40, 36, 63, 75, 84, 67, 68, 69, 70, 71,
|
112
|
+
62, 41, 50, 47, 54, nil, 63, nil, nil, 64,
|
85
113
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
114
|
+
nil, 72, 73, nil, nil, nil, nil, nil, nil, 97,
|
86
115
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
87
|
-
|
116
|
+
nil, nil, nil, nil, nil, nil, 105, nil, 107, 108 ]
|
88
117
|
|
89
118
|
racc_goto_check = [
|
90
|
-
18,
|
91
|
-
|
92
|
-
|
93
|
-
2, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
119
|
+
18, 12, 2, 1, 5, 9, 7, 8, 2, 9,
|
120
|
+
10, 2, 12, 17, 17, 12, 12, 12, 12, 12,
|
121
|
+
7, 11, 15, 16, 19, nil, 12, nil, nil, 1,
|
94
122
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
123
|
+
nil, 2, 2, nil, nil, nil, nil, nil, nil, 12,
|
95
124
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
96
|
-
|
125
|
+
nil, nil, nil, nil, nil, nil, 18, nil, 18, 18 ]
|
97
126
|
|
98
127
|
racc_goto_pointer = [
|
99
|
-
nil,
|
100
|
-
|
101
|
-
nil, nil,
|
128
|
+
nil, 3, -1, nil, nil, -13, nil, -19, -7, -18,
|
129
|
+
-5, 6, -13, nil, nil, -1, 0, -34, -24, 0,
|
130
|
+
nil, nil, nil, nil ]
|
102
131
|
|
103
132
|
racc_goto_default = [
|
104
|
-
nil, nil, 3,
|
105
|
-
|
106
|
-
|
133
|
+
nil, nil, nil, 2, 3, 9, 17, 14, nil, 15,
|
134
|
+
31, 30, 16, 29, 19, 21, nil, nil, 59, nil,
|
135
|
+
28, 32, 76, 61 ]
|
107
136
|
|
108
137
|
racc_reduce_table = [
|
109
138
|
0, 0, :racc_error,
|
110
139
|
3, 32, :_reduce_1,
|
111
140
|
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,
|
141
|
+
2, 32, :_reduce_3,
|
142
|
+
1, 36, :_reduce_4,
|
143
|
+
1, 36, :_reduce_5,
|
144
|
+
1, 36, :_reduce_6,
|
145
|
+
1, 36, :_reduce_7,
|
146
|
+
1, 36, :_reduce_8,
|
147
|
+
2, 37, :_reduce_9,
|
131
148
|
1, 37, :_reduce_none,
|
132
|
-
|
133
|
-
|
134
|
-
1,
|
135
|
-
|
149
|
+
2, 37, :_reduce_11,
|
150
|
+
2, 37, :_reduce_12,
|
151
|
+
1, 37, :_reduce_13,
|
152
|
+
2, 34, :_reduce_14,
|
153
|
+
3, 33, :_reduce_15,
|
154
|
+
3, 33, :_reduce_16,
|
155
|
+
1, 33, :_reduce_none,
|
156
|
+
2, 44, :_reduce_18,
|
157
|
+
1, 38, :_reduce_none,
|
158
|
+
1, 38, :_reduce_20,
|
159
|
+
3, 45, :_reduce_21,
|
160
|
+
1, 45, :_reduce_22,
|
161
|
+
1, 46, :_reduce_23,
|
136
162
|
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, :
|
163
|
+
4, 42, :_reduce_25,
|
164
|
+
4, 42, :_reduce_26,
|
165
|
+
3, 42, :_reduce_27,
|
166
|
+
3, 47, :_reduce_28,
|
167
|
+
1, 47, :_reduce_29,
|
168
|
+
2, 40, :_reduce_30,
|
169
|
+
3, 40, :_reduce_31,
|
170
|
+
3, 40, :_reduce_32,
|
171
|
+
3, 40, :_reduce_33,
|
172
|
+
3, 40, :_reduce_34,
|
173
|
+
3, 49, :_reduce_35,
|
174
|
+
3, 49, :_reduce_36,
|
175
|
+
3, 49, :_reduce_37,
|
150
176
|
1, 49, :_reduce_none,
|
151
177
|
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,
|
165
|
-
1, 39, :_reduce_none,
|
166
|
-
1, 39, :_reduce_none,
|
178
|
+
1, 49, :_reduce_40,
|
179
|
+
4, 50, :_reduce_41,
|
180
|
+
3, 50, :_reduce_42,
|
181
|
+
2, 50, :_reduce_43,
|
182
|
+
2, 41, :_reduce_44,
|
183
|
+
2, 41, :_reduce_45,
|
167
184
|
1, 39, :_reduce_none,
|
168
|
-
|
185
|
+
0, 39, :_reduce_none,
|
186
|
+
2, 43, :_reduce_48,
|
187
|
+
2, 43, :_reduce_49,
|
188
|
+
2, 43, :_reduce_50,
|
189
|
+
2, 43, :_reduce_51,
|
190
|
+
2, 43, :_reduce_52,
|
191
|
+
1, 43, :_reduce_none,
|
192
|
+
1, 43, :_reduce_none,
|
193
|
+
1, 43, :_reduce_none,
|
194
|
+
1, 43, :_reduce_none,
|
195
|
+
1, 43, :_reduce_none,
|
196
|
+
1, 51, :_reduce_58,
|
197
|
+
2, 48, :_reduce_59,
|
169
198
|
2, 48, :_reduce_60,
|
170
199
|
2, 48, :_reduce_61,
|
171
200
|
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
|
-
|
201
|
+
1, 53, :_reduce_63,
|
202
|
+
1, 53, :_reduce_64,
|
203
|
+
1, 53, :_reduce_65,
|
204
|
+
1, 53, :_reduce_66,
|
205
|
+
1, 53, :_reduce_67,
|
206
|
+
1, 53, :_reduce_68,
|
207
|
+
1, 53, :_reduce_69,
|
208
|
+
3, 52, :_reduce_70,
|
209
|
+
1, 54, :_reduce_none,
|
210
|
+
2, 54, :_reduce_none,
|
211
|
+
1, 54, :_reduce_none,
|
212
|
+
1, 35, :_reduce_none,
|
213
|
+
0, 35, :_reduce_none ]
|
214
|
+
|
215
|
+
racc_reduce_n = 76
|
216
|
+
|
217
|
+
racc_shift_n = 111
|
187
218
|
|
188
219
|
racc_token_table = {
|
189
220
|
false => 0,
|
@@ -274,23 +305,24 @@ Racc_token_to_s_table = [
|
|
274
305
|
"selector",
|
275
306
|
"simple_selector_1toN",
|
276
307
|
"prefixless_combinator_selector",
|
308
|
+
"optional_S",
|
277
309
|
"combinator",
|
278
310
|
"simple_selector",
|
279
311
|
"element_name",
|
280
312
|
"hcap_0toN",
|
281
|
-
"hcap_1toN",
|
282
|
-
"negation",
|
283
313
|
"function",
|
284
314
|
"pseudo",
|
285
315
|
"attrib",
|
316
|
+
"hcap_1toN",
|
286
317
|
"class",
|
287
318
|
"namespaced_ident",
|
288
319
|
"namespace",
|
289
320
|
"attrib_name",
|
290
321
|
"attrib_val_0or1",
|
291
322
|
"expr",
|
292
|
-
"
|
323
|
+
"nth",
|
293
324
|
"attribute_id",
|
325
|
+
"negation",
|
294
326
|
"eql_incl_dash",
|
295
327
|
"negation_arg" ]
|
296
328
|
|
@@ -302,406 +334,401 @@ Racc_debug_parser = false
|
|
302
334
|
|
303
335
|
def _reduce_1(val, _values, result)
|
304
336
|
result = [val.first, val.last].flatten
|
305
|
-
|
337
|
+
|
306
338
|
result
|
307
339
|
end
|
308
340
|
|
309
341
|
def _reduce_2(val, _values, result)
|
310
|
-
result = val.flatten
|
342
|
+
result = val.flatten
|
311
343
|
result
|
312
344
|
end
|
313
345
|
|
314
346
|
def _reduce_3(val, _values, result)
|
315
|
-
result = val.flatten
|
347
|
+
result = [val.last].flatten
|
316
348
|
result
|
317
349
|
end
|
318
350
|
|
319
351
|
def _reduce_4(val, _values, result)
|
320
|
-
result = :DIRECT_ADJACENT_SELECTOR
|
352
|
+
result = :DIRECT_ADJACENT_SELECTOR
|
321
353
|
result
|
322
354
|
end
|
323
355
|
|
324
356
|
def _reduce_5(val, _values, result)
|
325
|
-
result = :CHILD_SELECTOR
|
357
|
+
result = :CHILD_SELECTOR
|
326
358
|
result
|
327
359
|
end
|
328
360
|
|
329
361
|
def _reduce_6(val, _values, result)
|
330
|
-
result = :FOLLOWING_SELECTOR
|
362
|
+
result = :FOLLOWING_SELECTOR
|
331
363
|
result
|
332
364
|
end
|
333
365
|
|
334
366
|
def _reduce_7(val, _values, result)
|
335
|
-
result = :DESCENDANT_SELECTOR
|
367
|
+
result = :DESCENDANT_SELECTOR
|
336
368
|
result
|
337
369
|
end
|
338
370
|
|
339
371
|
def _reduce_8(val, _values, result)
|
340
|
-
result = :
|
372
|
+
result = :CHILD_SELECTOR
|
341
373
|
result
|
342
374
|
end
|
343
375
|
|
344
376
|
def _reduce_9(val, _values, result)
|
345
|
-
result = :CHILD_SELECTOR
|
346
|
-
result
|
347
|
-
end
|
348
|
-
|
349
|
-
def _reduce_10(val, _values, result)
|
350
377
|
result = if val[1].nil?
|
351
378
|
val.first
|
352
379
|
else
|
353
380
|
Node.new(:CONDITIONAL_SELECTOR, [val.first, val[1]])
|
354
381
|
end
|
355
|
-
|
356
|
-
result
|
357
|
-
end
|
358
|
-
|
359
|
-
def _reduce_11(val, _values, result)
|
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
382
|
|
370
|
-
def _reduce_12(val, _values, result)
|
371
|
-
result = Node.new(:CONDITIONAL_SELECTOR, val)
|
372
|
-
|
373
383
|
result
|
374
384
|
end
|
375
385
|
|
376
|
-
# reduce
|
386
|
+
# reduce 10 omitted
|
377
387
|
|
378
|
-
def
|
388
|
+
def _reduce_11(val, _values, result)
|
379
389
|
result = Node.new(:CONDITIONAL_SELECTOR, val)
|
380
|
-
|
390
|
+
|
381
391
|
result
|
382
392
|
end
|
383
393
|
|
384
|
-
def
|
394
|
+
def _reduce_12(val, _values, result)
|
385
395
|
result = Node.new(:CONDITIONAL_SELECTOR, val)
|
386
|
-
|
387
|
-
result
|
388
|
-
end
|
389
396
|
|
390
|
-
def _reduce_16(val, _values, result)
|
391
|
-
result = Node.new(:CONDITIONAL_SELECTOR,
|
392
|
-
[
|
393
|
-
Node.new(:ELEMENT_NAME, ['*']),
|
394
|
-
Node.new(:COMBINATOR, val)
|
395
|
-
]
|
396
|
-
)
|
397
|
-
|
398
397
|
result
|
399
398
|
end
|
400
399
|
|
401
|
-
def
|
400
|
+
def _reduce_13(val, _values, result)
|
402
401
|
result = Node.new(:CONDITIONAL_SELECTOR,
|
403
402
|
[Node.new(:ELEMENT_NAME, ['*']), val.first]
|
404
403
|
)
|
405
|
-
|
404
|
+
|
406
405
|
result
|
407
406
|
end
|
408
407
|
|
409
|
-
def
|
408
|
+
def _reduce_14(val, _values, result)
|
410
409
|
result = Node.new(val.first, [nil, val.last])
|
411
|
-
|
410
|
+
|
412
411
|
result
|
413
412
|
end
|
414
413
|
|
415
|
-
def
|
414
|
+
def _reduce_15(val, _values, result)
|
416
415
|
result = Node.new(val[1], [val.first, val.last])
|
417
|
-
|
416
|
+
|
418
417
|
result
|
419
418
|
end
|
420
419
|
|
421
|
-
|
420
|
+
def _reduce_16(val, _values, result)
|
421
|
+
result = Node.new(:DESCENDANT_SELECTOR, [val.first, val.last])
|
422
422
|
|
423
|
-
def _reduce_21(val, _values, result)
|
424
|
-
result = Node.new(:CLASS_CONDITION, [val[1]])
|
425
423
|
result
|
426
424
|
end
|
427
425
|
|
428
|
-
# reduce
|
426
|
+
# reduce 17 omitted
|
429
427
|
|
430
|
-
def
|
431
|
-
result = Node.new(:
|
428
|
+
def _reduce_18(val, _values, result)
|
429
|
+
result = Node.new(:CLASS_CONDITION, [unescape_css_identifier(val[1])])
|
430
|
+
result
|
431
|
+
end
|
432
|
+
|
433
|
+
# reduce 19 omitted
|
434
|
+
|
435
|
+
def _reduce_20(val, _values, result)
|
436
|
+
result = Node.new(:ELEMENT_NAME, val)
|
432
437
|
result
|
433
438
|
end
|
434
439
|
|
435
|
-
def
|
440
|
+
def _reduce_21(val, _values, result)
|
436
441
|
result = Node.new(:ELEMENT_NAME,
|
437
442
|
[[val.first, val.last].compact.join(':')]
|
438
443
|
)
|
439
|
-
|
444
|
+
|
440
445
|
result
|
441
446
|
end
|
442
447
|
|
443
|
-
def
|
448
|
+
def _reduce_22(val, _values, result)
|
444
449
|
name = @namespaces.key?('xmlns') ? "xmlns:#{val.first}" : val.first
|
445
450
|
result = Node.new(:ELEMENT_NAME, [name])
|
446
|
-
|
451
|
+
|
447
452
|
result
|
448
453
|
end
|
449
454
|
|
450
|
-
def
|
451
|
-
result = val[0]
|
455
|
+
def _reduce_23(val, _values, result)
|
456
|
+
result = val[0]
|
452
457
|
result
|
453
458
|
end
|
454
459
|
|
455
|
-
# reduce
|
460
|
+
# reduce 24 omitted
|
456
461
|
|
457
|
-
def
|
462
|
+
def _reduce_25(val, _values, result)
|
458
463
|
result = Node.new(:ATTRIBUTE_CONDITION,
|
459
464
|
[val[1]] + (val[2] || [])
|
460
465
|
)
|
461
|
-
|
466
|
+
|
462
467
|
result
|
463
468
|
end
|
464
469
|
|
465
|
-
def
|
470
|
+
def _reduce_26(val, _values, result)
|
466
471
|
result = Node.new(:ATTRIBUTE_CONDITION,
|
467
472
|
[val[1]] + (val[2] || [])
|
468
473
|
)
|
469
|
-
|
474
|
+
|
470
475
|
result
|
471
476
|
end
|
472
477
|
|
473
|
-
def
|
474
|
-
#
|
478
|
+
def _reduce_27(val, _values, result)
|
479
|
+
# non-standard, from hpricot
|
475
480
|
result = Node.new(:PSEUDO_CLASS,
|
476
481
|
[Node.new(:FUNCTION, ['nth-child(', val[1]])]
|
477
482
|
)
|
478
|
-
|
483
|
+
|
479
484
|
result
|
480
485
|
end
|
481
486
|
|
482
|
-
def
|
487
|
+
def _reduce_28(val, _values, result)
|
483
488
|
result = Node.new(:ELEMENT_NAME,
|
484
489
|
[[val.first, val.last].compact.join(':')]
|
485
490
|
)
|
486
|
-
|
491
|
+
|
487
492
|
result
|
488
493
|
end
|
489
494
|
|
490
|
-
def
|
495
|
+
def _reduce_29(val, _values, result)
|
491
496
|
# Default namespace is not applied to attributes.
|
492
497
|
# So we don't add prefix "xmlns:" as in namespaced_ident.
|
493
498
|
result = Node.new(:ELEMENT_NAME, [val.first])
|
494
|
-
|
499
|
+
|
495
500
|
result
|
496
501
|
end
|
497
502
|
|
498
|
-
def
|
503
|
+
def _reduce_30(val, _values, result)
|
499
504
|
result = Node.new(:FUNCTION, [val.first.strip])
|
500
|
-
|
505
|
+
|
501
506
|
result
|
502
507
|
end
|
503
508
|
|
504
|
-
def
|
509
|
+
def _reduce_31(val, _values, result)
|
505
510
|
result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
|
506
|
-
|
511
|
+
|
507
512
|
result
|
508
513
|
end
|
509
514
|
|
510
|
-
def
|
515
|
+
def _reduce_32(val, _values, result)
|
511
516
|
result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
|
512
|
-
|
517
|
+
|
513
518
|
result
|
514
519
|
end
|
515
520
|
|
516
|
-
def
|
521
|
+
def _reduce_33(val, _values, result)
|
517
522
|
result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
|
518
|
-
|
523
|
+
|
519
524
|
result
|
520
525
|
end
|
521
526
|
|
522
|
-
def
|
527
|
+
def _reduce_34(val, _values, result)
|
523
528
|
result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
|
524
|
-
|
529
|
+
|
525
530
|
result
|
526
531
|
end
|
527
532
|
|
528
|
-
def
|
529
|
-
result = [val.first, val.last]
|
533
|
+
def _reduce_35(val, _values, result)
|
534
|
+
result = [val.first, val.last]
|
530
535
|
result
|
531
536
|
end
|
532
537
|
|
533
|
-
def
|
534
|
-
result = [val.first, val.last]
|
538
|
+
def _reduce_36(val, _values, result)
|
539
|
+
result = [val.first, val.last]
|
535
540
|
result
|
536
541
|
end
|
537
542
|
|
538
|
-
def
|
539
|
-
result = [val.first, val.last]
|
543
|
+
def _reduce_37(val, _values, result)
|
544
|
+
result = [val.first, val.last]
|
540
545
|
result
|
541
546
|
end
|
542
547
|
|
543
|
-
# reduce
|
548
|
+
# reduce 38 omitted
|
544
549
|
|
545
|
-
# reduce
|
550
|
+
# reduce 39 omitted
|
546
551
|
|
547
|
-
def
|
548
|
-
|
549
|
-
|
550
|
-
result = Node.new(:
|
551
|
-
|
552
|
-
|
553
|
-
|
552
|
+
def _reduce_40(val, _values, result)
|
553
|
+
case val[0]
|
554
|
+
when 'even'
|
555
|
+
result = Node.new(:NTH, ['2','n','+','0'])
|
556
|
+
when 'odd'
|
557
|
+
result = Node.new(:NTH, ['2','n','+','1'])
|
558
|
+
when 'n'
|
559
|
+
result = Node.new(:NTH, ['1','n','+','0'])
|
554
560
|
else
|
555
|
-
#
|
561
|
+
# non-standard to support custom functions:
|
556
562
|
# assert_xpath("//a[foo(., @href)]", @parser.parse('a:foo(@href)'))
|
557
563
|
# assert_xpath("//a[foo(., @a, b)]", @parser.parse('a:foo(@a, b)'))
|
558
564
|
# assert_xpath("//a[foo(., a, 10)]", @parser.parse('a:foo(a, 10)'))
|
559
565
|
result = val
|
560
566
|
end
|
561
|
-
|
567
|
+
|
562
568
|
result
|
563
569
|
end
|
564
570
|
|
565
|
-
def
|
571
|
+
def _reduce_41(val, _values, result)
|
566
572
|
if val[1] == 'n'
|
567
|
-
result = Node.new(:
|
573
|
+
result = Node.new(:NTH, val)
|
568
574
|
else
|
569
575
|
raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
|
570
576
|
end
|
571
|
-
|
577
|
+
|
572
578
|
result
|
573
579
|
end
|
574
580
|
|
575
|
-
def
|
581
|
+
def _reduce_42(val, _values, result)
|
576
582
|
# n+3, -n+3
|
577
583
|
if val[0] == 'n'
|
578
584
|
val.unshift("1")
|
579
|
-
result = Node.new(:
|
585
|
+
result = Node.new(:NTH, val)
|
580
586
|
elsif val[0] == '-n'
|
581
587
|
val[0] = 'n'
|
582
588
|
val.unshift("-1")
|
583
|
-
result = Node.new(:
|
589
|
+
result = Node.new(:NTH, val)
|
584
590
|
else
|
585
591
|
raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
|
586
592
|
end
|
587
|
-
|
593
|
+
|
588
594
|
result
|
589
595
|
end
|
590
596
|
|
591
|
-
def
|
592
|
-
|
597
|
+
def _reduce_43(val, _values, result)
|
598
|
+
# 5n, -5n, 10n-1
|
599
|
+
n = val[1]
|
600
|
+
if n[0, 2] == 'n-'
|
601
|
+
val[1] = 'n'
|
602
|
+
val << "-"
|
603
|
+
# b is contained in n as n is the string "n-b"
|
604
|
+
val << n[2, n.size]
|
605
|
+
result = Node.new(:NTH, val)
|
606
|
+
elsif n == 'n'
|
593
607
|
val << "+"
|
594
608
|
val << "0"
|
595
|
-
result = Node.new(:
|
609
|
+
result = Node.new(:NTH, val)
|
596
610
|
else
|
597
611
|
raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
|
598
612
|
end
|
599
|
-
|
613
|
+
|
600
614
|
result
|
601
615
|
end
|
602
616
|
|
603
|
-
def
|
617
|
+
def _reduce_44(val, _values, result)
|
604
618
|
result = Node.new(:PSEUDO_CLASS, [val[1]])
|
605
|
-
|
619
|
+
|
606
620
|
result
|
607
621
|
end
|
608
622
|
|
609
|
-
def
|
610
|
-
result = Node.new(:PSEUDO_CLASS, [val[1]])
|
623
|
+
def _reduce_45(val, _values, result)
|
624
|
+
result = Node.new(:PSEUDO_CLASS, [val[1]])
|
611
625
|
result
|
612
626
|
end
|
613
627
|
|
614
|
-
# reduce
|
628
|
+
# reduce 46 omitted
|
615
629
|
|
616
|
-
# reduce
|
630
|
+
# reduce 47 omitted
|
617
631
|
|
618
|
-
def
|
632
|
+
def _reduce_48(val, _values, result)
|
619
633
|
result = Node.new(:COMBINATOR, val)
|
620
|
-
|
634
|
+
|
621
635
|
result
|
622
636
|
end
|
623
637
|
|
624
|
-
def
|
638
|
+
def _reduce_49(val, _values, result)
|
639
|
+
result = Node.new(:COMBINATOR, val)
|
640
|
+
|
641
|
+
result
|
642
|
+
end
|
643
|
+
|
644
|
+
def _reduce_50(val, _values, result)
|
625
645
|
result = Node.new(:COMBINATOR, val)
|
626
|
-
|
646
|
+
|
627
647
|
result
|
628
648
|
end
|
629
649
|
|
630
|
-
def
|
650
|
+
def _reduce_51(val, _values, result)
|
631
651
|
result = Node.new(:COMBINATOR, val)
|
632
|
-
|
652
|
+
|
633
653
|
result
|
634
654
|
end
|
635
655
|
|
636
|
-
def
|
656
|
+
def _reduce_52(val, _values, result)
|
637
657
|
result = Node.new(:COMBINATOR, val)
|
638
|
-
|
658
|
+
|
639
659
|
result
|
640
660
|
end
|
641
661
|
|
662
|
+
# reduce 53 omitted
|
663
|
+
|
664
|
+
# reduce 54 omitted
|
665
|
+
|
642
666
|
# reduce 55 omitted
|
643
667
|
|
644
668
|
# reduce 56 omitted
|
645
669
|
|
646
670
|
# reduce 57 omitted
|
647
671
|
|
648
|
-
|
672
|
+
def _reduce_58(val, _values, result)
|
673
|
+
result = Node.new(:ID, [unescape_css_identifier(val.first)])
|
674
|
+
result
|
675
|
+
end
|
649
676
|
|
650
677
|
def _reduce_59(val, _values, result)
|
651
|
-
result =
|
678
|
+
result = [val.first, unescape_css_identifier(val[1])]
|
652
679
|
result
|
653
680
|
end
|
654
681
|
|
655
682
|
def _reduce_60(val, _values, result)
|
656
|
-
result = [val.first, val[1]]
|
683
|
+
result = [val.first, unescape_css_string(val[1])]
|
657
684
|
result
|
658
685
|
end
|
659
686
|
|
660
687
|
def _reduce_61(val, _values, result)
|
661
|
-
result = [val.first, val[1]]
|
688
|
+
result = [val.first, val[1]]
|
662
689
|
result
|
663
690
|
end
|
664
691
|
|
665
692
|
# reduce 62 omitted
|
666
693
|
|
667
694
|
def _reduce_63(val, _values, result)
|
668
|
-
result = :equal
|
695
|
+
result = :equal
|
669
696
|
result
|
670
697
|
end
|
671
698
|
|
672
699
|
def _reduce_64(val, _values, result)
|
673
|
-
result = :prefix_match
|
700
|
+
result = :prefix_match
|
674
701
|
result
|
675
702
|
end
|
676
703
|
|
677
704
|
def _reduce_65(val, _values, result)
|
678
|
-
result = :suffix_match
|
705
|
+
result = :suffix_match
|
679
706
|
result
|
680
707
|
end
|
681
708
|
|
682
709
|
def _reduce_66(val, _values, result)
|
683
|
-
result = :substring_match
|
710
|
+
result = :substring_match
|
684
711
|
result
|
685
712
|
end
|
686
713
|
|
687
714
|
def _reduce_67(val, _values, result)
|
688
|
-
result = :not_equal
|
715
|
+
result = :not_equal
|
689
716
|
result
|
690
717
|
end
|
691
718
|
|
692
719
|
def _reduce_68(val, _values, result)
|
693
|
-
result = :includes
|
720
|
+
result = :includes
|
694
721
|
result
|
695
722
|
end
|
696
723
|
|
697
724
|
def _reduce_69(val, _values, result)
|
698
|
-
result = :dash_match
|
725
|
+
result = :dash_match
|
699
726
|
result
|
700
727
|
end
|
701
728
|
|
702
729
|
def _reduce_70(val, _values, result)
|
703
730
|
result = Node.new(:NOT, [val[1]])
|
704
|
-
|
731
|
+
|
705
732
|
result
|
706
733
|
end
|
707
734
|
|
@@ -711,10 +738,14 @@ end
|
|
711
738
|
|
712
739
|
# reduce 73 omitted
|
713
740
|
|
741
|
+
# reduce 74 omitted
|
742
|
+
|
743
|
+
# reduce 75 omitted
|
744
|
+
|
714
745
|
def _reduce_none(val, _values, result)
|
715
746
|
val[0]
|
716
747
|
end
|
717
748
|
|
718
749
|
end # class Parser
|
719
|
-
|
720
|
-
|
750
|
+
end # module CSS
|
751
|
+
end # module Nokogiri
|