cocoa-xml 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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