nokogiri-maglev- 1.5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. data/.autotest +26 -0
  2. data/.gemtest +0 -0
  3. data/CHANGELOG.ja.rdoc +544 -0
  4. data/CHANGELOG.rdoc +532 -0
  5. data/Manifest.txt +283 -0
  6. data/README.ja.rdoc +106 -0
  7. data/README.rdoc +174 -0
  8. data/Rakefile +171 -0
  9. data/bin/nokogiri +53 -0
  10. data/ext/nokogiri/depend +358 -0
  11. data/ext/nokogiri/extconf.rb +124 -0
  12. data/ext/nokogiri/html_document.c +154 -0
  13. data/ext/nokogiri/html_document.h +10 -0
  14. data/ext/nokogiri/html_element_description.c +276 -0
  15. data/ext/nokogiri/html_element_description.h +10 -0
  16. data/ext/nokogiri/html_entity_lookup.c +32 -0
  17. data/ext/nokogiri/html_entity_lookup.h +8 -0
  18. data/ext/nokogiri/html_sax_parser_context.c +94 -0
  19. data/ext/nokogiri/html_sax_parser_context.h +11 -0
  20. data/ext/nokogiri/nokogiri.c +115 -0
  21. data/ext/nokogiri/nokogiri.h +160 -0
  22. data/ext/nokogiri/st.c +576 -0
  23. data/ext/nokogiri/xml_attr.c +94 -0
  24. data/ext/nokogiri/xml_attr.h +9 -0
  25. data/ext/nokogiri/xml_attribute_decl.c +70 -0
  26. data/ext/nokogiri/xml_attribute_decl.h +9 -0
  27. data/ext/nokogiri/xml_cdata.c +56 -0
  28. data/ext/nokogiri/xml_cdata.h +9 -0
  29. data/ext/nokogiri/xml_comment.c +54 -0
  30. data/ext/nokogiri/xml_comment.h +9 -0
  31. data/ext/nokogiri/xml_document.c +478 -0
  32. data/ext/nokogiri/xml_document.h +23 -0
  33. data/ext/nokogiri/xml_document_fragment.c +48 -0
  34. data/ext/nokogiri/xml_document_fragment.h +10 -0
  35. data/ext/nokogiri/xml_dtd.c +202 -0
  36. data/ext/nokogiri/xml_dtd.h +10 -0
  37. data/ext/nokogiri/xml_element_content.c +123 -0
  38. data/ext/nokogiri/xml_element_content.h +10 -0
  39. data/ext/nokogiri/xml_element_decl.c +69 -0
  40. data/ext/nokogiri/xml_element_decl.h +9 -0
  41. data/ext/nokogiri/xml_encoding_handler.c +79 -0
  42. data/ext/nokogiri/xml_encoding_handler.h +8 -0
  43. data/ext/nokogiri/xml_entity_decl.c +110 -0
  44. data/ext/nokogiri/xml_entity_decl.h +10 -0
  45. data/ext/nokogiri/xml_entity_reference.c +52 -0
  46. data/ext/nokogiri/xml_entity_reference.h +9 -0
  47. data/ext/nokogiri/xml_io.c +56 -0
  48. data/ext/nokogiri/xml_io.h +11 -0
  49. data/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  50. data/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  51. data/ext/nokogiri/xml_namespace.c +84 -0
  52. data/ext/nokogiri/xml_namespace.h +13 -0
  53. data/ext/nokogiri/xml_node.c +1397 -0
  54. data/ext/nokogiri/xml_node.h +13 -0
  55. data/ext/nokogiri/xml_node_set.c +418 -0
  56. data/ext/nokogiri/xml_node_set.h +9 -0
  57. data/ext/nokogiri/xml_processing_instruction.c +56 -0
  58. data/ext/nokogiri/xml_processing_instruction.h +9 -0
  59. data/ext/nokogiri/xml_reader.c +684 -0
  60. data/ext/nokogiri/xml_reader.h +10 -0
  61. data/ext/nokogiri/xml_relax_ng.c +162 -0
  62. data/ext/nokogiri/xml_relax_ng.h +9 -0
  63. data/ext/nokogiri/xml_sax_parser.c +293 -0
  64. data/ext/nokogiri/xml_sax_parser.h +39 -0
  65. data/ext/nokogiri/xml_sax_parser_context.c +199 -0
  66. data/ext/nokogiri/xml_sax_parser_context.h +10 -0
  67. data/ext/nokogiri/xml_sax_push_parser.c +115 -0
  68. data/ext/nokogiri/xml_sax_push_parser.h +9 -0
  69. data/ext/nokogiri/xml_schema.c +205 -0
  70. data/ext/nokogiri/xml_schema.h +9 -0
  71. data/ext/nokogiri/xml_syntax_error.c +58 -0
  72. data/ext/nokogiri/xml_syntax_error.h +13 -0
  73. data/ext/nokogiri/xml_text.c +50 -0
  74. data/ext/nokogiri/xml_text.h +9 -0
  75. data/ext/nokogiri/xml_xpath_context.c +315 -0
  76. data/ext/nokogiri/xml_xpath_context.h +9 -0
  77. data/ext/nokogiri/xslt_stylesheet.c +265 -0
  78. data/ext/nokogiri/xslt_stylesheet.h +9 -0
  79. data/lib/nokogiri.rb +127 -0
  80. data/lib/nokogiri/css.rb +27 -0
  81. data/lib/nokogiri/css/node.rb +99 -0
  82. data/lib/nokogiri/css/parser.rb +677 -0
  83. data/lib/nokogiri/css/parser.y +237 -0
  84. data/lib/nokogiri/css/parser_extras.rb +91 -0
  85. data/lib/nokogiri/css/syntax_error.rb +7 -0
  86. data/lib/nokogiri/css/tokenizer.rb +152 -0
  87. data/lib/nokogiri/css/tokenizer.rex +55 -0
  88. data/lib/nokogiri/css/xpath_visitor.rb +171 -0
  89. data/lib/nokogiri/decorators/slop.rb +35 -0
  90. data/lib/nokogiri/html.rb +36 -0
  91. data/lib/nokogiri/html/builder.rb +35 -0
  92. data/lib/nokogiri/html/document.rb +213 -0
  93. data/lib/nokogiri/html/document_fragment.rb +41 -0
  94. data/lib/nokogiri/html/element_description.rb +23 -0
  95. data/lib/nokogiri/html/element_description_defaults.rb +671 -0
  96. data/lib/nokogiri/html/entity_lookup.rb +13 -0
  97. data/lib/nokogiri/html/sax/parser.rb +52 -0
  98. data/lib/nokogiri/html/sax/parser_context.rb +16 -0
  99. data/lib/nokogiri/syntax_error.rb +4 -0
  100. data/lib/nokogiri/version.rb +88 -0
  101. data/lib/nokogiri/xml.rb +67 -0
  102. data/lib/nokogiri/xml/attr.rb +14 -0
  103. data/lib/nokogiri/xml/attribute_decl.rb +18 -0
  104. data/lib/nokogiri/xml/builder.rb +426 -0
  105. data/lib/nokogiri/xml/cdata.rb +11 -0
  106. data/lib/nokogiri/xml/character_data.rb +7 -0
  107. data/lib/nokogiri/xml/document.rb +234 -0
  108. data/lib/nokogiri/xml/document_fragment.rb +98 -0
  109. data/lib/nokogiri/xml/dtd.rb +22 -0
  110. data/lib/nokogiri/xml/element_content.rb +36 -0
  111. data/lib/nokogiri/xml/element_decl.rb +13 -0
  112. data/lib/nokogiri/xml/entity_decl.rb +19 -0
  113. data/lib/nokogiri/xml/namespace.rb +13 -0
  114. data/lib/nokogiri/xml/node.rb +915 -0
  115. data/lib/nokogiri/xml/node/save_options.rb +61 -0
  116. data/lib/nokogiri/xml/node_set.rb +357 -0
  117. data/lib/nokogiri/xml/notation.rb +6 -0
  118. data/lib/nokogiri/xml/parse_options.rb +93 -0
  119. data/lib/nokogiri/xml/pp.rb +2 -0
  120. data/lib/nokogiri/xml/pp/character_data.rb +18 -0
  121. data/lib/nokogiri/xml/pp/node.rb +56 -0
  122. data/lib/nokogiri/xml/processing_instruction.rb +8 -0
  123. data/lib/nokogiri/xml/reader.rb +112 -0
  124. data/lib/nokogiri/xml/relax_ng.rb +32 -0
  125. data/lib/nokogiri/xml/sax.rb +4 -0
  126. data/lib/nokogiri/xml/sax/document.rb +164 -0
  127. data/lib/nokogiri/xml/sax/parser.rb +115 -0
  128. data/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  129. data/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  130. data/lib/nokogiri/xml/schema.rb +63 -0
  131. data/lib/nokogiri/xml/syntax_error.rb +47 -0
  132. data/lib/nokogiri/xml/text.rb +9 -0
  133. data/lib/nokogiri/xml/xpath.rb +10 -0
  134. data/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  135. data/lib/nokogiri/xml/xpath_context.rb +16 -0
  136. data/lib/nokogiri/xslt.rb +52 -0
  137. data/lib/nokogiri/xslt/stylesheet.rb +25 -0
  138. data/lib/xsd/xmlparser/nokogiri.rb +90 -0
  139. data/nokogiri_help_responses.md +40 -0
  140. data/tasks/cross_compile.rb +152 -0
  141. data/tasks/nokogiri.org.rb +18 -0
  142. data/tasks/test.rb +94 -0
  143. data/test/css/test_nthiness.rb +159 -0
  144. data/test/css/test_parser.rb +303 -0
  145. data/test/css/test_tokenizer.rb +198 -0
  146. data/test/css/test_xpath_visitor.rb +85 -0
  147. data/test/decorators/test_slop.rb +16 -0
  148. data/test/files/2ch.html +108 -0
  149. data/test/files/address_book.rlx +12 -0
  150. data/test/files/address_book.xml +10 -0
  151. data/test/files/bar/bar.xsd +4 -0
  152. data/test/files/dont_hurt_em_why.xml +422 -0
  153. data/test/files/encoding.html +82 -0
  154. data/test/files/encoding.xhtml +84 -0
  155. data/test/files/exslt.xml +8 -0
  156. data/test/files/exslt.xslt +35 -0
  157. data/test/files/foo/foo.xsd +4 -0
  158. data/test/files/metacharset.html +10 -0
  159. data/test/files/noencoding.html +47 -0
  160. data/test/files/po.xml +32 -0
  161. data/test/files/po.xsd +66 -0
  162. data/test/files/shift_jis.html +10 -0
  163. data/test/files/shift_jis.xml +5 -0
  164. data/test/files/snuggles.xml +3 -0
  165. data/test/files/staff.dtd +10 -0
  166. data/test/files/staff.xml +59 -0
  167. data/test/files/staff.xslt +32 -0
  168. data/test/files/tlm.html +850 -0
  169. data/test/files/valid_bar.xml +2 -0
  170. data/test/helper.rb +173 -0
  171. data/test/html/sax/test_parser.rb +139 -0
  172. data/test/html/sax/test_parser_context.rb +48 -0
  173. data/test/html/test_builder.rb +165 -0
  174. data/test/html/test_document.rb +472 -0
  175. data/test/html/test_document_encoding.rb +138 -0
  176. data/test/html/test_document_fragment.rb +255 -0
  177. data/test/html/test_element_description.rb +101 -0
  178. data/test/html/test_named_characters.rb +14 -0
  179. data/test/html/test_node.rb +193 -0
  180. data/test/html/test_node_encoding.rb +27 -0
  181. data/test/test_convert_xpath.rb +135 -0
  182. data/test/test_css_cache.rb +45 -0
  183. data/test/test_encoding_handler.rb +46 -0
  184. data/test/test_memory_leak.rb +72 -0
  185. data/test/test_nokogiri.rb +133 -0
  186. data/test/test_reader.rb +425 -0
  187. data/test/test_soap4r_sax.rb +52 -0
  188. data/test/test_xslt_transforms.rb +193 -0
  189. data/test/xml/node/test_save_options.rb +28 -0
  190. data/test/xml/node/test_subclass.rb +44 -0
  191. data/test/xml/sax/test_parser.rb +338 -0
  192. data/test/xml/sax/test_parser_context.rb +113 -0
  193. data/test/xml/sax/test_push_parser.rb +156 -0
  194. data/test/xml/test_attr.rb +65 -0
  195. data/test/xml/test_attribute_decl.rb +86 -0
  196. data/test/xml/test_builder.rb +227 -0
  197. data/test/xml/test_cdata.rb +50 -0
  198. data/test/xml/test_comment.rb +29 -0
  199. data/test/xml/test_document.rb +697 -0
  200. data/test/xml/test_document_encoding.rb +26 -0
  201. data/test/xml/test_document_fragment.rb +192 -0
  202. data/test/xml/test_dtd.rb +107 -0
  203. data/test/xml/test_dtd_encoding.rb +33 -0
  204. data/test/xml/test_element_content.rb +56 -0
  205. data/test/xml/test_element_decl.rb +73 -0
  206. data/test/xml/test_entity_decl.rb +122 -0
  207. data/test/xml/test_entity_reference.rb +21 -0
  208. data/test/xml/test_namespace.rb +70 -0
  209. data/test/xml/test_node.rb +917 -0
  210. data/test/xml/test_node_attributes.rb +34 -0
  211. data/test/xml/test_node_encoding.rb +107 -0
  212. data/test/xml/test_node_reparenting.rb +334 -0
  213. data/test/xml/test_node_set.rb +742 -0
  214. data/test/xml/test_parse_options.rb +52 -0
  215. data/test/xml/test_processing_instruction.rb +30 -0
  216. data/test/xml/test_reader_encoding.rb +126 -0
  217. data/test/xml/test_relax_ng.rb +60 -0
  218. data/test/xml/test_schema.rb +94 -0
  219. data/test/xml/test_syntax_error.rb +12 -0
  220. data/test/xml/test_text.rb +47 -0
  221. data/test/xml/test_unparented_node.rb +381 -0
  222. data/test/xml/test_xpath.rb +237 -0
  223. data/test/xslt/test_custom_functions.rb +94 -0
  224. data/test/xslt/test_exception_handling.rb +37 -0
  225. metadata +548 -0
@@ -0,0 +1,677 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.4.6
4
+ # from Racc grammer file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+
9
+
10
+ require 'nokogiri/css/parser_extras'
11
+ module Nokogiri
12
+ module CSS
13
+ class Parser < Racc::Parser
14
+ ##### State transition tables begin ###
15
+
16
+ racc_action_table = [
17
+ 4, 56, 27, 22, 12, 24, 57, 4, 65, 1,
18
+ 41, 12, 75, 57, 4, 23, 1, 82, 12, 19,
19
+ 93, 92, 5, 1, 9, 10, 19, 13, 16, 5,
20
+ 12, 9, 10, 19, 13, 16, 5, 5, 9, 10,
21
+ 4, 13, 16, 16, 12, 41, 64, 4, 5, 1,
22
+ 60, 10, 12, 59, 16, 59, 28, 1, 29, 19,
23
+ 12, 12, 5, 62, 9, 10, 19, 13, 16, 12,
24
+ 5, 9, 83, 10, 12, 13, 16, 84, 5, 5,
25
+ 63, 10, 10, 12, 16, 16, 58, 5, 61, 62,
26
+ 10, 4, 5, 16, 87, 10, 27, 53, 16, 54,
27
+ 49, 5, 88, 41, 10, 68, 70, 16, 27, 53,
28
+ 19, 54, 44, 91, 21, 9, 69, 71, 72, 94,
29
+ 74, 68, 70, -23, 66, 33, 35, 37, 27, 53,
30
+ 96, 54, 69, 71, 72, 32, 74, 34, 36, 97,
31
+ 66, 27, 53, nil, 54 ]
32
+
33
+ racc_action_check = [
34
+ 0, 20, 4, 4, 0, 4, 43, 9, 27, 0,
35
+ 39, 9, 29, 20, 31, 4, 9, 43, 31, 0,
36
+ 73, 73, 0, 31, 0, 0, 9, 0, 0, 9,
37
+ 7, 9, 9, 31, 9, 9, 31, 14, 31, 31,
38
+ 57, 31, 31, 14, 57, 7, 26, 5, 7, 57,
39
+ 22, 7, 41, 53, 7, 22, 5, 41, 5, 57,
40
+ 8, 79, 57, 54, 57, 57, 5, 57, 57, 18,
41
+ 41, 5, 55, 41, 17, 41, 41, 56, 8, 79,
42
+ 25, 8, 79, 15, 8, 79, 21, 18, 24, 24,
43
+ 18, 16, 17, 18, 60, 17, 59, 59, 17, 59,
44
+ 16, 15, 61, 11, 15, 30, 30, 15, 19, 19,
45
+ 16, 19, 10, 67, 2, 16, 30, 30, 30, 76,
46
+ 30, 28, 28, 1, 30, 6, 6, 6, 62, 62,
47
+ 81, 62, 28, 28, 28, 6, 28, 6, 6, 88,
48
+ 28, 65, 65, nil, 65 ]
49
+
50
+ racc_action_pointer = [
51
+ -2, 95, 86, nil, -8, 45, 118, 24, 54, 5,
52
+ 101, 82, nil, nil, 13, 77, 89, 68, 63, 98,
53
+ 1, 75, 43, nil, 77, 57, 23, -4, 118, -13,
54
+ 102, 12, nil, nil, nil, nil, nil, nil, nil, -11,
55
+ nil, 46, nil, -6, nil, nil, nil, nil, nil, nil,
56
+ nil, nil, nil, 41, 51, 49, 77, 38, nil, 86,
57
+ 81, 95, 118, nil, nil, 131, nil, 88, nil, nil,
58
+ nil, nil, nil, 10, nil, nil, 94, nil, nil, 55,
59
+ nil, 107, nil, nil, nil, nil, nil, nil, 126, nil,
60
+ nil, nil, nil, nil, nil, nil, nil, nil ]
61
+
62
+ racc_action_default = [
63
+ -24, -21, -69, -2, -69, -69, -18, -45, -50, -24,
64
+ -69, -16, -54, -22, -12, -53, -69, -52, -51, -69,
65
+ -69, -69, -38, -28, -36, -69, -69, -37, -57, -69,
66
+ -57, -24, -5, -3, -8, -4, -7, -6, -9, -44,
67
+ -11, -24, -46, -69, -19, -15, -13, -14, -49, -43,
68
+ -42, -48, -47, -38, -36, -69, -69, -24, -20, -69,
69
+ -69, -41, -69, -29, -30, -69, -58, -69, -63, -59,
70
+ -64, -60, -61, -69, -62, -27, -69, -17, -10, -66,
71
+ -68, -69, -32, -31, 98, -1, -35, -40, -69, -33,
72
+ -34, -25, -55, -56, -26, -67, -65, -39 ]
73
+
74
+ racc_goto_table = [
75
+ 39, 42, 25, 40, 77, 30, 20, 45, 48, 79,
76
+ 51, 52, 67, 46, 76, 43, 50, 55, 47, 38,
77
+ 31, 26, 81, nil, nil, nil, nil, nil, nil, nil,
78
+ 85, nil, nil, nil, 80, 78, nil, nil, nil, nil,
79
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
80
+ nil, nil, nil, nil, nil, nil, nil, 86, nil, nil,
81
+ 89, nil, nil, 90, nil, nil, nil, nil, nil, nil,
82
+ nil, nil, 95 ]
83
+
84
+ racc_goto_check = [
85
+ 7, 7, 15, 8, 2, 9, 1, 8, 7, 5,
86
+ 7, 7, 14, 10, 14, 1, 9, 15, 11, 6,
87
+ 3, 16, 19, nil, nil, nil, nil, nil, nil, nil,
88
+ 2, nil, nil, nil, 7, 8, nil, nil, nil, nil,
89
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
90
+ nil, nil, nil, nil, nil, nil, nil, 15, nil, nil,
91
+ 15, nil, nil, 15, nil, nil, nil, nil, nil, nil,
92
+ nil, nil, 7 ]
93
+
94
+ racc_goto_pointer = [
95
+ nil, 6, -27, 14, nil, -32, 12, -7, -4, 0,
96
+ -1, 4, nil, nil, -16, -2, 17, nil, nil, -19 ]
97
+
98
+ racc_goto_default = [
99
+ nil, nil, 3, nil, 6, 7, nil, 11, nil, 14,
100
+ 15, 17, 18, 2, nil, nil, nil, 8, 73, nil ]
101
+
102
+ racc_reduce_table = [
103
+ 0, 0, :racc_error,
104
+ 3, 32, :_reduce_1,
105
+ 1, 32, :_reduce_2,
106
+ 1, 34, :_reduce_3,
107
+ 1, 34, :_reduce_4,
108
+ 1, 34, :_reduce_5,
109
+ 1, 34, :_reduce_6,
110
+ 1, 34, :_reduce_7,
111
+ 1, 34, :_reduce_8,
112
+ 2, 35, :_reduce_9,
113
+ 3, 35, :_reduce_10,
114
+ 2, 35, :_reduce_11,
115
+ 1, 35, :_reduce_none,
116
+ 2, 35, :_reduce_13,
117
+ 2, 35, :_reduce_14,
118
+ 2, 35, :_reduce_15,
119
+ 1, 35, :_reduce_16,
120
+ 3, 33, :_reduce_17,
121
+ 1, 33, :_reduce_none,
122
+ 2, 43, :_reduce_19,
123
+ 3, 36, :_reduce_20,
124
+ 1, 36, :_reduce_21,
125
+ 1, 36, :_reduce_22,
126
+ 1, 44, :_reduce_23,
127
+ 0, 44, :_reduce_none,
128
+ 4, 42, :_reduce_25,
129
+ 4, 42, :_reduce_26,
130
+ 3, 42, :_reduce_27,
131
+ 2, 40, :_reduce_28,
132
+ 3, 40, :_reduce_29,
133
+ 3, 40, :_reduce_30,
134
+ 3, 40, :_reduce_31,
135
+ 3, 40, :_reduce_32,
136
+ 3, 46, :_reduce_33,
137
+ 3, 46, :_reduce_34,
138
+ 3, 46, :_reduce_35,
139
+ 1, 46, :_reduce_none,
140
+ 1, 46, :_reduce_none,
141
+ 1, 46, :_reduce_38,
142
+ 4, 47, :_reduce_39,
143
+ 3, 47, :_reduce_40,
144
+ 2, 47, :_reduce_41,
145
+ 2, 41, :_reduce_42,
146
+ 2, 41, :_reduce_43,
147
+ 1, 37, :_reduce_none,
148
+ 0, 37, :_reduce_none,
149
+ 2, 38, :_reduce_46,
150
+ 2, 38, :_reduce_47,
151
+ 2, 38, :_reduce_48,
152
+ 2, 38, :_reduce_49,
153
+ 1, 38, :_reduce_none,
154
+ 1, 38, :_reduce_none,
155
+ 1, 38, :_reduce_none,
156
+ 1, 38, :_reduce_none,
157
+ 1, 48, :_reduce_54,
158
+ 2, 45, :_reduce_55,
159
+ 2, 45, :_reduce_56,
160
+ 0, 45, :_reduce_none,
161
+ 1, 49, :_reduce_58,
162
+ 1, 49, :_reduce_59,
163
+ 1, 49, :_reduce_60,
164
+ 1, 49, :_reduce_61,
165
+ 1, 49, :_reduce_62,
166
+ 1, 49, :_reduce_63,
167
+ 1, 49, :_reduce_64,
168
+ 3, 39, :_reduce_65,
169
+ 1, 50, :_reduce_none,
170
+ 2, 50, :_reduce_none,
171
+ 1, 50, :_reduce_none ]
172
+
173
+ racc_reduce_n = 69
174
+
175
+ racc_shift_n = 98
176
+
177
+ racc_token_table = {
178
+ false => 0,
179
+ :error => 1,
180
+ :FUNCTION => 2,
181
+ :INCLUDES => 3,
182
+ :DASHMATCH => 4,
183
+ :LBRACE => 5,
184
+ :HASH => 6,
185
+ :PLUS => 7,
186
+ :GREATER => 8,
187
+ :S => 9,
188
+ :STRING => 10,
189
+ :IDENT => 11,
190
+ :COMMA => 12,
191
+ :NUMBER => 13,
192
+ :PREFIXMATCH => 14,
193
+ :SUFFIXMATCH => 15,
194
+ :SUBSTRINGMATCH => 16,
195
+ :TILDE => 17,
196
+ :NOT_EQUAL => 18,
197
+ :SLASH => 19,
198
+ :DOUBLESLASH => 20,
199
+ :NOT => 21,
200
+ :EQUAL => 22,
201
+ :RPAREN => 23,
202
+ :LSQUARE => 24,
203
+ :RSQUARE => 25,
204
+ :HAS => 26,
205
+ "." => 27,
206
+ "|" => 28,
207
+ "*" => 29,
208
+ ":" => 30 }
209
+
210
+ racc_nt_base = 31
211
+
212
+ racc_use_result_var = true
213
+
214
+ Racc_arg = [
215
+ racc_action_table,
216
+ racc_action_check,
217
+ racc_action_default,
218
+ racc_action_pointer,
219
+ racc_goto_table,
220
+ racc_goto_check,
221
+ racc_goto_default,
222
+ racc_goto_pointer,
223
+ racc_nt_base,
224
+ racc_reduce_table,
225
+ racc_token_table,
226
+ racc_shift_n,
227
+ racc_reduce_n,
228
+ racc_use_result_var ]
229
+
230
+ Racc_token_to_s_table = [
231
+ "$end",
232
+ "error",
233
+ "FUNCTION",
234
+ "INCLUDES",
235
+ "DASHMATCH",
236
+ "LBRACE",
237
+ "HASH",
238
+ "PLUS",
239
+ "GREATER",
240
+ "S",
241
+ "STRING",
242
+ "IDENT",
243
+ "COMMA",
244
+ "NUMBER",
245
+ "PREFIXMATCH",
246
+ "SUFFIXMATCH",
247
+ "SUBSTRINGMATCH",
248
+ "TILDE",
249
+ "NOT_EQUAL",
250
+ "SLASH",
251
+ "DOUBLESLASH",
252
+ "NOT",
253
+ "EQUAL",
254
+ "RPAREN",
255
+ "LSQUARE",
256
+ "RSQUARE",
257
+ "HAS",
258
+ "\".\"",
259
+ "\"|\"",
260
+ "\"*\"",
261
+ "\":\"",
262
+ "$start",
263
+ "selector",
264
+ "simple_selector_1toN",
265
+ "combinator",
266
+ "simple_selector",
267
+ "element_name",
268
+ "hcap_0toN",
269
+ "hcap_1toN",
270
+ "negation",
271
+ "function",
272
+ "pseudo",
273
+ "attrib",
274
+ "class",
275
+ "namespace",
276
+ "attrib_val_0or1",
277
+ "expr",
278
+ "an_plus_b",
279
+ "attribute_id",
280
+ "eql_incl_dash",
281
+ "negation_arg" ]
282
+
283
+ Racc_debug_parser = false
284
+
285
+ ##### State transition tables end #####
286
+
287
+ # reduce 0 omitted
288
+
289
+ def _reduce_1(val, _values, result)
290
+ result = [val.first, val.last].flatten
291
+
292
+ result
293
+ end
294
+
295
+ def _reduce_2(val, _values, result)
296
+ result = val.flatten
297
+ result
298
+ end
299
+
300
+ def _reduce_3(val, _values, result)
301
+ result = :DIRECT_ADJACENT_SELECTOR
302
+ result
303
+ end
304
+
305
+ def _reduce_4(val, _values, result)
306
+ result = :CHILD_SELECTOR
307
+ result
308
+ end
309
+
310
+ def _reduce_5(val, _values, result)
311
+ result = :PRECEDING_SELECTOR
312
+ result
313
+ end
314
+
315
+ def _reduce_6(val, _values, result)
316
+ result = :DESCENDANT_SELECTOR
317
+ result
318
+ end
319
+
320
+ def _reduce_7(val, _values, result)
321
+ result = :DESCENDANT_SELECTOR
322
+ result
323
+ end
324
+
325
+ def _reduce_8(val, _values, result)
326
+ result = :CHILD_SELECTOR
327
+ result
328
+ end
329
+
330
+ def _reduce_9(val, _values, result)
331
+ result = if val[1].nil?
332
+ val.first
333
+ else
334
+ Node.new(:CONDITIONAL_SELECTOR, [val.first, val[1]])
335
+ end
336
+
337
+ result
338
+ end
339
+
340
+ def _reduce_10(val, _values, result)
341
+ result = Node.new(:CONDITIONAL_SELECTOR,
342
+ [
343
+ val.first,
344
+ Node.new(:COMBINATOR, [val[1], val.last])
345
+ ]
346
+ )
347
+
348
+ result
349
+ end
350
+
351
+ def _reduce_11(val, _values, result)
352
+ result = Node.new(:CONDITIONAL_SELECTOR, val)
353
+
354
+ result
355
+ end
356
+
357
+ # reduce 12 omitted
358
+
359
+ def _reduce_13(val, _values, result)
360
+ result = Node.new(:CONDITIONAL_SELECTOR, val)
361
+
362
+ result
363
+ end
364
+
365
+ def _reduce_14(val, _values, result)
366
+ result = Node.new(:CONDITIONAL_SELECTOR, val)
367
+
368
+ result
369
+ end
370
+
371
+ def _reduce_15(val, _values, result)
372
+ result = Node.new(:CONDITIONAL_SELECTOR,
373
+ [
374
+ Node.new(:ELEMENT_NAME, ['*']),
375
+ Node.new(:COMBINATOR, val)
376
+ ]
377
+ )
378
+
379
+ result
380
+ end
381
+
382
+ def _reduce_16(val, _values, result)
383
+ result = Node.new(:CONDITIONAL_SELECTOR,
384
+ [Node.new(:ELEMENT_NAME, ['*']), val.first]
385
+ )
386
+
387
+ result
388
+ end
389
+
390
+ def _reduce_17(val, _values, result)
391
+ result = Node.new(val[1], [val.first, val.last])
392
+
393
+ result
394
+ end
395
+
396
+ # reduce 18 omitted
397
+
398
+ def _reduce_19(val, _values, result)
399
+ result = Node.new(:CLASS_CONDITION, [val[1]])
400
+ result
401
+ end
402
+
403
+ def _reduce_20(val, _values, result)
404
+ result = Node.new(:ELEMENT_NAME,
405
+ [[val.first, val.last].compact.join(':')]
406
+ )
407
+
408
+ result
409
+ end
410
+
411
+ def _reduce_21(val, _values, result)
412
+ name = @namespaces.key?('xmlns') ? "xmlns:#{val.first}" : val.first
413
+ result = Node.new(:ELEMENT_NAME, [name])
414
+
415
+ result
416
+ end
417
+
418
+ def _reduce_22(val, _values, result)
419
+ result = Node.new(:ELEMENT_NAME, val)
420
+ result
421
+ end
422
+
423
+ def _reduce_23(val, _values, result)
424
+ result = val[0]
425
+ result
426
+ end
427
+
428
+ # reduce 24 omitted
429
+
430
+ def _reduce_25(val, _values, result)
431
+ result = Node.new(:ATTRIBUTE_CONDITION,
432
+ [Node.new(:ELEMENT_NAME, [val[1]])] + (val[2] || [])
433
+ )
434
+
435
+ result
436
+ end
437
+
438
+ def _reduce_26(val, _values, result)
439
+ result = Node.new(:ATTRIBUTE_CONDITION,
440
+ [val[1]] + (val[2] || [])
441
+ )
442
+
443
+ result
444
+ end
445
+
446
+ def _reduce_27(val, _values, result)
447
+ # Non standard, but hpricot supports it.
448
+ result = Node.new(:PSEUDO_CLASS,
449
+ [Node.new(:FUNCTION, ['nth-child(', val[1]])]
450
+ )
451
+
452
+ result
453
+ end
454
+
455
+ def _reduce_28(val, _values, result)
456
+ result = Node.new(:FUNCTION, [val.first.strip])
457
+
458
+ result
459
+ end
460
+
461
+ def _reduce_29(val, _values, result)
462
+ result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
463
+
464
+ result
465
+ end
466
+
467
+ def _reduce_30(val, _values, result)
468
+ result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
469
+
470
+ result
471
+ end
472
+
473
+ def _reduce_31(val, _values, result)
474
+ result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
475
+
476
+ result
477
+ end
478
+
479
+ def _reduce_32(val, _values, result)
480
+ result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
481
+
482
+ result
483
+ end
484
+
485
+ def _reduce_33(val, _values, result)
486
+ result = [val.first, val.last]
487
+ result
488
+ end
489
+
490
+ def _reduce_34(val, _values, result)
491
+ result = [val.first, val.last]
492
+ result
493
+ end
494
+
495
+ def _reduce_35(val, _values, result)
496
+ result = [val.first, val.last]
497
+ result
498
+ end
499
+
500
+ # reduce 36 omitted
501
+
502
+ # reduce 37 omitted
503
+
504
+ def _reduce_38(val, _values, result)
505
+ if val[0] == 'even'
506
+ val = ["2","n","+","0"]
507
+ result = Node.new(:AN_PLUS_B, val)
508
+ elsif val[0] == 'odd'
509
+ val = ["2","n","+","1"]
510
+ result = Node.new(:AN_PLUS_B, val)
511
+ else
512
+ # This is not CSS standard. It allows us to support this:
513
+ # assert_xpath("//a[foo(., @href)]", @parser.parse('a:foo(@href)'))
514
+ # assert_xpath("//a[foo(., @a, b)]", @parser.parse('a:foo(@a, b)'))
515
+ # assert_xpath("//a[foo(., a, 10)]", @parser.parse('a:foo(a, 10)'))
516
+ result = val
517
+ end
518
+
519
+ result
520
+ end
521
+
522
+ def _reduce_39(val, _values, result)
523
+ if val[1] == 'n'
524
+ result = Node.new(:AN_PLUS_B, val)
525
+ else
526
+ raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
527
+ end
528
+
529
+ result
530
+ end
531
+
532
+ def _reduce_40(val, _values, result)
533
+ # n+3, -n+3
534
+ if val[0] == 'n'
535
+ val.unshift("1")
536
+ result = Node.new(:AN_PLUS_B, val)
537
+ elsif val[0] == '-n'
538
+ val[0] = 'n'
539
+ val.unshift("-1")
540
+ result = Node.new(:AN_PLUS_B, val)
541
+ else
542
+ raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
543
+ end
544
+
545
+ result
546
+ end
547
+
548
+ def _reduce_41(val, _values, result)
549
+ if val[1] == 'n'
550
+ val << "+"
551
+ val << "0"
552
+ result = Node.new(:AN_PLUS_B, val)
553
+ else
554
+ raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
555
+ end
556
+
557
+ result
558
+ end
559
+
560
+ def _reduce_42(val, _values, result)
561
+ result = Node.new(:PSEUDO_CLASS, [val[1]])
562
+
563
+ result
564
+ end
565
+
566
+ def _reduce_43(val, _values, result)
567
+ result = Node.new(:PSEUDO_CLASS, [val[1]])
568
+ result
569
+ end
570
+
571
+ # reduce 44 omitted
572
+
573
+ # reduce 45 omitted
574
+
575
+ def _reduce_46(val, _values, result)
576
+ result = Node.new(:COMBINATOR, val)
577
+
578
+ result
579
+ end
580
+
581
+ def _reduce_47(val, _values, result)
582
+ result = Node.new(:COMBINATOR, val)
583
+
584
+ result
585
+ end
586
+
587
+ def _reduce_48(val, _values, result)
588
+ result = Node.new(:COMBINATOR, val)
589
+
590
+ result
591
+ end
592
+
593
+ def _reduce_49(val, _values, result)
594
+ result = Node.new(:COMBINATOR, val)
595
+
596
+ result
597
+ end
598
+
599
+ # reduce 50 omitted
600
+
601
+ # reduce 51 omitted
602
+
603
+ # reduce 52 omitted
604
+
605
+ # reduce 53 omitted
606
+
607
+ def _reduce_54(val, _values, result)
608
+ result = Node.new(:ID, val)
609
+ result
610
+ end
611
+
612
+ def _reduce_55(val, _values, result)
613
+ result = [val.first, val[1]]
614
+ result
615
+ end
616
+
617
+ def _reduce_56(val, _values, result)
618
+ result = [val.first, val[1]]
619
+ result
620
+ end
621
+
622
+ # reduce 57 omitted
623
+
624
+ def _reduce_58(val, _values, result)
625
+ result = :equal
626
+ result
627
+ end
628
+
629
+ def _reduce_59(val, _values, result)
630
+ result = :prefix_match
631
+ result
632
+ end
633
+
634
+ def _reduce_60(val, _values, result)
635
+ result = :suffix_match
636
+ result
637
+ end
638
+
639
+ def _reduce_61(val, _values, result)
640
+ result = :substring_match
641
+ result
642
+ end
643
+
644
+ def _reduce_62(val, _values, result)
645
+ result = :not_equal
646
+ result
647
+ end
648
+
649
+ def _reduce_63(val, _values, result)
650
+ result = :includes
651
+ result
652
+ end
653
+
654
+ def _reduce_64(val, _values, result)
655
+ result = :dash_match
656
+ result
657
+ end
658
+
659
+ def _reduce_65(val, _values, result)
660
+ result = Node.new(:NOT, [val[1]])
661
+
662
+ result
663
+ end
664
+
665
+ # reduce 66 omitted
666
+
667
+ # reduce 67 omitted
668
+
669
+ # reduce 68 omitted
670
+
671
+ def _reduce_none(val, _values, result)
672
+ val[0]
673
+ end
674
+
675
+ end # class Parser
676
+ end # module CSS
677
+ end # module Nokogiri