nokogiri 1.12.5 → 1.13.9

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.

Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/README.md +9 -7
  4. data/bin/nokogiri +63 -50
  5. data/dependencies.yml +13 -64
  6. data/ext/nokogiri/extconf.rb +81 -46
  7. data/ext/nokogiri/gumbo.c +1 -1
  8. data/ext/nokogiri/html4_sax_parser_context.c +2 -3
  9. data/ext/nokogiri/nokogiri.h +9 -0
  10. data/ext/nokogiri/xml_attr.c +2 -2
  11. data/ext/nokogiri/xml_attribute_decl.c +3 -3
  12. data/ext/nokogiri/xml_cdata.c +1 -1
  13. data/ext/nokogiri/xml_document.c +41 -37
  14. data/ext/nokogiri/xml_document_fragment.c +0 -2
  15. data/ext/nokogiri/xml_dtd.c +10 -10
  16. data/ext/nokogiri/xml_element_decl.c +3 -3
  17. data/ext/nokogiri/xml_encoding_handler.c +25 -11
  18. data/ext/nokogiri/xml_entity_decl.c +5 -5
  19. data/ext/nokogiri/xml_namespace.c +41 -5
  20. data/ext/nokogiri/xml_node.c +708 -382
  21. data/ext/nokogiri/xml_node_set.c +4 -4
  22. data/ext/nokogiri/xml_reader.c +88 -11
  23. data/ext/nokogiri/xml_sax_parser_context.c +10 -3
  24. data/ext/nokogiri/xml_schema.c +3 -3
  25. data/ext/nokogiri/xml_text.c +1 -1
  26. data/ext/nokogiri/xml_xpath_context.c +76 -50
  27. data/ext/nokogiri/xslt_stylesheet.c +107 -9
  28. data/gumbo-parser/src/parser.c +0 -11
  29. data/lib/nokogiri/class_resolver.rb +67 -0
  30. data/lib/nokogiri/css/node.rb +9 -8
  31. data/lib/nokogiri/css/parser.rb +360 -341
  32. data/lib/nokogiri/css/parser.y +249 -244
  33. data/lib/nokogiri/css/parser_extras.rb +22 -20
  34. data/lib/nokogiri/css/syntax_error.rb +1 -0
  35. data/lib/nokogiri/css/tokenizer.rb +4 -3
  36. data/lib/nokogiri/css/tokenizer.rex +3 -2
  37. data/lib/nokogiri/css/xpath_visitor.rb +179 -82
  38. data/lib/nokogiri/css.rb +38 -6
  39. data/lib/nokogiri/decorators/slop.rb +8 -7
  40. data/lib/nokogiri/extension.rb +1 -1
  41. data/lib/nokogiri/gumbo.rb +1 -0
  42. data/lib/nokogiri/html.rb +16 -10
  43. data/lib/nokogiri/html4/builder.rb +1 -0
  44. data/lib/nokogiri/html4/document.rb +88 -77
  45. data/lib/nokogiri/html4/document_fragment.rb +11 -7
  46. data/lib/nokogiri/html4/element_description.rb +1 -0
  47. data/lib/nokogiri/html4/element_description_defaults.rb +426 -520
  48. data/lib/nokogiri/html4/entity_lookup.rb +2 -1
  49. data/lib/nokogiri/html4/sax/parser.rb +5 -2
  50. data/lib/nokogiri/html4/sax/parser_context.rb +1 -0
  51. data/lib/nokogiri/html4/sax/push_parser.rb +7 -7
  52. data/lib/nokogiri/html4.rb +11 -5
  53. data/lib/nokogiri/html5/document.rb +27 -10
  54. data/lib/nokogiri/html5/document_fragment.rb +5 -2
  55. data/lib/nokogiri/html5/node.rb +10 -3
  56. data/lib/nokogiri/html5.rb +69 -64
  57. data/lib/nokogiri/jruby/dependencies.rb +10 -9
  58. data/lib/nokogiri/syntax_error.rb +1 -0
  59. data/lib/nokogiri/version/constant.rb +2 -1
  60. data/lib/nokogiri/version/info.rb +20 -13
  61. data/lib/nokogiri/version.rb +1 -0
  62. data/lib/nokogiri/xml/attr.rb +5 -3
  63. data/lib/nokogiri/xml/attribute_decl.rb +2 -1
  64. data/lib/nokogiri/xml/builder.rb +34 -32
  65. data/lib/nokogiri/xml/cdata.rb +2 -1
  66. data/lib/nokogiri/xml/character_data.rb +1 -0
  67. data/lib/nokogiri/xml/document.rb +144 -103
  68. data/lib/nokogiri/xml/document_fragment.rb +41 -38
  69. data/lib/nokogiri/xml/dtd.rb +3 -2
  70. data/lib/nokogiri/xml/element_content.rb +1 -0
  71. data/lib/nokogiri/xml/element_decl.rb +2 -1
  72. data/lib/nokogiri/xml/entity_decl.rb +3 -2
  73. data/lib/nokogiri/xml/entity_reference.rb +1 -0
  74. data/lib/nokogiri/xml/namespace.rb +2 -0
  75. data/lib/nokogiri/xml/node/save_options.rb +8 -4
  76. data/lib/nokogiri/xml/node.rb +521 -351
  77. data/lib/nokogiri/xml/node_set.rb +50 -54
  78. data/lib/nokogiri/xml/notation.rb +12 -0
  79. data/lib/nokogiri/xml/parse_options.rb +12 -7
  80. data/lib/nokogiri/xml/pp/character_data.rb +8 -6
  81. data/lib/nokogiri/xml/pp/node.rb +24 -26
  82. data/lib/nokogiri/xml/pp.rb +1 -0
  83. data/lib/nokogiri/xml/processing_instruction.rb +2 -1
  84. data/lib/nokogiri/xml/reader.rb +20 -24
  85. data/lib/nokogiri/xml/relax_ng.rb +1 -0
  86. data/lib/nokogiri/xml/sax/document.rb +20 -19
  87. data/lib/nokogiri/xml/sax/parser.rb +37 -34
  88. data/lib/nokogiri/xml/sax/parser_context.rb +7 -3
  89. data/lib/nokogiri/xml/sax/push_parser.rb +5 -5
  90. data/lib/nokogiri/xml/sax.rb +1 -0
  91. data/lib/nokogiri/xml/schema.rb +7 -6
  92. data/lib/nokogiri/xml/searchable.rb +93 -62
  93. data/lib/nokogiri/xml/syntax_error.rb +5 -4
  94. data/lib/nokogiri/xml/text.rb +1 -0
  95. data/lib/nokogiri/xml/xpath/syntax_error.rb +2 -1
  96. data/lib/nokogiri/xml/xpath.rb +12 -0
  97. data/lib/nokogiri/xml/xpath_context.rb +2 -3
  98. data/lib/nokogiri/xml.rb +4 -3
  99. data/lib/nokogiri/xslt/stylesheet.rb +1 -0
  100. data/lib/nokogiri/xslt.rb +21 -13
  101. data/lib/nokogiri.rb +19 -16
  102. data/lib/xsd/xmlparser/nokogiri.rb +25 -24
  103. data/patches/libxml2/0009-allow-wildcard-namespaces.patch +77 -0
  104. data/patches/libxslt/0001-update-automake-files-for-arm64.patch +2445 -1919
  105. data/ports/archives/libxml2-2.10.3.tar.xz +0 -0
  106. data/ports/archives/libxslt-1.1.37.tar.xz +0 -0
  107. metadata +103 -34
  108. data/patches/libxml2/0004-use-glibc-strlen.patch +0 -53
  109. data/patches/libxml2/0006-update-automake-files-for-arm64.patch +0 -2511
  110. data/patches/libxml2/0007-Fix-XPath-recursion-limit.patch +0 -31
  111. data/patches/libxslt/0002-Fix-xml2-config-check-in-configure-script.patch +0 -19
  112. data/ports/archives/libxml2-2.9.12.tar.gz +0 -0
  113. data/ports/archives/libxslt-1.1.34.tar.gz +0 -0
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
3
  # DO NOT MODIFY!!!!
4
- # This file is automatically generated by Racc 1.5.2
4
+ # This file is automatically generated by Racc 1.6.0
5
5
  # from Racc grammar file "".
6
6
  #
7
7
 
@@ -10,6 +10,14 @@ require 'racc/parser.rb'
10
10
 
11
11
  require_relative "parser_extras"
12
12
 
13
+ module Nokogiri
14
+ module CSS
15
+ # :nodoc: all
16
+ class Parser < Racc::Parser
17
+ end
18
+ end
19
+ end
20
+
13
21
  module Nokogiri
14
22
  module CSS
15
23
  class Parser < Racc::Parser
@@ -31,190 +39,204 @@ end
31
39
  ##### State transition tables begin ###
32
40
 
33
41
  racc_action_table = [
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 ]
42
+ 27, 11, 38, 99, 36, 12, 40, 26, 48, 25,
43
+ 49, 27, 100, 12, 30, 36, 105, 99, -26, 28,
44
+ 25, -26, 26, 27, 29, 14, 21, 23, 80, 30,
45
+ 28, 36, 72, 26, -26, 29, 14, 21, 23, 27,
46
+ 30, 91, 56, 36, 97, 96, 43, 29, 25, 26,
47
+ 27, 92, 94, 21, 36, 95, 30, 98, 28, 25,
48
+ 101, 26, 102, 29, 14, 21, 23, 96, 30, 28,
49
+ 36, 36, 26, 103, 29, 14, 21, 23, 27, 30,
50
+ 108, 107, 36, 109, 106, 43, 43, 25, 26, 26,
51
+ 27, 110, 21, 21, 111, 30, 30, 28, 99, 50,
52
+ 26, 53, 29, 14, 21, 23, 36, 30, 36, 56,
53
+ 61, 64, 113, 66, 29, 14, 116, 36, 118, 36,
54
+ nil, 43, nil, 43, 26, nil, 26, 14, 21, 23,
55
+ 21, 30, 43, 30, 43, 26, nil, 26, 36, 21,
56
+ 36, 21, 30, 25, 30, nil, nil, nil, nil, nil,
57
+ nil, 61, 62, 43, 60, 43, 26, nil, 26, nil,
58
+ 21, 23, 21, 30, 57, 30, 88, 89, 14, nil,
59
+ nil, 88, 89, nil, nil, nil, nil, 84, 85, 86,
60
+ nil, 87, 84, 85, 86, 83, 87, nil, 61, 93,
61
+ 83, 66, 61, 93, nil, 66, 61, 93, nil, 66,
62
+ 61, 93, nil, 66, nil, 14, nil, 61, 93, 14,
63
+ 66, nil, nil, 14, nil, nil, nil, 14, 4, 5,
64
+ 10, nil, nil, nil, 14, 4, 5, 47, 6, nil,
65
+ 8, 7, 4, 5, 10, 6, nil, 8, 7, nil,
66
+ nil, nil, 6, nil, 8, 7 ]
56
67
 
57
68
  racc_action_check = [
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 ]
69
+ 3, 1, 11, 64, 3, 70, 14, 17, 21, 3,
70
+ 24, 9, 62, 1, 17, 9, 70, 62, 25, 3,
71
+ 9, 64, 3, 30, 3, 3, 3, 3, 49, 3,
72
+ 9, 16, 30, 9, 50, 9, 9, 9, 9, 12,
73
+ 9, 53, 30, 12, 60, 60, 16, 30, 12, 16,
74
+ 46, 54, 58, 16, 46, 59, 16, 61, 12, 46,
75
+ 63, 12, 65, 12, 12, 12, 12, 66, 12, 46,
76
+ 31, 32, 46, 67, 46, 46, 46, 46, 47, 46,
77
+ 82, 82, 47, 82, 81, 31, 32, 47, 31, 32,
78
+ 26, 90, 31, 32, 92, 31, 32, 47, 93, 26,
79
+ 47, 26, 47, 47, 47, 47, 28, 47, 33, 26,
80
+ 28, 28, 97, 28, 26, 26, 100, 34, 113, 35,
81
+ nil, 28, nil, 33, 28, nil, 33, 28, 28, 28,
82
+ 33, 28, 34, 33, 35, 34, nil, 35, 43, 34,
83
+ 68, 35, 34, 43, 35, nil, nil, nil, nil, nil,
84
+ nil, 27, 27, 43, 27, 68, 43, nil, 68, nil,
85
+ 43, 43, 68, 43, 27, 68, 51, 51, 27, nil,
86
+ nil, 52, 52, nil, nil, nil, nil, 51, 51, 51,
87
+ nil, 51, 52, 52, 52, 51, 52, nil, 56, 56,
88
+ 52, 56, 96, 96, nil, 96, 98, 98, nil, 98,
89
+ 99, 99, nil, 99, nil, 56, nil, 101, 101, 96,
90
+ 101, nil, nil, 98, nil, nil, nil, 99, 0, 0,
91
+ 0, nil, nil, nil, 101, 20, 20, 20, 0, nil,
92
+ 0, 0, 29, 29, 29, 20, nil, 20, 20, nil,
93
+ nil, nil, 29, nil, 29, 29 ]
80
94
 
81
95
  racc_action_pointer = [
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 ]
96
+ 211, 1, nil, -2, nil, nil, nil, nil, nil, 9,
97
+ nil, 2, 37, nil, -5, nil, 25, -17, nil, nil,
98
+ 218, -3, nil, nil, -20, -12, 88, 141, 100, 225,
99
+ 21, 64, 65, 102, 111, 113, nil, nil, nil, nil,
100
+ nil, nil, nil, 132, nil, nil, 48, 76, nil, 17,
101
+ 4, 163, 168, 16, 21, nil, 178, nil, 29, 32,
102
+ 33, 45, 5, 48, -9, 39, 55, 50, 134, nil,
103
+ -7, nil, nil, nil, nil, nil, nil, nil, nil, nil,
104
+ nil, 59, 70, nil, nil, nil, nil, nil, nil, nil,
105
+ 66, nil, 83, 86, nil, nil, 182, 105, 186, 190,
106
+ 103, 197, nil, nil, nil, nil, nil, nil, nil, nil,
107
+ nil, nil, nil, 105, nil, nil, nil, nil, nil ]
94
108
 
95
109
  racc_action_default = [
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 ]
110
+ -81, -82, -2, -27, -4, -5, -6, -7, -8, -27,
111
+ -80, -82, -27, -3, -82, -10, -53, -12, -15, -16,
112
+ -20, -82, -22, -23, -82, -25, -27, -82, -27, -81,
113
+ -82, -59, -60, -61, -62, -63, -64, -17, 119, -1,
114
+ -9, -11, -52, -27, -13, -14, -27, -27, -21, -82,
115
+ -32, -68, -68, -82, -82, -33, -82, -34, -82, -82,
116
+ -43, -44, -45, -46, -25, -82, -43, -82, -77, -79,
117
+ -82, -50, -51, -54, -55, -56, -57, -58, -18, -19,
118
+ -24, -82, -82, -69, -70, -71, -72, -73, -74, -75,
119
+ -82, -30, -82, -45, -35, -36, -82, -49, -82, -82,
120
+ -82, -82, -37, -76, -78, -38, -28, -65, -66, -67,
121
+ -29, -31, -39, -82, -40, -41, -48, -42, -47 ]
108
122
 
109
123
  racc_goto_table = [
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,
113
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
114
- nil, 72, 73, nil, nil, nil, nil, nil, nil, 97,
115
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
116
- nil, nil, nil, nil, nil, nil, 105, nil, 107, 108 ]
124
+ 58, 42, 13, 1, 46, 52, 19, 68, 37, 71,
125
+ 41, 39, 19, 69, 44, 19, 73, 74, 75, 76,
126
+ 77, 45, 68, 81, 90, 54, 51, 59, 69, 55,
127
+ nil, nil, 70, nil, nil, nil, nil, nil, nil, nil,
128
+ nil, nil, nil, nil, nil, 78, 79, nil, nil, 19,
129
+ 19, nil, nil, 104, nil, nil, nil, nil, nil, nil,
130
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 112,
131
+ nil, 114, 115, nil, 117 ]
117
132
 
118
133
  racc_goto_check = [
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,
122
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
123
- nil, 2, 2, nil, nil, nil, nil, nil, nil, 12,
124
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
125
- nil, nil, nil, nil, nil, nil, 18, nil, 18, 18 ]
134
+ 20, 14, 2, 1, 5, 11, 7, 9, 2, 11,
135
+ 10, 2, 7, 14, 12, 7, 14, 14, 14, 14,
136
+ 14, 13, 9, 19, 19, 17, 18, 21, 14, 7,
137
+ nil, nil, 1, nil, nil, nil, nil, nil, nil, nil,
138
+ nil, nil, nil, nil, nil, 2, 2, nil, nil, 7,
139
+ 7, nil, nil, 14, nil, nil, nil, nil, nil, nil,
140
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 20,
141
+ nil, 20, 20, nil, 20 ]
126
142
 
127
143
  racc_goto_pointer = [
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 ]
144
+ nil, 3, -1, nil, nil, -16, nil, 3, nil, -21,
145
+ -6, -21, -3, 4, -15, nil, nil, -1, 0, -28,
146
+ -27, 0, nil, nil, nil, nil ]
131
147
 
132
148
  racc_goto_default = [
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 ]
149
+ nil, nil, nil, 2, 3, 9, 15, 63, 20, 16,
150
+ nil, 17, 34, 33, 18, 32, 22, 24, nil, nil,
151
+ 65, nil, 31, 35, 82, 67 ]
136
152
 
137
153
  racc_reduce_table = [
138
154
  0, 0, :racc_error,
139
- 3, 32, :_reduce_1,
140
- 1, 32, :_reduce_2,
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,
148
- 1, 37, :_reduce_none,
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,
162
- 0, 46, :_reduce_none,
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,
176
- 1, 49, :_reduce_none,
177
- 1, 49, :_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,
184
- 1, 39, :_reduce_none,
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,
198
- 2, 48, :_reduce_60,
199
- 2, 48, :_reduce_61,
200
- 0, 48, :_reduce_none,
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
155
+ 3, 33, :_reduce_1,
156
+ 1, 33, :_reduce_2,
157
+ 2, 33, :_reduce_3,
158
+ 1, 37, :_reduce_4,
159
+ 1, 37, :_reduce_5,
160
+ 1, 37, :_reduce_6,
161
+ 1, 37, :_reduce_7,
162
+ 1, 37, :_reduce_8,
163
+ 2, 38, :_reduce_9,
164
+ 1, 39, :_reduce_10,
165
+ 2, 40, :_reduce_11,
166
+ 1, 40, :_reduce_none,
167
+ 2, 40, :_reduce_13,
168
+ 2, 40, :_reduce_14,
169
+ 1, 40, :_reduce_15,
170
+ 1, 40, :_reduce_none,
171
+ 2, 35, :_reduce_17,
172
+ 3, 34, :_reduce_18,
173
+ 3, 34, :_reduce_19,
174
+ 1, 34, :_reduce_none,
175
+ 2, 47, :_reduce_21,
176
+ 1, 41, :_reduce_none,
177
+ 1, 41, :_reduce_23,
178
+ 3, 48, :_reduce_24,
179
+ 1, 48, :_reduce_25,
180
+ 1, 49, :_reduce_26,
181
+ 0, 49, :_reduce_none,
182
+ 4, 45, :_reduce_28,
183
+ 4, 45, :_reduce_29,
184
+ 3, 45, :_reduce_30,
185
+ 3, 50, :_reduce_31,
186
+ 1, 50, :_reduce_32,
187
+ 1, 50, :_reduce_none,
188
+ 2, 43, :_reduce_34,
189
+ 3, 43, :_reduce_35,
190
+ 3, 43, :_reduce_36,
191
+ 3, 43, :_reduce_37,
192
+ 3, 43, :_reduce_38,
193
+ 3, 52, :_reduce_39,
194
+ 3, 52, :_reduce_40,
195
+ 3, 52, :_reduce_41,
196
+ 3, 52, :_reduce_42,
197
+ 1, 52, :_reduce_none,
198
+ 1, 52, :_reduce_none,
199
+ 1, 52, :_reduce_45,
200
+ 1, 52, :_reduce_none,
201
+ 4, 53, :_reduce_47,
202
+ 3, 53, :_reduce_48,
203
+ 2, 53, :_reduce_49,
204
+ 2, 44, :_reduce_50,
205
+ 2, 44, :_reduce_51,
206
+ 1, 42, :_reduce_none,
207
+ 0, 42, :_reduce_none,
208
+ 2, 46, :_reduce_54,
209
+ 2, 46, :_reduce_55,
210
+ 2, 46, :_reduce_56,
211
+ 2, 46, :_reduce_57,
212
+ 2, 46, :_reduce_58,
213
+ 1, 46, :_reduce_none,
214
+ 1, 46, :_reduce_none,
215
+ 1, 46, :_reduce_none,
216
+ 1, 46, :_reduce_none,
217
+ 1, 46, :_reduce_none,
218
+ 1, 54, :_reduce_64,
219
+ 2, 51, :_reduce_65,
220
+ 2, 51, :_reduce_66,
221
+ 2, 51, :_reduce_67,
222
+ 0, 51, :_reduce_none,
223
+ 1, 56, :_reduce_69,
224
+ 1, 56, :_reduce_70,
225
+ 1, 56, :_reduce_71,
226
+ 1, 56, :_reduce_72,
227
+ 1, 56, :_reduce_73,
228
+ 1, 56, :_reduce_74,
229
+ 1, 56, :_reduce_75,
230
+ 3, 55, :_reduce_76,
231
+ 1, 57, :_reduce_none,
232
+ 2, 57, :_reduce_none,
233
+ 1, 57, :_reduce_none,
234
+ 1, 36, :_reduce_none,
235
+ 0, 36, :_reduce_none ]
236
+
237
+ racc_reduce_n = 82
238
+
239
+ racc_shift_n = 119
218
240
 
219
241
  racc_token_table = {
220
242
  false => 0,
@@ -244,12 +266,13 @@ racc_token_table = {
244
266
  :LSQUARE => 24,
245
267
  :RSQUARE => 25,
246
268
  :HAS => 26,
247
- "." => 27,
248
- "*" => 28,
249
- "|" => 29,
250
- ":" => 30 }
269
+ "@" => 27,
270
+ "." => 28,
271
+ "*" => 29,
272
+ "|" => 30,
273
+ ":" => 31 }
251
274
 
252
- racc_nt_base = 31
275
+ racc_nt_base = 32
253
276
 
254
277
  racc_use_result_var = true
255
278
 
@@ -297,6 +320,7 @@ Racc_token_to_s_table = [
297
320
  "LSQUARE",
298
321
  "RSQUARE",
299
322
  "HAS",
323
+ "\"@\"",
300
324
  "\".\"",
301
325
  "\"*\"",
302
326
  "\"|\"",
@@ -307,6 +331,8 @@ Racc_token_to_s_table = [
307
331
  "prefixless_combinator_selector",
308
332
  "optional_S",
309
333
  "combinator",
334
+ "xpath_attribute_name",
335
+ "xpath_attribute",
310
336
  "simple_selector",
311
337
  "element_name",
312
338
  "hcap_0toN",
@@ -333,7 +359,7 @@ Racc_debug_parser = false
333
359
  # reduce 0 omitted
334
360
 
335
361
  def _reduce_1(val, _values, result)
336
- result = [val.first, val.last].flatten
362
+ result = [val[0], val[2]].flatten
337
363
 
338
364
  result
339
365
  end
@@ -344,7 +370,7 @@ def _reduce_2(val, _values, result)
344
370
  end
345
371
 
346
372
  def _reduce_3(val, _values, result)
347
- result = [val.last].flatten
373
+ result = [val[1]].flatten
348
374
  result
349
375
  end
350
376
 
@@ -374,373 +400,366 @@ def _reduce_8(val, _values, result)
374
400
  end
375
401
 
376
402
  def _reduce_9(val, _values, result)
377
- result = if val[1].nil?
378
- val.first
379
- else
380
- Node.new(:CONDITIONAL_SELECTOR, [val.first, val[1]])
381
- end
382
-
403
+ result = val[1]
383
404
  result
384
405
  end
385
406
 
386
- # reduce 10 omitted
387
-
388
- def _reduce_11(val, _values, result)
389
- result = Node.new(:CONDITIONAL_SELECTOR, val)
390
-
407
+ def _reduce_10(val, _values, result)
408
+ result = Node.new(:ATTRIB_NAME, [val[0]])
391
409
  result
392
410
  end
393
411
 
394
- def _reduce_12(val, _values, result)
395
- result = Node.new(:CONDITIONAL_SELECTOR, val)
412
+ def _reduce_11(val, _values, result)
413
+ result = if val[1].nil?
414
+ val[0]
415
+ else
416
+ Node.new(:CONDITIONAL_SELECTOR, [val[0], val[1]])
417
+ end
396
418
 
397
419
  result
398
420
  end
399
421
 
400
- def _reduce_13(val, _values, result)
401
- result = Node.new(:CONDITIONAL_SELECTOR,
402
- [Node.new(:ELEMENT_NAME, ['*']), val.first]
403
- )
422
+ # reduce 12 omitted
404
423
 
424
+ def _reduce_13(val, _values, result)
425
+ result = Node.new(:CONDITIONAL_SELECTOR, val)
405
426
  result
406
427
  end
407
428
 
408
429
  def _reduce_14(val, _values, result)
409
- result = Node.new(val.first, [nil, val.last])
410
-
430
+ result = Node.new(:CONDITIONAL_SELECTOR, val)
411
431
  result
412
432
  end
413
433
 
414
434
  def _reduce_15(val, _values, result)
415
- result = Node.new(val[1], [val.first, val.last])
435
+ result = Node.new(:CONDITIONAL_SELECTOR, [Node.new(:ELEMENT_NAME, ['*']), val[0]])
436
+ result
437
+ end
438
+
439
+ # reduce 16 omitted
416
440
 
441
+ def _reduce_17(val, _values, result)
442
+ result = Node.new(val[0], [nil, val[1]])
417
443
  result
418
444
  end
419
445
 
420
- def _reduce_16(val, _values, result)
421
- result = Node.new(:DESCENDANT_SELECTOR, [val.first, val.last])
446
+ def _reduce_18(val, _values, result)
447
+ result = Node.new(val[1], [val[0], val[2]])
448
+ result
449
+ end
422
450
 
451
+ def _reduce_19(val, _values, result)
452
+ result = Node.new(:DESCENDANT_SELECTOR, [val[0], val[2]])
423
453
  result
424
454
  end
425
455
 
426
- # reduce 17 omitted
456
+ # reduce 20 omitted
427
457
 
428
- def _reduce_18(val, _values, result)
458
+ def _reduce_21(val, _values, result)
429
459
  result = Node.new(:CLASS_CONDITION, [unescape_css_identifier(val[1])])
430
460
  result
431
461
  end
432
462
 
433
- # reduce 19 omitted
463
+ # reduce 22 omitted
434
464
 
435
- def _reduce_20(val, _values, result)
465
+ def _reduce_23(val, _values, result)
436
466
  result = Node.new(:ELEMENT_NAME, val)
437
467
  result
438
468
  end
439
469
 
440
- def _reduce_21(val, _values, result)
441
- result = Node.new(:ELEMENT_NAME,
442
- [[val.first, val.last].compact.join(':')]
443
- )
444
-
470
+ def _reduce_24(val, _values, result)
471
+ result = Node.new(:ELEMENT_NAME, [[val[0], val[2]].compact.join(':')])
445
472
  result
446
473
  end
447
474
 
448
- def _reduce_22(val, _values, result)
449
- name = @namespaces.key?('xmlns') ? "xmlns:#{val.first}" : val.first
450
- result = Node.new(:ELEMENT_NAME, [name])
475
+ def _reduce_25(val, _values, result)
476
+ name = @namespaces.key?('xmlns') ? "xmlns:#{val[0]}" : val[0]
477
+ result = Node.new(:ELEMENT_NAME, [name])
451
478
 
452
479
  result
453
480
  end
454
481
 
455
- def _reduce_23(val, _values, result)
482
+ def _reduce_26(val, _values, result)
456
483
  result = val[0]
457
484
  result
458
485
  end
459
486
 
460
- # reduce 24 omitted
487
+ # reduce 27 omitted
461
488
 
462
- def _reduce_25(val, _values, result)
463
- result = Node.new(:ATTRIBUTE_CONDITION,
464
- [val[1]] + (val[2] || [])
465
- )
489
+ def _reduce_28(val, _values, result)
490
+ result = Node.new(:ATTRIBUTE_CONDITION, [val[1]] + (val[2] || []))
466
491
 
467
492
  result
468
493
  end
469
494
 
470
- def _reduce_26(val, _values, result)
471
- result = Node.new(:ATTRIBUTE_CONDITION,
472
- [val[1]] + (val[2] || [])
473
- )
495
+ def _reduce_29(val, _values, result)
496
+ result = Node.new(:ATTRIBUTE_CONDITION, [val[1]] + (val[2] || []))
474
497
 
475
498
  result
476
499
  end
477
500
 
478
- def _reduce_27(val, _values, result)
479
- # non-standard, from hpricot
480
- result = Node.new(:PSEUDO_CLASS,
481
- [Node.new(:FUNCTION, ['nth-child(', val[1]])]
482
- )
501
+ def _reduce_30(val, _values, result)
502
+ result = Node.new(:PSEUDO_CLASS, [Node.new(:FUNCTION, ['nth-child(', val[1]])])
483
503
 
484
504
  result
485
505
  end
486
506
 
487
- def _reduce_28(val, _values, result)
488
- result = Node.new(:ELEMENT_NAME,
489
- [[val.first, val.last].compact.join(':')]
490
- )
507
+ def _reduce_31(val, _values, result)
508
+ result = Node.new(:ATTRIB_NAME, [[val[0], val[2]].compact.join(':')])
509
+ result
510
+ end
491
511
 
512
+ def _reduce_32(val, _values, result)
513
+ result = Node.new(:ATTRIB_NAME, [val[0]])
492
514
  result
493
515
  end
494
516
 
495
- def _reduce_29(val, _values, result)
496
- # Default namespace is not applied to attributes.
497
- # So we don't add prefix "xmlns:" as in namespaced_ident.
498
- result = Node.new(:ELEMENT_NAME, [val.first])
517
+ # reduce 33 omitted
518
+
519
+ def _reduce_34(val, _values, result)
520
+ result = Node.new(:FUNCTION, [val[0].strip])
499
521
 
500
522
  result
501
523
  end
502
524
 
503
- def _reduce_30(val, _values, result)
504
- result = Node.new(:FUNCTION, [val.first.strip])
525
+ def _reduce_35(val, _values, result)
526
+ result = Node.new(:FUNCTION, [val[0].strip, val[1]].flatten)
505
527
 
506
528
  result
507
529
  end
508
530
 
509
- def _reduce_31(val, _values, result)
510
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
531
+ def _reduce_36(val, _values, result)
532
+ result = Node.new(:FUNCTION, [val[0].strip, val[1]].flatten)
511
533
 
512
534
  result
513
535
  end
514
536
 
515
- def _reduce_32(val, _values, result)
516
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
537
+ def _reduce_37(val, _values, result)
538
+ result = Node.new(:FUNCTION, [val[0].strip, val[1]].flatten)
517
539
 
518
540
  result
519
541
  end
520
542
 
521
- def _reduce_33(val, _values, result)
522
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
543
+ def _reduce_38(val, _values, result)
544
+ result = Node.new(:FUNCTION, [val[0].strip, val[1]].flatten)
523
545
 
524
546
  result
525
547
  end
526
548
 
527
- def _reduce_34(val, _values, result)
528
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
529
-
549
+ def _reduce_39(val, _values, result)
550
+ result = [val[0], val[2]]
530
551
  result
531
552
  end
532
553
 
533
- def _reduce_35(val, _values, result)
534
- result = [val.first, val.last]
554
+ def _reduce_40(val, _values, result)
555
+ result = [val[0], val[2]]
535
556
  result
536
557
  end
537
558
 
538
- def _reduce_36(val, _values, result)
539
- result = [val.first, val.last]
559
+ def _reduce_41(val, _values, result)
560
+ result = [val[0], val[2]]
540
561
  result
541
562
  end
542
563
 
543
- def _reduce_37(val, _values, result)
544
- result = [val.first, val.last]
564
+ def _reduce_42(val, _values, result)
565
+ result = [val[0], val[2]]
545
566
  result
546
567
  end
547
568
 
548
- # reduce 38 omitted
569
+ # reduce 43 omitted
549
570
 
550
- # reduce 39 omitted
571
+ # reduce 44 omitted
551
572
 
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'])
560
- else
561
- # non-standard to support custom functions:
562
- # assert_xpath("//a[foo(., @href)]", @parser.parse('a:foo(@href)'))
563
- # assert_xpath("//a[foo(., @a, b)]", @parser.parse('a:foo(@a, b)'))
564
- # assert_xpath("//a[foo(., a, 10)]", @parser.parse('a:foo(a, 10)'))
565
- result = val
566
- end
573
+ def _reduce_45(val, _values, result)
574
+ case val[0]
575
+ when 'even'
576
+ result = Node.new(:NTH, ['2','n','+','0'])
577
+ when 'odd'
578
+ result = Node.new(:NTH, ['2','n','+','1'])
579
+ when 'n'
580
+ result = Node.new(:NTH, ['1','n','+','0'])
581
+ else
582
+ result = val
583
+ end
567
584
 
568
585
  result
569
586
  end
570
587
 
571
- def _reduce_41(val, _values, result)
572
- if val[1] == 'n'
573
- result = Node.new(:NTH, val)
574
- else
575
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
576
- end
588
+ # reduce 46 omitted
589
+
590
+ def _reduce_47(val, _values, result)
591
+ if val[1] == 'n'
592
+ result = Node.new(:NTH, val)
593
+ else
594
+ raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
595
+ end
577
596
 
578
597
  result
579
598
  end
580
599
 
581
- def _reduce_42(val, _values, result)
600
+ def _reduce_48(val, _values, result)
582
601
  # n+3, -n+3
583
- if val[0] == 'n'
584
- val.unshift("1")
585
- result = Node.new(:NTH, val)
586
- elsif val[0] == '-n'
587
- val[0] = 'n'
588
- val.unshift("-1")
589
- result = Node.new(:NTH, val)
590
- else
591
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
592
- end
602
+ if val[0] == 'n'
603
+ val.unshift("1")
604
+ result = Node.new(:NTH, val)
605
+ elsif val[0] == '-n'
606
+ val[0] = 'n'
607
+ val.unshift("-1")
608
+ result = Node.new(:NTH, val)
609
+ else
610
+ raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
611
+ end
593
612
 
594
613
  result
595
614
  end
596
615
 
597
- def _reduce_43(val, _values, result)
616
+ def _reduce_49(val, _values, result)
598
617
  # 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'
607
- val << "+"
608
- val << "0"
609
- result = Node.new(:NTH, val)
610
- else
611
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
612
- end
618
+ n = val[1]
619
+ if n[0, 2] == 'n-'
620
+ val[1] = 'n'
621
+ val << "-"
622
+ # b is contained in n as n is the string "n-b"
623
+ val << n[2, n.size]
624
+ result = Node.new(:NTH, val)
625
+ elsif n == 'n'
626
+ val << "+"
627
+ val << "0"
628
+ result = Node.new(:NTH, val)
629
+ else
630
+ raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
631
+ end
613
632
 
614
633
  result
615
634
  end
616
635
 
617
- def _reduce_44(val, _values, result)
618
- result = Node.new(:PSEUDO_CLASS, [val[1]])
636
+ def _reduce_50(val, _values, result)
637
+ result = Node.new(:PSEUDO_CLASS, [val[1]])
619
638
 
620
639
  result
621
640
  end
622
641
 
623
- def _reduce_45(val, _values, result)
642
+ def _reduce_51(val, _values, result)
624
643
  result = Node.new(:PSEUDO_CLASS, [val[1]])
625
644
  result
626
645
  end
627
646
 
628
- # reduce 46 omitted
647
+ # reduce 52 omitted
629
648
 
630
- # reduce 47 omitted
649
+ # reduce 53 omitted
631
650
 
632
- def _reduce_48(val, _values, result)
633
- result = Node.new(:COMBINATOR, val)
651
+ def _reduce_54(val, _values, result)
652
+ result = Node.new(:COMBINATOR, val)
634
653
 
635
654
  result
636
655
  end
637
656
 
638
- def _reduce_49(val, _values, result)
639
- result = Node.new(:COMBINATOR, val)
657
+ def _reduce_55(val, _values, result)
658
+ result = Node.new(:COMBINATOR, val)
640
659
 
641
660
  result
642
661
  end
643
662
 
644
- def _reduce_50(val, _values, result)
645
- result = Node.new(:COMBINATOR, val)
663
+ def _reduce_56(val, _values, result)
664
+ result = Node.new(:COMBINATOR, val)
646
665
 
647
666
  result
648
667
  end
649
668
 
650
- def _reduce_51(val, _values, result)
651
- result = Node.new(:COMBINATOR, val)
669
+ def _reduce_57(val, _values, result)
670
+ result = Node.new(:COMBINATOR, val)
652
671
 
653
672
  result
654
673
  end
655
674
 
656
- def _reduce_52(val, _values, result)
657
- result = Node.new(:COMBINATOR, val)
675
+ def _reduce_58(val, _values, result)
676
+ result = Node.new(:COMBINATOR, val)
658
677
 
659
678
  result
660
679
  end
661
680
 
662
- # reduce 53 omitted
681
+ # reduce 59 omitted
663
682
 
664
- # reduce 54 omitted
683
+ # reduce 60 omitted
665
684
 
666
- # reduce 55 omitted
685
+ # reduce 61 omitted
667
686
 
668
- # reduce 56 omitted
687
+ # reduce 62 omitted
669
688
 
670
- # reduce 57 omitted
689
+ # reduce 63 omitted
671
690
 
672
- def _reduce_58(val, _values, result)
673
- result = Node.new(:ID, [unescape_css_identifier(val.first)])
691
+ def _reduce_64(val, _values, result)
692
+ result = Node.new(:ID, [unescape_css_identifier(val[0])])
674
693
  result
675
694
  end
676
695
 
677
- def _reduce_59(val, _values, result)
678
- result = [val.first, unescape_css_identifier(val[1])]
696
+ def _reduce_65(val, _values, result)
697
+ result = [val[0], unescape_css_identifier(val[1])]
679
698
  result
680
699
  end
681
700
 
682
- def _reduce_60(val, _values, result)
683
- result = [val.first, unescape_css_string(val[1])]
701
+ def _reduce_66(val, _values, result)
702
+ result = [val[0], unescape_css_string(val[1])]
684
703
  result
685
704
  end
686
705
 
687
- def _reduce_61(val, _values, result)
688
- result = [val.first, val[1]]
706
+ def _reduce_67(val, _values, result)
707
+ result = [val[0], val[1]]
689
708
  result
690
709
  end
691
710
 
692
- # reduce 62 omitted
711
+ # reduce 68 omitted
693
712
 
694
- def _reduce_63(val, _values, result)
713
+ def _reduce_69(val, _values, result)
695
714
  result = :equal
696
715
  result
697
716
  end
698
717
 
699
- def _reduce_64(val, _values, result)
718
+ def _reduce_70(val, _values, result)
700
719
  result = :prefix_match
701
720
  result
702
721
  end
703
722
 
704
- def _reduce_65(val, _values, result)
723
+ def _reduce_71(val, _values, result)
705
724
  result = :suffix_match
706
725
  result
707
726
  end
708
727
 
709
- def _reduce_66(val, _values, result)
728
+ def _reduce_72(val, _values, result)
710
729
  result = :substring_match
711
730
  result
712
731
  end
713
732
 
714
- def _reduce_67(val, _values, result)
733
+ def _reduce_73(val, _values, result)
715
734
  result = :not_equal
716
735
  result
717
736
  end
718
737
 
719
- def _reduce_68(val, _values, result)
738
+ def _reduce_74(val, _values, result)
720
739
  result = :includes
721
740
  result
722
741
  end
723
742
 
724
- def _reduce_69(val, _values, result)
743
+ def _reduce_75(val, _values, result)
725
744
  result = :dash_match
726
745
  result
727
746
  end
728
747
 
729
- def _reduce_70(val, _values, result)
730
- result = Node.new(:NOT, [val[1]])
748
+ def _reduce_76(val, _values, result)
749
+ result = Node.new(:NOT, [val[1]])
731
750
 
732
751
  result
733
752
  end
734
753
 
735
- # reduce 71 omitted
754
+ # reduce 77 omitted
736
755
 
737
- # reduce 72 omitted
756
+ # reduce 78 omitted
738
757
 
739
- # reduce 73 omitted
758
+ # reduce 79 omitted
740
759
 
741
- # reduce 74 omitted
760
+ # reduce 80 omitted
742
761
 
743
- # reduce 75 omitted
762
+ # reduce 81 omitted
744
763
 
745
764
  def _reduce_none(val, _values, result)
746
765
  val[0]