cocoa-xml 0.4.4

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.
@@ -0,0 +1,646 @@
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
+ module Nokogiri
10
+ module CSS
11
+ # @private
12
+ class GeneratedParser < Racc::Parser
13
+ ##### State transition tables begin ###
14
+
15
+ racc_action_table = [
16
+ 4, 22, 24, 26, 10, 62, 4, 72, 50, 1,
17
+ 10, 21, 4, 23, 25, 1, 10, 10, 59, 18,
18
+ 51, 1, 5, 10, 8, 18, 11, 14, 5, 10,
19
+ 8, 18, 11, 14, 5, 5, 8, 8, 11, 14,
20
+ 14, 5, 10, 8, 4, 57, 14, 5, 10, 8,
21
+ 56, 40, 14, 46, 10, 33, 52, 40, 54, 58,
22
+ 5, 77, 8, 18, 4, 14, 5, 78, 8, 64,
23
+ 66, 14, 5, 34, 8, 35, 49, 14, 64, 66,
24
+ 65, 67, 69, 18, 70, 60, 61, 56, 63, 65,
25
+ 67, 69, 80, 70, 61, 33, 28, 63, 32, 33,
26
+ 52, 5, 54, 33, 52, 82, 54, 83, 31, 33,
27
+ 52, 40, 54, 87, 86, 42, -22, 88, 89, 90,
28
+ 91 ]
29
+
30
+ racc_action_check = [
31
+ 0, 2, 2, 2, 0, 33, 20, 35, 17, 0,
32
+ 20, 2, 51, 2, 2, 20, 51, 3, 30, 0,
33
+ 17, 51, 0, 40, 0, 20, 0, 0, 20, 15,
34
+ 20, 51, 20, 20, 51, 3, 51, 3, 51, 51,
35
+ 3, 40, 6, 40, 14, 28, 40, 15, 7, 15,
36
+ 28, 38, 15, 14, 13, 18, 18, 6, 18, 29,
37
+ 6, 49, 6, 14, 5, 6, 7, 50, 7, 34,
38
+ 34, 7, 13, 5, 13, 5, 16, 13, 36, 36,
39
+ 34, 34, 34, 5, 34, 32, 32, 52, 34, 36,
40
+ 36, 36, 53, 36, 54, 4, 4, 36, 4, 62,
41
+ 62, 12, 62, 61, 61, 57, 61, 60, 4, 56,
42
+ 56, 9, 56, 68, 68, 8, 1, 71, 73, 76,
43
+ 83 ]
44
+
45
+ racc_action_pointer = [
46
+ -2, 89, -6, 11, 85, 62, 36, 42, 104, 90,
47
+ nil, nil, 77, 48, 42, 23, 49, 8, 45, nil,
48
+ 4, nil, nil, nil, nil, nil, nil, nil, 38, 36,
49
+ -5, nil, 74, -7, 66, -18, 75, nil, 30, nil,
50
+ 17, nil, nil, nil, nil, nil, nil, nil, nil, 50,
51
+ 67, 10, 75, 69, 82, nil, 99, 92, nil, nil,
52
+ 100, 93, 89, nil, nil, nil, nil, nil, 103, nil,
53
+ nil, 92, nil, 93, nil, nil, 96, nil, nil, nil,
54
+ nil, nil, nil, 107, nil, nil, nil, nil, nil, nil,
55
+ nil, nil ]
56
+
57
+ racc_action_default = [
58
+ -23, -20, -17, -51, -65, -65, -43, -48, -65, -15,
59
+ -52, -21, -12, -50, -65, -49, -65, -65, -65, -2,
60
+ -23, -5, -3, -8, -4, -7, -6, -47, -36, -65,
61
+ -65, -27, -34, -35, -55, -65, -55, -9, -42, -11,
62
+ -65, -44, -18, -14, -13, -46, -41, -40, -45, -65,
63
+ -65, -23, -36, -65, -34, -16, -65, -65, -28, -29,
64
+ -39, -65, -65, -56, -61, -57, -62, -58, -65, -59,
65
+ -60, -65, -26, -65, -10, -64, -65, -19, 92, -1,
66
+ -30, -33, -38, -65, -31, -32, -53, -54, -24, -25,
67
+ -63, -37 ]
68
+
69
+ racc_goto_table = [
70
+ 29, 27, 19, 39, 38, 41, 43, 36, 71, 17,
71
+ 73, 45, 44, 48, 53, 37, 47, 20, 30, 76,
72
+ nil, nil, 55, nil, nil, nil, nil, nil, nil, nil,
73
+ nil, nil, nil, nil, nil, 74, nil, nil, 75, nil,
74
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
75
+ nil, nil, 81, 79, nil, nil, nil, 84, 85 ]
76
+
77
+ racc_goto_check = [
78
+ 14, 7, 2, 8, 7, 7, 8, 9, 13, 1,
79
+ 13, 7, 10, 7, 14, 6, 9, 3, 15, 19,
80
+ nil, nil, 2, nil, nil, nil, nil, nil, nil, nil,
81
+ nil, nil, nil, nil, nil, 8, nil, nil, 7, nil,
82
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
83
+ nil, nil, 14, 2, nil, nil, nil, 14, 14 ]
84
+
85
+ racc_goto_pointer = [
86
+ nil, 9, 2, 15, nil, nil, 9, -2, -3, 2,
87
+ 0, nil, nil, -26, -4, 14, nil, nil, nil, -21 ]
88
+
89
+ racc_goto_default = [
90
+ nil, nil, nil, nil, 2, 6, nil, 9, nil, 12,
91
+ 13, 15, 16, nil, nil, nil, 3, 7, 68, nil ]
92
+
93
+ racc_reduce_table = [
94
+ 0, 0, :racc_error,
95
+ 3, 31, :_reduce_1,
96
+ 1, 31, :_reduce_2,
97
+ 1, 33, :_reduce_3,
98
+ 1, 33, :_reduce_4,
99
+ 1, 33, :_reduce_5,
100
+ 1, 33, :_reduce_6,
101
+ 1, 33, :_reduce_7,
102
+ 1, 33, :_reduce_8,
103
+ 2, 34, :_reduce_9,
104
+ 3, 34, :_reduce_10,
105
+ 2, 34, :_reduce_11,
106
+ 1, 34, :_reduce_none,
107
+ 2, 34, :_reduce_13,
108
+ 2, 34, :_reduce_14,
109
+ 1, 34, :_reduce_15,
110
+ 3, 32, :_reduce_16,
111
+ 1, 32, :_reduce_none,
112
+ 2, 41, :_reduce_18,
113
+ 3, 35, :_reduce_19,
114
+ 1, 35, :_reduce_20,
115
+ 1, 35, :_reduce_21,
116
+ 1, 42, :_reduce_22,
117
+ 0, 42, :_reduce_none,
118
+ 4, 40, :_reduce_24,
119
+ 4, 40, :_reduce_25,
120
+ 3, 40, :_reduce_26,
121
+ 2, 39, :_reduce_27,
122
+ 3, 39, :_reduce_28,
123
+ 3, 39, :_reduce_29,
124
+ 3, 39, :_reduce_30,
125
+ 3, 44, :_reduce_31,
126
+ 3, 44, :_reduce_32,
127
+ 3, 44, :_reduce_33,
128
+ 1, 44, :_reduce_none,
129
+ 1, 44, :_reduce_none,
130
+ 1, 44, :_reduce_36,
131
+ 4, 45, :_reduce_37,
132
+ 3, 45, :_reduce_38,
133
+ 2, 45, :_reduce_39,
134
+ 2, 46, :_reduce_40,
135
+ 2, 46, :_reduce_41,
136
+ 1, 36, :_reduce_none,
137
+ 0, 36, :_reduce_none,
138
+ 2, 37, :_reduce_44,
139
+ 2, 37, :_reduce_45,
140
+ 2, 37, :_reduce_46,
141
+ 2, 37, :_reduce_47,
142
+ 1, 37, :_reduce_none,
143
+ 1, 37, :_reduce_none,
144
+ 1, 37, :_reduce_none,
145
+ 1, 37, :_reduce_none,
146
+ 1, 47, :_reduce_52,
147
+ 2, 43, :_reduce_53,
148
+ 2, 43, :_reduce_54,
149
+ 0, 43, :_reduce_none,
150
+ 1, 48, :_reduce_56,
151
+ 1, 48, :_reduce_57,
152
+ 1, 48, :_reduce_58,
153
+ 1, 48, :_reduce_59,
154
+ 1, 48, :_reduce_60,
155
+ 1, 48, :_reduce_61,
156
+ 1, 48, :_reduce_62,
157
+ 3, 38, :_reduce_63,
158
+ 1, 49, :_reduce_none ]
159
+
160
+ racc_reduce_n = 65
161
+
162
+ racc_shift_n = 92
163
+
164
+ racc_token_table = {
165
+ false => 0,
166
+ :error => 1,
167
+ :FUNCTION => 2,
168
+ :INCLUDES => 3,
169
+ :DASHMATCH => 4,
170
+ :LBRACE => 5,
171
+ :HASH => 6,
172
+ :PLUS => 7,
173
+ :GREATER => 8,
174
+ :S => 9,
175
+ :STRING => 10,
176
+ :IDENT => 11,
177
+ :COMMA => 12,
178
+ :NUMBER => 13,
179
+ :PREFIXMATCH => 14,
180
+ :SUFFIXMATCH => 15,
181
+ :SUBSTRINGMATCH => 16,
182
+ :TILDE => 17,
183
+ :NOT_EQUAL => 18,
184
+ :SLASH => 19,
185
+ :DOUBLESLASH => 20,
186
+ :NOT => 21,
187
+ :EQUAL => 22,
188
+ :RPAREN => 23,
189
+ :LSQUARE => 24,
190
+ :RSQUARE => 25,
191
+ "." => 26,
192
+ "|" => 27,
193
+ "*" => 28,
194
+ ":" => 29 }
195
+
196
+ racc_nt_base = 30
197
+
198
+ racc_use_result_var = true
199
+
200
+ Racc_arg = [
201
+ racc_action_table,
202
+ racc_action_check,
203
+ racc_action_default,
204
+ racc_action_pointer,
205
+ racc_goto_table,
206
+ racc_goto_check,
207
+ racc_goto_default,
208
+ racc_goto_pointer,
209
+ racc_nt_base,
210
+ racc_reduce_table,
211
+ racc_token_table,
212
+ racc_shift_n,
213
+ racc_reduce_n,
214
+ racc_use_result_var ]
215
+
216
+ Racc_token_to_s_table = [
217
+ "$end",
218
+ "error",
219
+ "FUNCTION",
220
+ "INCLUDES",
221
+ "DASHMATCH",
222
+ "LBRACE",
223
+ "HASH",
224
+ "PLUS",
225
+ "GREATER",
226
+ "S",
227
+ "STRING",
228
+ "IDENT",
229
+ "COMMA",
230
+ "NUMBER",
231
+ "PREFIXMATCH",
232
+ "SUFFIXMATCH",
233
+ "SUBSTRINGMATCH",
234
+ "TILDE",
235
+ "NOT_EQUAL",
236
+ "SLASH",
237
+ "DOUBLESLASH",
238
+ "NOT",
239
+ "EQUAL",
240
+ "RPAREN",
241
+ "LSQUARE",
242
+ "RSQUARE",
243
+ "\".\"",
244
+ "\"|\"",
245
+ "\"*\"",
246
+ "\":\"",
247
+ "$start",
248
+ "selector",
249
+ "simple_selector_1toN",
250
+ "combinator",
251
+ "simple_selector",
252
+ "element_name",
253
+ "hcap_0toN",
254
+ "hcap_1toN",
255
+ "negation",
256
+ "function",
257
+ "attrib",
258
+ "class",
259
+ "namespace",
260
+ "attrib_val_0or1",
261
+ "expr",
262
+ "an_plus_b",
263
+ "pseudo",
264
+ "attribute_id",
265
+ "eql_incl_dash",
266
+ "negation_arg" ]
267
+
268
+ Racc_debug_parser = false
269
+
270
+ ##### State transition tables end #####
271
+
272
+ # reduce 0 omitted
273
+
274
+ def _reduce_1(val, _values, result)
275
+ result = [val.first, val.last].flatten
276
+
277
+ result
278
+ end
279
+
280
+ def _reduce_2(val, _values, result)
281
+ result = val.flatten
282
+ result
283
+ end
284
+
285
+ def _reduce_3(val, _values, result)
286
+ result = :DIRECT_ADJACENT_SELECTOR
287
+ result
288
+ end
289
+
290
+ def _reduce_4(val, _values, result)
291
+ result = :CHILD_SELECTOR
292
+ result
293
+ end
294
+
295
+ def _reduce_5(val, _values, result)
296
+ result = :PRECEDING_SELECTOR
297
+ result
298
+ end
299
+
300
+ def _reduce_6(val, _values, result)
301
+ result = :DESCENDANT_SELECTOR
302
+ result
303
+ end
304
+
305
+ def _reduce_7(val, _values, result)
306
+ result = :DESCENDANT_SELECTOR
307
+ result
308
+ end
309
+
310
+ def _reduce_8(val, _values, result)
311
+ result = :CHILD_SELECTOR
312
+ result
313
+ end
314
+
315
+ def _reduce_9(val, _values, result)
316
+ result = if val[1].nil?
317
+ val.first
318
+ else
319
+ Node.new(:CONDITIONAL_SELECTOR, [val.first, val[1]])
320
+ end
321
+
322
+ result
323
+ end
324
+
325
+ def _reduce_10(val, _values, result)
326
+ result = Node.new(:CONDITIONAL_SELECTOR,
327
+ [
328
+ val.first,
329
+ Node.new(:COMBINATOR, [val[1], val.last])
330
+ ]
331
+ )
332
+
333
+ result
334
+ end
335
+
336
+ def _reduce_11(val, _values, result)
337
+ result = Node.new(:CONDITIONAL_SELECTOR, val)
338
+
339
+ result
340
+ end
341
+
342
+ # reduce 12 omitted
343
+
344
+ def _reduce_13(val, _values, result)
345
+ result = Node.new(:CONDITIONAL_SELECTOR, val)
346
+
347
+ result
348
+ end
349
+
350
+ def _reduce_14(val, _values, result)
351
+ result = Node.new(:CONDITIONAL_SELECTOR,
352
+ [
353
+ Node.new(:ELEMENT_NAME, ['*']),
354
+ Node.new(:COMBINATOR, val)
355
+ ]
356
+ )
357
+
358
+ result
359
+ end
360
+
361
+ def _reduce_15(val, _values, result)
362
+ result = Node.new(:CONDITIONAL_SELECTOR,
363
+ [Node.new(:ELEMENT_NAME, ['*']), val.first]
364
+ )
365
+
366
+ result
367
+ end
368
+
369
+ def _reduce_16(val, _values, result)
370
+ result = Node.new(val[1], [val.first, val.last])
371
+
372
+ result
373
+ end
374
+
375
+ # reduce 17 omitted
376
+
377
+ def _reduce_18(val, _values, result)
378
+ result = Node.new(:CLASS_CONDITION, [val[1]])
379
+ result
380
+ end
381
+
382
+ def _reduce_19(val, _values, result)
383
+ result = Node.new(:ELEMENT_NAME,
384
+ [[val.first, val.last].compact.join(':')]
385
+ )
386
+
387
+ result
388
+ end
389
+
390
+ def _reduce_20(val, _values, result)
391
+ name = @namespaces.key?('xmlns') ? "xmlns:#{val.first}" : val.first
392
+ result = Node.new(:ELEMENT_NAME, [name])
393
+
394
+ result
395
+ end
396
+
397
+ def _reduce_21(val, _values, result)
398
+ result = Node.new(:ELEMENT_NAME, val)
399
+ result
400
+ end
401
+
402
+ def _reduce_22(val, _values, result)
403
+ result = val[0]
404
+ result
405
+ end
406
+
407
+ # reduce 23 omitted
408
+
409
+ def _reduce_24(val, _values, result)
410
+ result = Node.new(:ATTRIBUTE_CONDITION,
411
+ [Node.new(:ELEMENT_NAME, [val[1]])] + (val[2] || [])
412
+ )
413
+
414
+ result
415
+ end
416
+
417
+ def _reduce_25(val, _values, result)
418
+ result = Node.new(:ATTRIBUTE_CONDITION,
419
+ [val[1]] + (val[2] || [])
420
+ )
421
+
422
+ result
423
+ end
424
+
425
+ def _reduce_26(val, _values, result)
426
+ # Non standard, but hpricot supports it.
427
+ result = Node.new(:PSEUDO_CLASS,
428
+ [Node.new(:FUNCTION, ['nth-child(', val[1]])]
429
+ )
430
+
431
+ result
432
+ end
433
+
434
+ def _reduce_27(val, _values, result)
435
+ result = Node.new(:FUNCTION, [val.first.strip])
436
+
437
+ result
438
+ end
439
+
440
+ def _reduce_28(val, _values, result)
441
+ result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
442
+
443
+ result
444
+ end
445
+
446
+ def _reduce_29(val, _values, result)
447
+ result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
448
+
449
+ result
450
+ end
451
+
452
+ def _reduce_30(val, _values, result)
453
+ result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
454
+
455
+ result
456
+ end
457
+
458
+ def _reduce_31(val, _values, result)
459
+ result = [val.first, val.last]
460
+ result
461
+ end
462
+
463
+ def _reduce_32(val, _values, result)
464
+ result = [val.first, val.last]
465
+ result
466
+ end
467
+
468
+ def _reduce_33(val, _values, result)
469
+ result = [val.first, val.last]
470
+ result
471
+ end
472
+
473
+ # reduce 34 omitted
474
+
475
+ # reduce 35 omitted
476
+
477
+ def _reduce_36(val, _values, result)
478
+ if val[0] == 'even'
479
+ val = ["2","n","+","0"]
480
+ result = Node.new(:AN_PLUS_B, val)
481
+ elsif val[0] == 'odd'
482
+ val = ["2","n","+","1"]
483
+ result = Node.new(:AN_PLUS_B, val)
484
+ else
485
+ # This is not CSS standard. It allows us to support this:
486
+ # assert_xpath("//a[foo(., @href)]", @parser.parse('a:foo(@href)'))
487
+ # assert_xpath("//a[foo(., @a, b)]", @parser.parse('a:foo(@a, b)'))
488
+ # assert_xpath("//a[foo(., a, 10)]", @parser.parse('a:foo(a, 10)'))
489
+ result = val
490
+ end
491
+
492
+ result
493
+ end
494
+
495
+ def _reduce_37(val, _values, result)
496
+ if val[1] == 'n'
497
+ result = Node.new(:AN_PLUS_B, val)
498
+ else
499
+ raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
500
+ end
501
+
502
+ result
503
+ end
504
+
505
+ def _reduce_38(val, _values, result)
506
+ # n+3, -n+3
507
+ if val[0] == 'n'
508
+ val.unshift("1")
509
+ result = Node.new(:AN_PLUS_B, val)
510
+ elsif val[0] == '-n'
511
+ val[0] = 'n'
512
+ val.unshift("-1")
513
+ result = Node.new(:AN_PLUS_B, val)
514
+ else
515
+ raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
516
+ end
517
+
518
+ result
519
+ end
520
+
521
+ def _reduce_39(val, _values, result)
522
+ if val[1] == 'n'
523
+ val << "+"
524
+ val << "0"
525
+ result = Node.new(:AN_PLUS_B, val)
526
+ else
527
+ raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
528
+ end
529
+
530
+ result
531
+ end
532
+
533
+ def _reduce_40(val, _values, result)
534
+ result = Node.new(:PSEUDO_CLASS, [val[1]])
535
+
536
+ result
537
+ end
538
+
539
+ def _reduce_41(val, _values, result)
540
+ result = Node.new(:PSEUDO_CLASS, [val[1]])
541
+ result
542
+ end
543
+
544
+ # reduce 42 omitted
545
+
546
+ # reduce 43 omitted
547
+
548
+ def _reduce_44(val, _values, result)
549
+ result = Node.new(:COMBINATOR, val)
550
+
551
+ result
552
+ end
553
+
554
+ def _reduce_45(val, _values, result)
555
+ result = Node.new(:COMBINATOR, val)
556
+
557
+ result
558
+ end
559
+
560
+ def _reduce_46(val, _values, result)
561
+ result = Node.new(:COMBINATOR, val)
562
+
563
+ result
564
+ end
565
+
566
+ def _reduce_47(val, _values, result)
567
+ result = Node.new(:COMBINATOR, val)
568
+
569
+ result
570
+ end
571
+
572
+ # reduce 48 omitted
573
+
574
+ # reduce 49 omitted
575
+
576
+ # reduce 50 omitted
577
+
578
+ # reduce 51 omitted
579
+
580
+ def _reduce_52(val, _values, result)
581
+ result = Node.new(:ID, val)
582
+ result
583
+ end
584
+
585
+ def _reduce_53(val, _values, result)
586
+ result = [val.first, val[1]]
587
+ result
588
+ end
589
+
590
+ def _reduce_54(val, _values, result)
591
+ result = [val.first, val[1]]
592
+ result
593
+ end
594
+
595
+ # reduce 55 omitted
596
+
597
+ def _reduce_56(val, _values, result)
598
+ result = :equal
599
+ result
600
+ end
601
+
602
+ def _reduce_57(val, _values, result)
603
+ result = :prefix_match
604
+ result
605
+ end
606
+
607
+ def _reduce_58(val, _values, result)
608
+ result = :suffix_match
609
+ result
610
+ end
611
+
612
+ def _reduce_59(val, _values, result)
613
+ result = :substring_match
614
+ result
615
+ end
616
+
617
+ def _reduce_60(val, _values, result)
618
+ result = :not_equal
619
+ result
620
+ end
621
+
622
+ def _reduce_61(val, _values, result)
623
+ result = :includes
624
+ result
625
+ end
626
+
627
+ def _reduce_62(val, _values, result)
628
+ result = :dash_match
629
+ result
630
+ end
631
+
632
+ def _reduce_63(val, _values, result)
633
+ result = Node.new(:NOT, [val[1]])
634
+
635
+ result
636
+ end
637
+
638
+ # reduce 64 omitted
639
+
640
+ def _reduce_none(val, _values, result)
641
+ val[0]
642
+ end
643
+
644
+ end # class GeneratedParser
645
+ end # module CSS
646
+ end # module Nokogiri