mediacloth 0.0.3 → 0.5

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 (115) hide show
  1. data/README.md +36 -0
  2. data/lib/mediacloth/mediawikiast.rb +58 -1
  3. data/lib/mediacloth/mediawikihtmlgenerator.rb +229 -73
  4. data/lib/mediacloth/mediawikilexer.rb +1030 -656
  5. data/lib/mediacloth/mediawikilinkhandler.rb +89 -0
  6. data/lib/mediacloth/mediawikiparams.rb +1 -10
  7. data/lib/mediacloth/mediawikiparser.rb +939 -409
  8. data/lib/mediacloth/mediawikiparser.tab.rb +1357 -0
  9. data/lib/mediacloth/mediawikiparser.y +256 -52
  10. data/lib/mediacloth/mediawikisignedwikigenerator.rb +42 -0
  11. data/lib/mediacloth/mediawikitemplatehandler.rb +8 -0
  12. data/lib/mediacloth/mediawikiwalker.rb +72 -1
  13. data/lib/mediacloth.rb +33 -10
  14. data/test/data/ast1 +68 -0
  15. data/test/data/ast10 +196 -0
  16. data/test/data/ast11 +34 -0
  17. data/test/data/ast12 +39 -0
  18. data/test/data/ast13 +25 -0
  19. data/test/data/ast14 +13 -0
  20. data/test/data/ast15 +25 -0
  21. data/test/data/ast16 +17 -0
  22. data/test/data/ast17 +9 -0
  23. data/test/data/ast18 +21 -0
  24. data/test/data/ast19 +32 -0
  25. data/test/data/ast2 +4 -0
  26. data/test/data/ast20 +10 -0
  27. data/test/data/ast21 +27 -0
  28. data/test/data/ast22 +22 -0
  29. data/test/data/ast23 +5 -0
  30. data/test/data/ast3 +6 -0
  31. data/test/data/ast4 +122 -0
  32. data/test/data/ast5 +122 -0
  33. data/test/data/ast6 +22 -0
  34. data/test/data/ast7 +143 -0
  35. data/test/data/ast8 +3 -0
  36. data/test/data/ast9 +11 -0
  37. data/test/data/html1 +33 -5
  38. data/test/data/html10 +31 -27
  39. data/test/data/html11 +19 -0
  40. data/test/data/html12 +32 -0
  41. data/test/data/html13 +29 -0
  42. data/test/data/html14 +4 -0
  43. data/test/data/html15 +29 -0
  44. data/test/data/html16 +28 -0
  45. data/test/data/html17 +10 -0
  46. data/test/data/html18 +8 -0
  47. data/test/data/html19 +27 -0
  48. data/test/data/html2 +1 -1
  49. data/test/data/html20 +7 -0
  50. data/test/data/html21 +5 -0
  51. data/test/data/html22 +24 -0
  52. data/test/data/html23 +7 -0
  53. data/test/data/html3 +1 -1
  54. data/test/data/html4 +60 -11
  55. data/test/data/html5 +45 -6
  56. data/test/data/html6 +5 -5
  57. data/test/data/html7 +59 -1
  58. data/test/data/html8 +1 -1
  59. data/test/data/html9 +10 -2
  60. data/test/data/input1 +4 -0
  61. data/test/data/input11 +19 -0
  62. data/test/data/input12 +32 -0
  63. data/test/data/input13 +10 -0
  64. data/test/data/input14 +8 -0
  65. data/test/data/input15 +10 -0
  66. data/test/data/input16 +28 -0
  67. data/test/data/input17 +10 -0
  68. data/test/data/input18 +16 -0
  69. data/test/data/input19 +29 -0
  70. data/test/data/input20 +8 -0
  71. data/test/data/input21 +18 -0
  72. data/test/data/input22 +20 -0
  73. data/test/data/input23 +8 -0
  74. data/test/data/input4 +13 -1
  75. data/test/data/input5 +45 -4
  76. data/test/data/input7 +25 -1
  77. data/test/data/lex1 +17 -18
  78. data/test/data/lex10 +57 -87
  79. data/test/data/lex11 +18 -0
  80. data/test/data/lex12 +32 -0
  81. data/test/data/lex13 +3 -0
  82. data/test/data/lex14 +1 -0
  83. data/test/data/lex15 +3 -0
  84. data/test/data/lex16 +27 -0
  85. data/test/data/lex17 +9 -0
  86. data/test/data/lex18 +4 -0
  87. data/test/data/lex19 +27 -0
  88. data/test/data/lex2 +2 -2
  89. data/test/data/lex20 +7 -0
  90. data/test/data/lex21 +4 -0
  91. data/test/data/lex22 +3 -0
  92. data/test/data/lex23 +7 -0
  93. data/test/data/lex3 +1 -1
  94. data/test/data/lex4 +35 -29
  95. data/test/data/lex5 +57 -18
  96. data/test/data/lex6 +7 -7
  97. data/test/data/lex7 +42 -18
  98. data/test/data/lex8 +1 -1
  99. data/test/data/lex9 +6 -6
  100. data/test/dataproducers/ast.rb +24 -0
  101. data/test/dataproducers/html.rb +11 -12
  102. data/test/dataproducers/lex.rb +9 -4
  103. data/test/debugwalker.rb +25 -11
  104. data/test/htmlgenerator.rb +170 -13
  105. data/test/lexer.rb +626 -83
  106. data/test/linkhandler.rb +39 -0
  107. data/test/parser.rb +176 -9
  108. data/test/signedwikigenerator.rb +113 -0
  109. metadata +158 -79
  110. data/README +0 -37
  111. data/lib/mediacloth/mediawikilexer.rb~ +0 -491
  112. data/lib/mediacloth/mediawikiparser.y~ +0 -210
  113. data/test/data/result1 +0 -48
  114. data/test/dataproducers/html.rb~ +0 -24
  115. data/test/dataproducers/lex.rb~ +0 -15
@@ -12,12 +12,14 @@ require 'mediacloth/mediawikiast'
12
12
 
13
13
  class MediaWikiParser < Racc::Parser
14
14
 
15
- module_eval <<'..end mediawikiparser.y modeval..id2fa3e0400b', 'mediawikiparser.y', 354
15
+ module_eval <<'..end mediawikiparser.y modeval..idbd32b73581', 'mediawikiparser.y', 542
16
16
 
17
17
  attr_accessor :lexer
18
18
 
19
19
  def initialize
20
20
  @nodes = []
21
+ @context = []
22
+ @wiki_ast_length = 0
21
23
  super
22
24
  end
23
25
 
@@ -31,293 +33,541 @@ end
31
33
 
32
34
  #Asks the lexer to return the next token.
33
35
  def next_token
34
- return @lexer.lex
36
+ token = @lexer.lex
37
+ if token[0].to_s.upcase.include? "_START"
38
+ @context << token[2..3]
39
+ elsif token[0].to_s.upcase.include? "_END"
40
+ @ast_index = @context.last[0]
41
+ @ast_length = token[2] + token[3] - @context.last[0]
42
+ @context.pop
43
+ else
44
+ @ast_index = token[2]
45
+ @ast_length = token[3]
46
+ end
47
+
48
+ @wiki_ast_length += token[3]
49
+
50
+ return token[0..1]
35
51
  end
36
- ..end mediawikiparser.y modeval..id2fa3e0400b
52
+ ..end mediawikiparser.y modeval..idbd32b73581
37
53
 
38
54
  ##### racc 1.4.5 generates ###
39
55
 
40
56
  racc_reduce_table = [
41
57
  0, 0, :racc_error,
42
- 1, 38, :_reduce_1,
43
- 1, 40, :_reduce_2,
44
- 1, 40, :_reduce_3,
45
- 1, 40, :_reduce_4,
46
- 1, 40, :_reduce_5,
47
- 1, 40, :_reduce_6,
48
- 3, 40, :_reduce_7,
49
- 3, 40, :_reduce_8,
50
- 6, 40, :_reduce_9,
51
- 4, 40, :_reduce_10,
52
- 1, 40, :_reduce_none,
53
- 0, 46, :_reduce_12,
54
- 1, 46, :_reduce_13,
55
- 1, 47, :_reduce_14,
56
- 3, 47, :_reduce_15,
57
- 1, 51, :_reduce_16,
58
- 3, 51, :_reduce_17,
59
- 0, 49, :_reduce_18,
60
- 2, 49, :_reduce_19,
61
- 0, 48, :_reduce_20,
62
- 2, 48, :_reduce_21,
63
- 3, 48, :_reduce_22,
64
- 1, 39, :_reduce_23,
65
- 2, 39, :_reduce_24,
66
- 1, 41, :_reduce_25,
67
- 1, 41, :_reduce_26,
68
- 3, 50, :_reduce_27,
69
- 4, 50, :_reduce_28,
70
- 0, 54, :_reduce_29,
71
- 4, 54, :_reduce_30,
72
- 5, 54, :_reduce_31,
73
- 0, 55, :_reduce_32,
74
- 3, 55, :_reduce_33,
75
- 4, 55, :_reduce_34,
76
- 3, 55, :_reduce_35,
77
- 4, 55, :_reduce_36,
78
- 1, 52, :_reduce_37,
79
- 1, 52, :_reduce_38,
80
- 1, 52, :_reduce_39,
81
- 1, 52, :_reduce_40,
82
- 1, 52, :_reduce_41,
83
- 2, 53, :_reduce_42,
84
- 2, 53, :_reduce_43,
85
- 3, 53, :_reduce_44,
86
- 3, 53, :_reduce_45,
87
- 4, 42, :_reduce_46,
88
- 4, 43, :_reduce_47,
89
- 0, 58, :_reduce_48,
90
- 3, 57, :_reduce_49,
91
- 0, 57, :_reduce_50,
92
- 2, 56, :_reduce_51,
93
- 3, 56, :_reduce_52,
94
- 1, 44, :_reduce_53,
95
- 3, 45, :_reduce_54 ]
96
-
97
- racc_reduce_n = 55
98
-
99
- racc_shift_n = 100
58
+ 1, 58, :_reduce_1,
59
+ 1, 60, :_reduce_2,
60
+ 1, 60, :_reduce_3,
61
+ 1, 60, :_reduce_4,
62
+ 1, 60, :_reduce_5,
63
+ 1, 60, :_reduce_6,
64
+ 1, 60, :_reduce_7,
65
+ 1, 60, :_reduce_8,
66
+ 1, 60, :_reduce_9,
67
+ 1, 60, :_reduce_10,
68
+ 3, 60, :_reduce_11,
69
+ 3, 60, :_reduce_12,
70
+ 3, 60, :_reduce_13,
71
+ 6, 60, :_reduce_14,
72
+ 4, 60, :_reduce_15,
73
+ 5, 60, :_reduce_16,
74
+ 6, 60, :_reduce_17,
75
+ 1, 60, :_reduce_none,
76
+ 0, 69, :_reduce_19,
77
+ 1, 69, :_reduce_20,
78
+ 3, 67, :_reduce_21,
79
+ 4, 67, :_reduce_22,
80
+ 0, 75, :_reduce_23,
81
+ 2, 75, :_reduce_24,
82
+ 3, 75, :_reduce_25,
83
+ 1, 70, :_reduce_26,
84
+ 3, 70, :_reduce_27,
85
+ 1, 76, :_reduce_28,
86
+ 3, 76, :_reduce_29,
87
+ 0, 72, :_reduce_30,
88
+ 2, 72, :_reduce_31,
89
+ 0, 73, :_reduce_32,
90
+ 2, 73, :_reduce_33,
91
+ 0, 71, :_reduce_34,
92
+ 2, 71, :_reduce_35,
93
+ 3, 71, :_reduce_36,
94
+ 1, 59, :_reduce_37,
95
+ 2, 59, :_reduce_38,
96
+ 1, 61, :_reduce_39,
97
+ 1, 61, :_reduce_40,
98
+ 3, 74, :_reduce_41,
99
+ 4, 74, :_reduce_42,
100
+ 0, 79, :_reduce_43,
101
+ 4, 79, :_reduce_44,
102
+ 5, 79, :_reduce_45,
103
+ 0, 80, :_reduce_46,
104
+ 3, 80, :_reduce_47,
105
+ 4, 80, :_reduce_48,
106
+ 3, 80, :_reduce_49,
107
+ 4, 80, :_reduce_50,
108
+ 1, 77, :_reduce_51,
109
+ 1, 77, :_reduce_52,
110
+ 1, 77, :_reduce_53,
111
+ 1, 77, :_reduce_54,
112
+ 1, 77, :_reduce_55,
113
+ 1, 77, :_reduce_56,
114
+ 2, 78, :_reduce_57,
115
+ 2, 78, :_reduce_58,
116
+ 3, 78, :_reduce_59,
117
+ 3, 78, :_reduce_60,
118
+ 4, 62, :_reduce_61,
119
+ 4, 63, :_reduce_62,
120
+ 0, 83, :_reduce_63,
121
+ 3, 82, :_reduce_64,
122
+ 0, 82, :_reduce_65,
123
+ 2, 81, :_reduce_66,
124
+ 3, 81, :_reduce_67,
125
+ 4, 64, :_reduce_68,
126
+ 3, 64, :_reduce_69,
127
+ 2, 84, :_reduce_70,
128
+ 3, 84, :_reduce_71,
129
+ 2, 85, :_reduce_72,
130
+ 0, 85, :_reduce_73,
131
+ 2, 86, :_reduce_74,
132
+ 3, 86, :_reduce_75,
133
+ 3, 65, :_reduce_76,
134
+ 3, 65, :_reduce_77,
135
+ 3, 66, :_reduce_78,
136
+ 4, 68, :_reduce_79,
137
+ 0, 87, :_reduce_80,
138
+ 3, 87, :_reduce_81,
139
+ 3, 87, :_reduce_82 ]
140
+
141
+ racc_reduce_n = 83
142
+
143
+ racc_shift_n = 158
100
144
 
101
145
  racc_action_table = [
102
- 4, 57, 7, 54, 14, -48, 36, 23, 57, 72,
103
- 54, 3, 32, 8, 9, 12, 16, 18, 21, 25,
104
- 37, 62, 63, 6, 4, 10, 7, 57, 14, 54,
105
- 56, 23, 57, 5, 54, 3, 37, 8, 9, 12,
106
- 16, 18, 21, 25, -50, 47, 57, 6, 54, 10,
107
- 79, 4, 28, 7, 57, 14, 54, 5, 23, 80,
108
- 81, 69, 3, 58, 8, 9, 12, 16, 18, 21,
109
- 25, 32, 37, 86, 6, 4, 10, 7, 43, 14,
110
- 59, 41, 23, 39, 5, 90, 3, -50, 8, 9,
111
- 12, 16, 18, 21, 25, 37, 60, 61, 6, 32,
112
- 10, 98, 4, 67, 7, nil, 14, nil, 5, 23,
113
- nil, 90, nil, 3, nil, 8, 9, 12, 16, 18,
114
- 21, 25, nil, nil, nil, 6, 4, 10, 7, 34,
115
- 14, nil, nil, 23, nil, 5, nil, 3, nil, 8,
116
- 9, 12, 16, 18, 21, 25, nil, nil, nil, 6,
117
- 4, 10, 7, nil, 14, nil, nil, 23, nil, 5,
118
- nil, 3, nil, 8, 9, 12, 16, 18, 21, 25,
119
- nil, nil, nil, 6, 4, 10, 7, nil, 14, nil,
120
- nil, 23, nil, 5, nil, 3, nil, 8, 9, 12,
121
- 16, 18, 21, 25, nil, nil, nil, 6, 4, 10,
122
- 7, nil, 14, nil, 89, 23, nil, 5, nil, 3,
123
- nil, 8, 9, 12, 16, 18, 21, 25, nil, nil,
124
- nil, 6, 4, 10, 7, nil, 14, nil, nil, 23,
125
- nil, 5, nil, 3, nil, 8, 9, 12, 16, 18,
126
- 21, 25, nil, nil, nil, 6, 4, 10, 7, nil,
127
- 14, nil, nil, 23, nil, 5, nil, 3, nil, 8,
128
- 9, 12, 16, 18, 21, 25, nil, nil, nil, 6,
129
- 4, 10, 7, nil, 14, nil, 87, 23, nil, 5,
130
- nil, 3, nil, 8, 9, 12, 16, 18, 21, 25,
131
- nil, nil, nil, 6, 4, 10, 7, nil, 14, nil,
132
- nil, 23, 84, 5, nil, 3, 45, 8, 9, 12,
133
- 16, 18, 21, 25, nil, nil, nil, 6, nil, 10,
134
- nil, 4, 46, 7, nil, 14, nil, 5, 23, nil,
135
- nil, nil, 3, nil, 8, 9, 12, 16, 18, 21,
136
- 25, nil, nil, nil, 6, 4, 10, 7, nil, 14,
137
- nil, nil, 23, nil, 5, nil, 3, nil, 8, 9,
138
- 12, 16, 18, 21, 25, nil, nil, nil, 6, 4,
139
- 10, 7, nil, 14, nil, nil, 23, nil, 5, nil,
140
- 3, nil, 8, 9, 12, 16, 18, 21, 25, nil,
141
- nil, nil, 6, 4, 10, 7, nil, 14, nil, nil,
142
- 23, nil, 5, nil, 3, nil, 8, 9, 12, 16,
143
- 18, 21, 25, nil, nil, 48, 6, 4, 10, 7,
144
- nil, 14, nil, nil, 23, nil, 5, nil, 3, nil,
145
- 8, 9, 12, 16, 18, 21, 25, nil, nil, nil,
146
- 6, 4, 10, 7, 52, 14, nil, nil, 23, nil,
147
- 5, nil, 3, nil, 8, 9, 12, 16, 18, 21,
148
- 25, nil, nil, nil, 6, 4, 10, 7, nil, 14,
149
- nil, nil, 23, nil, 5, nil, 3, nil, 8, 9,
150
- 12, 16, 18, 21, 25, nil, nil, nil, 6, 4,
151
- 10, 7, nil, 14, nil, 75, 23, nil, 5, nil,
152
- 3, nil, 8, 9, 12, 16, 18, 21, 25, nil,
153
- nil, nil, 6, 4, 10, 7, nil, 14, nil, nil,
154
- 23, 70, 5, nil, 3, nil, 8, 9, 12, 16,
155
- 18, 21, 25, nil, nil, 66, 6, nil, 10, nil,
156
- 4, nil, 7, nil, 14, nil, 5, 23, nil, 90,
157
- nil, 3, nil, 8, 9, 12, 16, 18, 21, 25,
158
- nil, nil, nil, 6, nil, 10, nil, nil, nil, nil,
159
- nil, nil, nil, 5 ]
146
+ 10, 12, 63, 19, 97, 25, 99, 119, 35, 97,
147
+ 127, 99, 13, 16, 97, 21, 99, 29, 77, 33,
148
+ 2, 6, 9, 14, 97, 18, 99, 24, 66, 109,
149
+ 96, 1, 97, 37, 99, 38, 110, 22, 51, 65,
150
+ 75, 34, 103, 104, 55, 62, 55, 86, 38, 26,
151
+ 28, 10, 12, 4, 19, 115, 25, 28, 73, 35,
152
+ 106, 145, 120, 13, 16, 102, 21, 38, 29, 124,
153
+ 33, 2, 6, 9, 14, 97, 18, 99, 24, 101,
154
+ 67, 78, 1, 128, 62, 130, 131, 60, 22, -63,
155
+ 10, 12, 34, 19, 58, 25, 93, 93, 35, 138,
156
+ 26, 28, 13, 16, 4, 21, -65, 29, 51, 33,
157
+ 2, 6, 9, 14, 62, 18, 55, 24, 93, 103,
158
+ 51, 1, 145, 147, 148, 47, 62, 22, 92, 91,
159
+ 153, 34, -65, 10, 12, 44, 19, 156, 25, 26,
160
+ 28, 35, 132, 4, nil, 13, 16, nil, 21, nil,
161
+ 29, nil, 33, 2, 6, 9, 14, nil, 18, nil,
162
+ 24, nil, nil, nil, 1, nil, nil, nil, nil, nil,
163
+ 22, nil, 10, 12, 34, 19, nil, 25, nil, nil,
164
+ 35, nil, 26, 28, 13, 16, 4, 21, nil, 29,
165
+ nil, 33, 2, 6, 9, 14, nil, 18, nil, 24,
166
+ nil, nil, nil, 1, nil, nil, nil, nil, nil, 22,
167
+ nil, 10, 12, 34, 19, nil, 25, nil, nil, 35,
168
+ nil, 26, 28, 13, 16, 4, 21, nil, 29, nil,
169
+ 33, 2, 6, 9, 14, nil, 18, nil, 24, nil,
170
+ nil, nil, 1, nil, nil, nil, nil, nil, 22, nil,
171
+ 10, 12, 34, 19, nil, 25, nil, nil, 35, nil,
172
+ 26, 28, 13, 16, 4, 21, nil, 29, nil, 33,
173
+ 2, 6, 9, 14, nil, 18, nil, 24, nil, nil,
174
+ nil, 1, nil, nil, nil, nil, nil, 22, nil, 10,
175
+ 12, 34, 19, nil, 25, nil, nil, 35, nil, 26,
176
+ 28, 13, 16, 4, 21, nil, 29, nil, 33, 2,
177
+ 6, 9, 14, nil, 18, nil, 24, nil, nil, nil,
178
+ 1, nil, nil, nil, nil, nil, 22, nil, 10, 12,
179
+ 34, 19, nil, 25, nil, nil, 35, nil, 26, 28,
180
+ 13, 16, 4, 21, nil, 29, nil, 33, 2, 6,
181
+ 9, 14, nil, 18, nil, 24, nil, nil, nil, 1,
182
+ nil, nil, nil, nil, nil, 22, nil, 10, 12, 34,
183
+ 19, 53, 25, nil, nil, 35, nil, 26, 28, 13,
184
+ 16, 4, 21, nil, 29, nil, 33, 2, 6, 9,
185
+ 14, nil, 18, nil, 24, nil, nil, nil, 1, nil,
186
+ nil, nil, nil, nil, 22, nil, 10, 12, 34, 19,
187
+ nil, 25, nil, nil, 35, nil, 26, 28, 13, 16,
188
+ 4, 21, nil, 29, nil, 33, 2, 6, 9, 14,
189
+ nil, 18, nil, 24, nil, nil, nil, 1, nil, nil,
190
+ nil, nil, nil, 22, nil, 10, 12, 34, 19, nil,
191
+ 25, nil, nil, 35, nil, 26, 28, 13, 16, 4,
192
+ 21, nil, 29, nil, 33, 2, 6, 9, 14, nil,
193
+ 18, nil, 24, nil, nil, nil, 1, nil, nil, nil,
194
+ nil, nil, 22, nil, 10, 12, 34, 19, nil, 25,
195
+ nil, nil, 35, 142, 26, 28, 13, 16, 4, 21,
196
+ nil, 29, nil, 33, 2, 6, 9, 14, nil, 18,
197
+ nil, 24, nil, nil, nil, 1, nil, nil, nil, nil,
198
+ nil, 22, nil, nil, nil, 34, nil, nil, nil, nil,
199
+ 140, nil, nil, 26, 28, 10, 12, 4, 19, nil,
200
+ 25, nil, 135, 35, nil, nil, nil, 13, 16, nil,
201
+ 21, nil, 29, nil, 33, 2, 6, 9, 14, nil,
202
+ 18, nil, 24, nil, nil, nil, 1, nil, nil, nil,
203
+ nil, nil, 22, nil, 10, 12, 34, 19, nil, 25,
204
+ nil, nil, 35, nil, 26, 28, 13, 16, 4, 21,
205
+ nil, 29, nil, 33, 2, 6, 9, 14, nil, 18,
206
+ nil, 24, nil, nil, nil, 1, nil, nil, nil, nil,
207
+ nil, 22, 89, 10, 12, 34, 19, nil, 25, nil,
208
+ nil, 35, nil, 26, 28, 13, 16, 4, 21, nil,
209
+ 29, nil, 33, 2, 6, 9, 14, nil, 18, nil,
210
+ 24, nil, nil, nil, 1, nil, nil, nil, nil, nil,
211
+ 22, nil, 10, 12, 34, 19, nil, 25, nil, nil,
212
+ 35, nil, 26, 28, 13, 16, 4, 21, nil, 29,
213
+ nil, 33, 2, 6, 9, 14, nil, 18, nil, 24,
214
+ nil, nil, nil, 1, nil, nil, nil, nil, nil, 22,
215
+ nil, 10, 12, 34, 19, nil, 25, nil, nil, 35,
216
+ nil, 26, 28, 13, 16, 4, 21, nil, 29, nil,
217
+ 33, 2, 6, 9, 14, nil, 18, nil, 24, nil,
218
+ nil, nil, 1, nil, nil, nil, nil, nil, 22, nil,
219
+ 10, 12, 34, 19, nil, 25, nil, nil, 35, 126,
220
+ 26, 28, 13, 16, 4, 21, nil, 29, nil, 33,
221
+ 2, 6, 9, 14, nil, 18, nil, 24, nil, nil,
222
+ nil, 1, nil, nil, 68, nil, nil, 22, nil, 10,
223
+ 12, 34, 19, nil, 25, nil, nil, 35, nil, 26,
224
+ 28, 13, 16, 4, 21, nil, 29, nil, 33, 2,
225
+ 6, 9, 14, nil, 18, nil, 24, nil, nil, nil,
226
+ 1, nil, nil, nil, nil, 71, 22, nil, 10, 12,
227
+ 34, 19, nil, 25, nil, nil, 35, nil, 26, 28,
228
+ 13, 16, 4, 21, nil, 29, nil, 33, 2, 6,
229
+ 9, 14, nil, 18, nil, 24, nil, nil, nil, 1,
230
+ nil, nil, nil, nil, nil, 22, nil, 10, 12, 34,
231
+ 19, nil, 25, nil, 122, 35, nil, 26, 28, 13,
232
+ 16, 4, 21, nil, 29, nil, 33, 2, 6, 9,
233
+ 14, nil, 18, nil, 24, nil, nil, nil, 1, nil,
234
+ nil, nil, nil, nil, 22, nil, 10, 12, 34, 19,
235
+ nil, 25, nil, nil, 35, nil, 26, 28, 13, 16,
236
+ 4, 21, nil, 29, nil, 33, 2, 6, 9, 14,
237
+ nil, 18, nil, 24, nil, nil, nil, 1, nil, nil,
238
+ nil, nil, nil, 22, 114, 10, 12, 34, 19, nil,
239
+ 25, nil, nil, 35, nil, 26, 28, 13, 16, 4,
240
+ 21, nil, 29, nil, 33, 2, 6, 9, 14, nil,
241
+ 18, nil, 24, nil, nil, 112, 1, nil, nil, nil,
242
+ nil, nil, 22, nil, 10, 12, 34, 19, nil, 25,
243
+ nil, nil, 35, nil, 26, 28, 13, 16, 4, 21,
244
+ nil, 29, nil, 33, 2, 6, 9, 14, nil, 18,
245
+ nil, 24, nil, nil, nil, 1, nil, nil, nil, nil,
246
+ nil, 22, nil, nil, nil, 34, nil, 10, 12, 76,
247
+ 19, nil, 25, 26, 28, 35, nil, 4, nil, 13,
248
+ 16, nil, 21, nil, 29, nil, 33, 2, 6, 9,
249
+ 14, nil, 18, nil, 24, nil, nil, nil, 1, nil,
250
+ nil, nil, nil, nil, 22, nil, 10, 12, 34, 19,
251
+ nil, 25, nil, nil, 35, nil, 26, 28, 13, 16,
252
+ 4, 21, nil, 29, nil, 33, 2, 6, 9, 14,
253
+ nil, 18, nil, 24, nil, nil, nil, 1, nil, nil,
254
+ nil, nil, 108, 22, nil, 10, 12, 34, 19, nil,
255
+ 25, nil, nil, 35, nil, 26, 28, 13, 16, 4,
256
+ 21, nil, 29, nil, 33, 2, 6, 9, 14, nil,
257
+ 18, nil, 24, nil, nil, nil, 1, nil, nil, 107,
258
+ nil, nil, 22, nil, nil, nil, 34, nil, 10, 12,
259
+ nil, 19, nil, 25, 26, 28, 35, nil, 4, nil,
260
+ 13, 16, 79, 21, nil, 29, nil, 33, 2, 6,
261
+ 9, 14, nil, 18, nil, 24, nil, nil, nil, 1,
262
+ nil, nil, nil, nil, nil, 22, nil, 10, 12, 34,
263
+ 19, nil, 25, nil, nil, 35, nil, 26, 28, 13,
264
+ 16, 4, 21, nil, 29, 95, 33, 2, 6, 9,
265
+ 14, nil, 18, nil, 24, nil, nil, nil, 1, nil,
266
+ nil, nil, nil, nil, 22, nil, 10, 12, 34, 19,
267
+ nil, 25, nil, nil, 35, nil, 26, 28, 13, 16,
268
+ 4, 21, nil, 29, nil, 33, 2, 6, 9, 14,
269
+ nil, 18, nil, 24, nil, nil, 83, 1, nil, nil,
270
+ nil, nil, nil, 22, nil, 10, 12, 34, 19, 84,
271
+ 25, nil, nil, 35, nil, 26, 28, 13, 16, 4,
272
+ 21, nil, 29, nil, 33, 2, 6, 9, 14, nil,
273
+ 18, nil, 24, nil, nil, nil, 1, nil, nil, nil,
274
+ nil, nil, 22, nil, 10, 12, 34, 19, nil, 25,
275
+ nil, nil, 35, nil, 26, 28, 13, 16, 4, 21,
276
+ 85, 29, nil, 33, 2, 6, 9, 14, nil, 18,
277
+ nil, 24, nil, nil, nil, 1, nil, nil, nil, nil,
278
+ nil, 22, nil, nil, nil, 34, nil, nil, nil, nil,
279
+ nil, nil, nil, 26, 28, 10, 12, 4, 19, nil,
280
+ 25, nil, nil, 35, nil, 145, nil, 13, 16, nil,
281
+ 21, nil, 29, nil, 33, 2, 6, 9, 14, nil,
282
+ 18, nil, 24, nil, nil, nil, 1, nil, nil, nil,
283
+ nil, nil, 22, nil, nil, nil, 34, nil, nil, nil,
284
+ nil, nil, nil, nil, 26, 28, nil, nil, 4 ]
160
285
 
161
286
  racc_action_check = [
162
- 0, 84, 0, 84, 0, 68, 10, 0, 87, 55,
163
- 87, 0, 51, 0, 0, 0, 0, 0, 0, 0,
164
- 10, 43, 43, 0, 3, 0, 3, 56, 3, 56,
165
- 37, 3, 70, 0, 70, 3, 36, 3, 3, 3,
166
- 3, 3, 3, 3, 33, 30, 37, 3, 37, 3,
167
- 63, 4, 4, 4, 75, 4, 75, 3, 4, 64,
168
- 65, 53, 4, 38, 4, 4, 4, 4, 4, 4,
169
- 4, 25, 72, 73, 4, 5, 4, 5, 23, 5,
170
- 39, 14, 5, 11, 4, 79, 5, 44, 5, 5,
171
- 5, 5, 5, 5, 5, 86, 40, 41, 5, 6,
172
- 5, 91, 90, 50, 90, nil, 90, nil, 5, 90,
173
- nil, 90, nil, 90, nil, 90, 90, 90, 90, 90,
174
- 90, 90, nil, nil, nil, 90, 7, 90, 7, 7,
175
- 7, nil, nil, 7, nil, 90, nil, 7, nil, 7,
176
- 7, 7, 7, 7, 7, 7, nil, nil, nil, 7,
177
- 89, 7, 89, nil, 89, nil, nil, 89, nil, 7,
178
- nil, 89, nil, 89, 89, 89, 89, 89, 89, 89,
179
- nil, nil, nil, 89, 78, 89, 78, nil, 78, nil,
180
- nil, 78, nil, 89, nil, 78, nil, 78, 78, 78,
181
- 78, 78, 78, 78, nil, nil, nil, 78, 76, 78,
182
- 76, nil, 76, nil, 76, 76, nil, 78, nil, 76,
183
- nil, 76, 76, 76, 76, 76, 76, 76, nil, nil,
184
- nil, 76, 15, 76, 15, nil, 15, nil, nil, 15,
185
- nil, 76, nil, 15, nil, 15, 15, 15, 15, 15,
186
- 15, 15, nil, nil, nil, 15, 74, 15, 74, nil,
187
- 74, nil, nil, 74, nil, 15, nil, 74, nil, 74,
188
- 74, 74, 74, 74, 74, 74, nil, nil, nil, 74,
189
- 71, 74, 71, nil, 71, nil, 74, 71, nil, 74,
190
- nil, 71, nil, 71, 71, 71, 71, 71, 71, 71,
191
- nil, nil, nil, 71, 27, 71, 27, nil, 27, nil,
192
- nil, 27, 71, 71, nil, 27, 27, 27, 27, 27,
193
- 27, 27, 27, 27, nil, nil, nil, 27, nil, 27,
194
- nil, 29, 29, 29, nil, 29, nil, 27, 29, nil,
195
- nil, nil, 29, nil, 29, 29, 29, 29, 29, 29,
196
- 29, nil, nil, nil, 29, 62, 29, 62, nil, 62,
197
- nil, nil, 62, nil, 29, nil, 62, nil, 62, 62,
198
- 62, 62, 62, 62, 62, nil, nil, nil, 62, 31,
199
- 62, 31, nil, 31, nil, nil, 31, nil, 62, nil,
200
- 31, nil, 31, 31, 31, 31, 31, 31, 31, nil,
201
- nil, nil, 31, 32, 31, 32, nil, 32, nil, nil,
202
- 32, nil, 31, nil, 32, nil, 32, 32, 32, 32,
203
- 32, 32, 32, nil, nil, 32, 32, 61, 32, 61,
204
- nil, 61, nil, nil, 61, nil, 32, nil, 61, nil,
205
- 61, 61, 61, 61, 61, 61, 61, nil, nil, nil,
206
- 61, 35, 61, 35, 35, 35, nil, nil, 35, nil,
207
- 61, nil, 35, nil, 35, 35, 35, 35, 35, 35,
208
- 35, nil, nil, nil, 35, 57, 35, 57, nil, 57,
209
- nil, nil, 57, nil, 35, nil, 57, nil, 57, 57,
210
- 57, 57, 57, 57, 57, nil, nil, nil, 57, 54,
211
- 57, 54, nil, 54, nil, 57, 54, nil, 57, nil,
212
- 54, nil, 54, 54, 54, 54, 54, 54, 54, nil,
213
- nil, nil, 54, 49, 54, 49, nil, 49, nil, nil,
214
- 49, 54, 54, nil, 49, nil, 49, 49, 49, 49,
215
- 49, 49, 49, nil, nil, 49, 49, nil, 49, nil,
216
- 97, nil, 97, nil, 97, nil, 49, 97, nil, 97,
217
- nil, 97, nil, 97, 97, 97, 97, 97, 97, 97,
218
- nil, nil, nil, 97, nil, 97, nil, nil, nil, nil,
219
- nil, nil, nil, 97 ]
287
+ 0, 0, 34, 0, 140, 0, 140, 93, 0, 122,
288
+ 100, 122, 0, 0, 142, 0, 142, 0, 46, 0,
289
+ 0, 0, 0, 0, 126, 0, 126, 0, 35, 72,
290
+ 62, 0, 96, 1, 96, 1, 80, 0, 81, 35,
291
+ 42, 0, 66, 66, 86, 34, 55, 55, 41, 0,
292
+ 0, 145, 145, 0, 145, 90, 145, 93, 40, 145,
293
+ 67, 145, 94, 145, 145, 65, 145, 39, 145, 98,
294
+ 145, 145, 145, 145, 145, 62, 145, 62, 145, 64,
295
+ 35, 47, 145, 102, 63, 104, 105, 28, 145, 111,
296
+ 4, 4, 145, 4, 25, 4, 118, 119, 4, 121,
297
+ 145, 145, 4, 4, 145, 4, 50, 4, 24, 4,
298
+ 4, 4, 4, 4, 124, 4, 22, 4, 60, 128,
299
+ 18, 4, 130, 132, 133, 15, 138, 4, 59, 58,
300
+ 144, 4, 57, 12, 12, 12, 12, 146, 12, 4,
301
+ 4, 12, 106, 4, nil, 12, 12, nil, 12, nil,
302
+ 12, nil, 12, 12, 12, 12, 12, nil, 12, nil,
303
+ 12, nil, nil, nil, 12, nil, nil, nil, nil, nil,
304
+ 12, nil, 14, 14, 12, 14, nil, 14, nil, nil,
305
+ 14, nil, 12, 12, 14, 14, 12, 14, nil, 14,
306
+ nil, 14, 14, 14, 14, 14, nil, 14, nil, 14,
307
+ nil, nil, nil, 14, nil, nil, nil, nil, nil, 14,
308
+ nil, 135, 135, 14, 135, nil, 135, nil, nil, 135,
309
+ nil, 14, 14, 135, 135, 14, 135, nil, 135, nil,
310
+ 135, 135, 135, 135, 135, nil, 135, nil, 135, nil,
311
+ nil, nil, 135, nil, nil, nil, nil, nil, 135, nil,
312
+ 16, 16, 135, 16, nil, 16, nil, nil, 16, nil,
313
+ 135, 135, 16, 16, 135, 16, nil, 16, nil, 16,
314
+ 16, 16, 16, 16, nil, 16, nil, 16, nil, nil,
315
+ nil, 16, nil, nil, nil, nil, nil, 16, nil, 17,
316
+ 17, 16, 17, nil, 17, nil, nil, 17, nil, 16,
317
+ 16, 17, 17, 16, 17, nil, 17, nil, 17, 17,
318
+ 17, 17, 17, nil, 17, nil, 17, nil, nil, nil,
319
+ 17, nil, nil, nil, nil, nil, 17, nil, 129, 129,
320
+ 17, 129, nil, 129, nil, nil, 129, nil, 17, 17,
321
+ 129, 129, 17, 129, nil, 129, nil, 129, 129, 129,
322
+ 129, 129, nil, 129, nil, 129, nil, nil, nil, 129,
323
+ nil, nil, nil, nil, nil, 129, nil, 19, 19, 129,
324
+ 19, 19, 19, nil, nil, 19, nil, 129, 129, 19,
325
+ 19, 129, 19, nil, 19, nil, 19, 19, 19, 19,
326
+ 19, nil, 19, nil, 19, nil, nil, nil, 19, nil,
327
+ nil, nil, nil, nil, 19, nil, 21, 21, 19, 21,
328
+ nil, 21, nil, nil, 21, nil, 19, 19, 21, 21,
329
+ 19, 21, nil, 21, nil, 21, 21, 21, 21, 21,
330
+ nil, 21, nil, 21, nil, nil, nil, 21, nil, nil,
331
+ nil, nil, nil, 21, nil, 125, 125, 21, 125, nil,
332
+ 125, nil, nil, 125, nil, 21, 21, 125, 125, 21,
333
+ 125, nil, 125, nil, 125, 125, 125, 125, 125, nil,
334
+ 125, nil, 125, nil, nil, nil, 125, nil, nil, nil,
335
+ nil, nil, 125, nil, 123, 123, 125, 123, nil, 123,
336
+ nil, nil, 123, 125, 125, 125, 123, 123, 125, 123,
337
+ nil, 123, nil, 123, 123, 123, 123, 123, nil, 123,
338
+ nil, 123, nil, nil, nil, 123, nil, nil, nil, nil,
339
+ nil, 123, nil, nil, nil, 123, nil, nil, nil, nil,
340
+ 123, nil, nil, 123, 123, 116, 116, 123, 116, nil,
341
+ 116, nil, 116, 116, nil, nil, nil, 116, 116, nil,
342
+ 116, nil, 116, nil, 116, 116, 116, 116, 116, nil,
343
+ 116, nil, 116, nil, nil, nil, 116, nil, nil, nil,
344
+ nil, nil, 116, nil, 56, 56, 116, 56, nil, 56,
345
+ nil, nil, 56, nil, 116, 116, 56, 56, 116, 56,
346
+ nil, 56, nil, 56, 56, 56, 56, 56, nil, 56,
347
+ nil, 56, nil, nil, nil, 56, nil, nil, nil, nil,
348
+ nil, 56, 56, 29, 29, 56, 29, nil, 29, nil,
349
+ nil, 29, nil, 56, 56, 29, 29, 56, 29, nil,
350
+ 29, nil, 29, 29, 29, 29, 29, nil, 29, nil,
351
+ 29, nil, nil, nil, 29, nil, nil, nil, nil, nil,
352
+ 29, nil, 103, 103, 29, 103, nil, 103, nil, nil,
353
+ 103, nil, 29, 29, 103, 103, 29, 103, nil, 103,
354
+ nil, 103, 103, 103, 103, 103, nil, 103, nil, 103,
355
+ nil, nil, nil, 103, nil, nil, nil, nil, nil, 103,
356
+ nil, 99, 99, 103, 99, nil, 99, nil, nil, 99,
357
+ nil, 103, 103, 99, 99, 103, 99, nil, 99, nil,
358
+ 99, 99, 99, 99, 99, nil, 99, nil, 99, nil,
359
+ nil, nil, 99, nil, nil, nil, nil, nil, 99, nil,
360
+ 37, 37, 99, 37, nil, 37, nil, nil, 37, 99,
361
+ 99, 99, 37, 37, 99, 37, nil, 37, nil, 37,
362
+ 37, 37, 37, 37, nil, 37, nil, 37, nil, nil,
363
+ nil, 37, nil, nil, 37, nil, nil, 37, nil, 38,
364
+ 38, 37, 38, nil, 38, nil, nil, 38, nil, 37,
365
+ 37, 38, 38, 37, 38, nil, 38, nil, 38, 38,
366
+ 38, 38, 38, nil, 38, nil, 38, nil, nil, nil,
367
+ 38, nil, nil, nil, nil, 38, 38, nil, 97, 97,
368
+ 38, 97, nil, 97, nil, nil, 97, nil, 38, 38,
369
+ 97, 97, 38, 97, nil, 97, nil, 97, 97, 97,
370
+ 97, 97, nil, 97, nil, 97, nil, nil, nil, 97,
371
+ nil, nil, nil, nil, nil, 97, nil, 91, 91, 97,
372
+ 91, nil, 91, nil, 97, 91, nil, 97, 97, 91,
373
+ 91, 97, 91, nil, 91, nil, 91, 91, 91, 91,
374
+ 91, nil, 91, nil, 91, nil, nil, nil, 91, nil,
375
+ nil, nil, nil, nil, 91, nil, 88, 88, 91, 88,
376
+ nil, 88, nil, nil, 88, nil, 91, 91, 88, 88,
377
+ 91, 88, nil, 88, nil, 88, 88, 88, 88, 88,
378
+ nil, 88, nil, 88, nil, nil, nil, 88, nil, nil,
379
+ nil, nil, nil, 88, 88, 82, 82, 88, 82, nil,
380
+ 82, nil, nil, 82, nil, 88, 88, 82, 82, 88,
381
+ 82, nil, 82, nil, 82, 82, 82, 82, 82, nil,
382
+ 82, nil, 82, nil, nil, 82, 82, nil, nil, nil,
383
+ nil, nil, 82, nil, 43, 43, 82, 43, nil, 43,
384
+ nil, nil, 43, nil, 82, 82, 43, 43, 82, 43,
385
+ nil, 43, nil, 43, 43, 43, 43, 43, nil, 43,
386
+ nil, 43, nil, nil, nil, 43, nil, nil, nil, nil,
387
+ nil, 43, nil, nil, nil, 43, nil, 45, 45, 45,
388
+ 45, nil, 45, 43, 43, 45, nil, 43, nil, 45,
389
+ 45, nil, 45, nil, 45, nil, 45, 45, 45, 45,
390
+ 45, nil, 45, nil, 45, nil, nil, nil, 45, nil,
391
+ nil, nil, nil, nil, 45, nil, 70, 70, 45, 70,
392
+ nil, 70, nil, nil, 70, nil, 45, 45, 70, 70,
393
+ 45, 70, nil, 70, nil, 70, 70, 70, 70, 70,
394
+ nil, 70, nil, 70, nil, nil, nil, 70, nil, nil,
395
+ nil, nil, 70, 70, nil, 69, 69, 70, 69, nil,
396
+ 69, nil, nil, 69, nil, 70, 70, 69, 69, 70,
397
+ 69, nil, 69, nil, 69, 69, 69, 69, 69, nil,
398
+ 69, nil, 69, nil, nil, nil, 69, nil, nil, 69,
399
+ nil, nil, 69, nil, nil, nil, 69, nil, 48, 48,
400
+ nil, 48, nil, 48, 69, 69, 48, nil, 69, nil,
401
+ 48, 48, 48, 48, nil, 48, nil, 48, 48, 48,
402
+ 48, 48, nil, 48, nil, 48, nil, nil, nil, 48,
403
+ nil, nil, nil, nil, nil, 48, nil, 61, 61, 48,
404
+ 61, nil, 61, nil, nil, 61, nil, 48, 48, 61,
405
+ 61, 48, 61, nil, 61, 61, 61, 61, 61, 61,
406
+ 61, nil, 61, nil, 61, nil, nil, nil, 61, nil,
407
+ nil, nil, nil, nil, 61, nil, 51, 51, 61, 51,
408
+ nil, 51, nil, nil, 51, nil, 61, 61, 51, 51,
409
+ 61, 51, nil, 51, nil, 51, 51, 51, 51, 51,
410
+ nil, 51, nil, 51, nil, nil, 51, 51, nil, nil,
411
+ nil, nil, nil, 51, nil, 52, 52, 51, 52, 52,
412
+ 52, nil, nil, 52, nil, 51, 51, 52, 52, 51,
413
+ 52, nil, 52, nil, 52, 52, 52, 52, 52, nil,
414
+ 52, nil, 52, nil, nil, nil, 52, nil, nil, nil,
415
+ nil, nil, 52, nil, 54, 54, 52, 54, nil, 54,
416
+ nil, nil, 54, nil, 52, 52, 54, 54, 52, 54,
417
+ 54, 54, nil, 54, 54, 54, 54, 54, nil, 54,
418
+ nil, 54, nil, nil, nil, 54, nil, nil, nil, nil,
419
+ nil, 54, nil, nil, nil, 54, nil, nil, nil, nil,
420
+ nil, nil, nil, 54, 54, 154, 154, 54, 154, nil,
421
+ 154, nil, nil, 154, nil, 154, nil, 154, 154, nil,
422
+ 154, nil, 154, nil, 154, 154, 154, 154, 154, nil,
423
+ 154, nil, 154, nil, nil, nil, 154, nil, nil, nil,
424
+ nil, nil, 154, nil, nil, nil, 154, nil, nil, nil,
425
+ nil, nil, nil, nil, 154, 154, nil, nil, 154 ]
220
426
 
221
427
  racc_action_pointer = [
222
- -2, nil, nil, 22, 49, 73, 76, 124, nil, nil,
223
- -9, 83, nil, nil, 66, 220, nil, nil, nil, nil,
224
- nil, nil, nil, 63, nil, 48, nil, 292, nil, 319,
225
- 9, 367, 391, 18, nil, 439, 7, 15, 35, 80,
226
- 89, 89, nil, 10, 65, nil, nil, nil, nil, 511,
227
- 77, -11, nil, 33, 487, -21, -4, 463, nil, nil,
228
- nil, 415, 343, 35, 49, 38, nil, nil, -18, nil,
229
- 1, 268, 43, 43, 244, 23, 196, nil, 172, 74,
230
- nil, nil, nil, nil, -30, nil, 66, -23, nil, 148,
231
- 100, 91, nil, nil, nil, nil, nil, 538, nil, nil ]
428
+ -2, -2, nil, nil, 88, nil, nil, nil, nil, nil,
429
+ nil, nil, 131, nil, 170, 125, 248, 287, 89, 365,
430
+ nil, 404, 75, nil, 77, 92, nil, nil, 85, 611,
431
+ nil, nil, nil, nil, 0, 26, nil, 728, 767, 30,
432
+ 24, 11, -16, 962, nil, 1005, -8, 81, 1126, nil,
433
+ 78, 1204, 1243, nil, 1282, 5, 572, 102, 120, 120,
434
+ 106, 1165, 28, 39, 35, 11, 30, 58, nil, 1083,
435
+ 1044, nil, -5, nil, nil, nil, nil, nil, nil, nil,
436
+ 8, 7, 923, nil, nil, nil, 3, nil, 884, nil,
437
+ 25, 845, nil, 5, 9, nil, -15, 806, 23, 689,
438
+ -34, nil, 81, 650, 83, 75, 130, nil, nil, nil,
439
+ nil, 58, nil, nil, nil, nil, 533, nil, 84, 85,
440
+ nil, 53, -38, 482, 69, 443, -23, nil, 107, 326,
441
+ 110, nil, 121, 113, nil, 209, nil, nil, 81, nil,
442
+ -43, nil, -33, nil, 119, 49, 126, nil, nil, nil,
443
+ nil, nil, nil, nil, 1333, nil, nil, nil ]
232
444
 
233
445
  racc_action_default = [
234
- -55, -5, -6, -55, -55, -12, -55, -55, -37, -53,
235
- -29, -55, -38, -11, -55, -1, -40, -23, -39, -25,
236
- -2, -41, -26, -55, -3, -55, -4, -55, -42, -55,
237
- -55, -13, -55, -48, -43, -55, -29, -32, -55, -55,
238
- -55, -14, -24, -18, -48, -54, -44, -7, -51, -55,
239
- -55, -55, -45, -55, -55, -55, -32, -55, -27, 100,
240
- -8, -55, -55, -55, -55, -55, -52, -47, -50, -28,
241
- -32, -55, -29, -55, -55, -32, -16, -15, -19, -20,
242
- -10, -46, -49, -35, -32, -30, -29, -32, -33, -55,
243
- -20, -55, -36, -31, -34, -17, -21, -20, -9, -22 ]
446
+ -83, -73, -55, -39, -19, -7, -54, -40, -8, -56,
447
+ -51, -9, -83, -53, -19, -83, -83, -1, -83, -83,
448
+ -37, -83, -23, -2, -83, -83, -10, -3, -83, -83,
449
+ -18, -4, -5, -52, -43, -83, -6, -83, -83, -73,
450
+ -83, -73, -83, -20, -57, -83, -83, -83, -83, -38,
451
+ -63, -83, -83, -58, -83, -23, -83, -63, -26, -83,
452
+ -80, -83, -46, -43, -83, -83, -30, -83, -70, -83,
453
+ -83, -74, -83, -69, -72, -13, -59, -11, 158, -76,
454
+ -83, -83, -83, -66, -60, -77, -23, -24, -83, -21,
455
+ -83, -83, -12, -83, -83, -78, -46, -83, -83, -83,
456
+ -83, -41, -83, -83, -83, -83, -32, -71, -75, -68,
457
+ -61, -65, -67, -25, -22, -62, -28, -27, -80, -80,
458
+ -79, -83, -46, -83, -43, -83, -46, -42, -30, -31,
459
+ -34, -15, -83, -83, -64, -83, -82, -81, -43, -47,
460
+ -46, -44, -46, -49, -83, -34, -83, -33, -16, -29,
461
+ -45, -48, -50, -17, -34, -35, -14, -36 ]
244
462
 
245
463
  racc_goto_table = [
246
- 15, 55, 42, 27, 29, 31, 50, 35, 33, 38,
247
- 77, 64, 91, 40, 42, 30, 42, 65, 42, 11,
248
- 73, nil, 42, 96, nil, nil, nil, 44, nil, nil,
249
- 99, nil, 49, nil, 83, 53, 42, nil, 95, 88,
250
- nil, 82, nil, nil, nil, nil, nil, nil, 92, nil,
251
- nil, 94, nil, 68, 71, nil, nil, 74, 42, nil,
252
- nil, 42, 78, 42, nil, 42, nil, nil, nil, nil,
253
- nil, 85, nil, nil, nil, nil, nil, nil, nil, nil,
254
- nil, nil, nil, nil, 42, 93, nil, nil, nil, nil,
255
- 97 ]
464
+ 17, 98, 105, 64, 50, 49, 117, 80, 56, 133,
465
+ 57, 118, 45, 42, 90, 94, 48, 39, 59, 52,
466
+ 15, 54, 40, 46, 146, nil, nil, nil, nil, 61,
467
+ nil, 49, 100, 49, nil, 121, 49, 69, 70, 155,
468
+ 49, 87, 49, nil, nil, nil, nil, nil, 157, 49,
469
+ 149, 82, nil, nil, nil, nil, 88, 49, 49, nil,
470
+ 72, 139, 74, nil, 144, 143, nil, 111, 134, nil,
471
+ 49, nil, 113, 136, 137, nil, 49, nil, nil, 151,
472
+ nil, 152, nil, nil, nil, nil, nil, nil, nil, nil,
473
+ nil, 116, nil, 141, nil, nil, nil, 123, nil, 125,
474
+ nil, nil, nil, 129, 49, nil, nil, 150, nil, nil,
475
+ nil, 49, nil, 49, nil, nil, nil, 49, nil, nil,
476
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
477
+ nil, nil, nil, nil, nil, 116, nil, nil, nil, nil,
478
+ nil, nil, 49, nil, nil, 154 ]
256
479
 
257
480
  racc_goto_check = [
258
- 2, 18, 3, 2, 2, 2, 20, 2, 19, 17,
259
- 14, 12, 11, 10, 3, 9, 3, 20, 3, 1,
260
- 18, nil, 3, 11, nil, nil, nil, 19, nil, nil,
261
- 11, nil, 2, nil, 18, 17, 3, nil, 14, 18,
262
- nil, 20, nil, nil, nil, nil, nil, nil, 18, nil,
263
- nil, 18, nil, 19, 2, nil, nil, 2, 3, nil,
264
- nil, 3, 2, 3, nil, 3, nil, nil, nil, nil,
265
- nil, 17, nil, nil, nil, nil, nil, nil, nil, nil,
266
- nil, nil, nil, nil, 3, 17, nil, nil, nil, nil,
267
- 2 ]
481
+ 2, 23, 15, 22, 24, 3, 19, 25, 18, 16,
482
+ 24, 11, 2, 12, 25, 30, 2, 27, 13, 2,
483
+ 1, 2, 28, 12, 14, nil, nil, nil, nil, 2,
484
+ nil, 3, 22, 3, nil, 23, 3, 2, 2, 14,
485
+ 3, 18, 3, nil, nil, nil, nil, nil, 14, 3,
486
+ 19, 2, nil, nil, nil, nil, 2, 3, 3, nil,
487
+ 28, 23, 28, nil, 15, 23, nil, 24, 25, nil,
488
+ 3, nil, 18, 30, 30, nil, 3, nil, nil, 23,
489
+ nil, 23, nil, nil, nil, nil, nil, nil, nil, nil,
490
+ nil, 2, nil, 22, nil, nil, nil, 2, nil, 2,
491
+ nil, nil, nil, 2, 3, nil, nil, 22, nil, nil,
492
+ nil, 3, nil, 3, nil, nil, nil, 3, nil, nil,
493
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
494
+ nil, nil, nil, nil, nil, 2, nil, nil, nil, nil,
495
+ nil, nil, 3, nil, nil, 2 ]
268
496
 
269
497
  racc_goto_pointer = [
270
- nil, 19, 0, -13, nil, nil, nil, nil, nil, 10,
271
- -1, -67, -32, nil, -51, nil, nil, -1, -36, 2,
272
- -27, nil ]
498
+ nil, 20, 0, -12, nil, nil, nil, nil, nil, nil,
499
+ nil, -82, 9, -7, -106, -64, -97, nil, -14, -85,
500
+ nil, nil, -31, -61, -14, -43, nil, 16, 21, nil,
501
+ -45 ]
273
502
 
274
503
  racc_goto_default = [
275
- nil, nil, 76, 17, 20, 24, 26, 1, 2, nil,
276
- nil, nil, nil, 13, nil, 19, 22, nil, nil, nil,
277
- nil, 51 ]
504
+ nil, nil, 43, 20, 23, 27, 31, 32, 36, 5,
505
+ 8, 11, nil, nil, nil, nil, nil, 30, nil, nil,
506
+ 3, 7, nil, nil, nil, nil, 81, nil, nil, 41,
507
+ nil ]
278
508
 
279
509
  racc_token_table = {
280
510
  false => 0,
281
511
  Object.new => 1,
282
- :BOLDSTART => 2,
283
- :BOLDEND => 3,
284
- :ITALICSTART => 4,
285
- :ITALICEND => 5,
286
- :LINKSTART => 6,
287
- :LINKEND => 7,
288
- :LINKSEP => 8,
289
- :INTLINKSTART => 9,
290
- :INTLINKEND => 10,
291
- :INTLINKSEP => 11,
292
- :RESOURCE_SEP => 12,
293
- :SECTION_START => 13,
294
- :SECTION_END => 14,
295
- :TEXT => 15,
296
- :PRE => 16,
297
- :HLINE => 17,
298
- :SIGNATURE_NAME => 18,
299
- :SIGNATURE_DATE => 19,
300
- :SIGNATURE_FULL => 20,
301
- :UL_START => 21,
302
- :UL_END => 22,
303
- :LI_START => 23,
304
- :LI_END => 24,
305
- :OL_START => 25,
306
- :OL_END => 26,
307
- :TABLE_START => 27,
308
- :TABLE_END => 28,
309
- :ROW_START => 29,
310
- :ROW_END => 30,
311
- :HEAD_START => 31,
312
- :HEAD_END => 32,
313
- :CELL_START => 33,
314
- :CELL_END => 34,
315
- :PARA_START => 35,
316
- :PARA_END => 36 }
512
+ :TEXT => 2,
513
+ :BOLD_START => 3,
514
+ :BOLD_END => 4,
515
+ :ITALIC_START => 5,
516
+ :ITALIC_END => 6,
517
+ :LINK_START => 7,
518
+ :LINK_END => 8,
519
+ :LINKSEP => 9,
520
+ :INTLINK_START => 10,
521
+ :INTLINK_END => 11,
522
+ :INTLINKSEP => 12,
523
+ :RESOURCESEP => 13,
524
+ :CHAR_ENT => 14,
525
+ :PRE_START => 15,
526
+ :PRE_END => 16,
527
+ :PREINDENT_START => 17,
528
+ :PREINDENT_END => 18,
529
+ :SECTION_START => 19,
530
+ :SECTION_END => 20,
531
+ :HLINE => 21,
532
+ :SIGNATURE_NAME => 22,
533
+ :SIGNATURE_DATE => 23,
534
+ :SIGNATURE_FULL => 24,
535
+ :PARA_START => 25,
536
+ :PARA_END => 26,
537
+ :UL_START => 27,
538
+ :UL_END => 28,
539
+ :OL_START => 29,
540
+ :OL_END => 30,
541
+ :LI_START => 31,
542
+ :LI_END => 32,
543
+ :DL_START => 33,
544
+ :DL_END => 34,
545
+ :DT_START => 35,
546
+ :DT_END => 36,
547
+ :DD_START => 37,
548
+ :DD_END => 38,
549
+ :TAG_START => 39,
550
+ :TAG_END => 40,
551
+ :ATTR_NAME => 41,
552
+ :ATTR_VALUE => 42,
553
+ :TABLE_START => 43,
554
+ :TABLE_END => 44,
555
+ :ROW_START => 45,
556
+ :ROW_END => 46,
557
+ :HEAD_START => 47,
558
+ :HEAD_END => 48,
559
+ :CELL_START => 49,
560
+ :CELL_END => 50,
561
+ :KEYWORD => 51,
562
+ :TEMPLATE_START => 52,
563
+ :TEMPLATE_END => 53,
564
+ :CATEGORY => 54,
565
+ :PASTE_START => 55,
566
+ :PASTE_END => 56 }
317
567
 
318
568
  racc_use_result_var = true
319
569
 
320
- racc_nt_base = 37
570
+ racc_nt_base = 57
321
571
 
322
572
  Racc_arg = [
323
573
  racc_action_table,
@@ -338,31 +588,47 @@ Racc_arg = [
338
588
  Racc_token_to_s_table = [
339
589
  '$end',
340
590
  'error',
341
- 'BOLDSTART',
342
- 'BOLDEND',
343
- 'ITALICSTART',
344
- 'ITALICEND',
345
- 'LINKSTART',
346
- 'LINKEND',
591
+ 'TEXT',
592
+ 'BOLD_START',
593
+ 'BOLD_END',
594
+ 'ITALIC_START',
595
+ 'ITALIC_END',
596
+ 'LINK_START',
597
+ 'LINK_END',
347
598
  'LINKSEP',
348
- 'INTLINKSTART',
349
- 'INTLINKEND',
599
+ 'INTLINK_START',
600
+ 'INTLINK_END',
350
601
  'INTLINKSEP',
351
- 'RESOURCE_SEP',
602
+ 'RESOURCESEP',
603
+ 'CHAR_ENT',
604
+ 'PRE_START',
605
+ 'PRE_END',
606
+ 'PREINDENT_START',
607
+ 'PREINDENT_END',
352
608
  'SECTION_START',
353
609
  'SECTION_END',
354
- 'TEXT',
355
- 'PRE',
356
610
  'HLINE',
357
611
  'SIGNATURE_NAME',
358
612
  'SIGNATURE_DATE',
359
613
  'SIGNATURE_FULL',
614
+ 'PARA_START',
615
+ 'PARA_END',
360
616
  'UL_START',
361
617
  'UL_END',
362
- 'LI_START',
363
- 'LI_END',
364
618
  'OL_START',
365
619
  'OL_END',
620
+ 'LI_START',
621
+ 'LI_END',
622
+ 'DL_START',
623
+ 'DL_END',
624
+ 'DT_START',
625
+ 'DT_END',
626
+ 'DD_START',
627
+ 'DD_END',
628
+ 'TAG_START',
629
+ 'TAG_END',
630
+ 'ATTR_NAME',
631
+ 'ATTR_VALUE',
366
632
  'TABLE_START',
367
633
  'TABLE_END',
368
634
  'ROW_START',
@@ -371,8 +637,12 @@ Racc_token_to_s_table = [
371
637
  'HEAD_END',
372
638
  'CELL_START',
373
639
  'CELL_END',
374
- 'PARA_START',
375
- 'PARA_END',
640
+ 'KEYWORD',
641
+ 'TEMPLATE_START',
642
+ 'TEMPLATE_END',
643
+ 'CATEGORY',
644
+ 'PASTE_START',
645
+ 'PASTE_END',
376
646
  '$start',
377
647
  'wiki',
378
648
  'repeated_contents',
@@ -380,13 +650,18 @@ Racc_token_to_s_table = [
380
650
  'text',
381
651
  'bulleted_list',
382
652
  'numbered_list',
653
+ 'dictionary_list',
383
654
  'preformatted',
384
655
  'section',
656
+ 'tag',
657
+ 'template',
385
658
  'para_contents',
386
659
  'link_contents',
387
660
  'reslink_repeated_contents',
388
661
  'intlink_repeated_contents',
662
+ 'cat_sort_contents',
389
663
  'table',
664
+ 'tag_attributes',
390
665
  'link_repeated_contents',
391
666
  'element',
392
667
  'formatted_element',
@@ -394,7 +669,11 @@ Racc_token_to_s_table = [
394
669
  'row_contents',
395
670
  'list_item',
396
671
  'list_contents',
397
- '@1']
672
+ '@1',
673
+ 'dictionary_term',
674
+ 'dictionary_contents',
675
+ 'dictionary_definition',
676
+ 'template_parameters']
398
677
 
399
678
  Racc_debug_parser = false
400
679
 
@@ -402,9 +681,9 @@ Racc_debug_parser = false
402
681
 
403
682
  # reduce 0 omitted
404
683
 
405
- module_eval <<'.,.,', 'mediawikiparser.y', 29
684
+ module_eval <<'.,.,', 'mediawikiparser.y', 30
406
685
  def _reduce_1( val, _values, result )
407
- @nodes.push WikiAST.new
686
+ @nodes.push WikiAST.new(0, @wiki_ast_length)
408
687
  #@nodes.last.children.insert(0, val[0])
409
688
  #puts val[0]
410
689
  @nodes.last.children += val[0]
@@ -412,57 +691,87 @@ module_eval <<'.,.,', 'mediawikiparser.y', 29
412
691
  end
413
692
  .,.,
414
693
 
415
- module_eval <<'.,.,', 'mediawikiparser.y', 36
694
+ module_eval <<'.,.,', 'mediawikiparser.y', 37
416
695
  def _reduce_2( val, _values, result )
417
696
  result = val[0]
418
697
  result
419
698
  end
420
699
  .,.,
421
700
 
422
- module_eval <<'.,.,', 'mediawikiparser.y', 40
701
+ module_eval <<'.,.,', 'mediawikiparser.y', 41
423
702
  def _reduce_3( val, _values, result )
424
703
  result = val[0]
425
704
  result
426
705
  end
427
706
  .,.,
428
707
 
429
- module_eval <<'.,.,', 'mediawikiparser.y', 44
708
+ module_eval <<'.,.,', 'mediawikiparser.y', 45
430
709
  def _reduce_4( val, _values, result )
431
710
  result = val[0]
432
711
  result
433
712
  end
434
713
  .,.,
435
714
 
436
- module_eval <<'.,.,', 'mediawikiparser.y', 50
715
+ module_eval <<'.,.,', 'mediawikiparser.y', 52
437
716
  def _reduce_5( val, _values, result )
438
- p = PreformattedAST.new
439
- p.contents = val[0]
440
- result = p
717
+ list = ListAST.new(@ast_index, @ast_length)
718
+ list.list_type = :Dictionary
719
+ list.children = val[0]
720
+ result = list
441
721
  result
442
722
  end
443
723
  .,.,
444
724
 
445
- module_eval <<'.,.,', 'mediawikiparser.y', 54
725
+ module_eval <<'.,.,', 'mediawikiparser.y', 56
446
726
  def _reduce_6( val, _values, result )
447
727
  result = val[0]
448
728
  result
449
729
  end
450
730
  .,.,
451
731
 
452
- module_eval <<'.,.,', 'mediawikiparser.y', 62
732
+ module_eval <<'.,.,', 'mediawikiparser.y', 60
453
733
  def _reduce_7( val, _values, result )
454
- if val[1]
455
- p = ParagraphAST.new
456
- p.children = val[1]
457
- result = p
458
- end
734
+ result = val[0]
459
735
  result
460
736
  end
461
737
  .,.,
462
738
 
463
- module_eval <<'.,.,', 'mediawikiparser.y', 69
739
+ module_eval <<'.,.,', 'mediawikiparser.y', 64
464
740
  def _reduce_8( val, _values, result )
465
- l = LinkAST.new
741
+ result = val[0]
742
+ result
743
+ end
744
+ .,.,
745
+
746
+ module_eval <<'.,.,', 'mediawikiparser.y', 68
747
+ def _reduce_9( val, _values, result )
748
+ result = val[0]
749
+ result
750
+ end
751
+ .,.,
752
+
753
+ module_eval <<'.,.,', 'mediawikiparser.y', 74
754
+ def _reduce_10( val, _values, result )
755
+ k = KeywordAST.new(@ast_index, @ast_length)
756
+ k.text = val[0]
757
+ result = k
758
+ result
759
+ end
760
+ .,.,
761
+
762
+ module_eval <<'.,.,', 'mediawikiparser.y', 80
763
+ def _reduce_11( val, _values, result )
764
+ p = ParagraphAST.new(@ast_index, @ast_length)
765
+ p.children = val[1]
766
+ result = p
767
+ result
768
+ end
769
+ .,.,
770
+
771
+ module_eval <<'.,.,', 'mediawikiparser.y', 88
772
+ def _reduce_12( val, _values, result )
773
+ l = LinkAST.new(@ast_index, @ast_length)
774
+ l.link_type = val[0]
466
775
  l.url = val[1][0]
467
776
  l.children += val[1][1..-1] if val[1].length > 1
468
777
  result = l
@@ -470,9 +779,18 @@ module_eval <<'.,.,', 'mediawikiparser.y', 69
470
779
  end
471
780
  .,.,
472
781
 
473
- module_eval <<'.,.,', 'mediawikiparser.y', 77
474
- def _reduce_9( val, _values, result )
475
- l = ResourceLinkAST.new
782
+ module_eval <<'.,.,', 'mediawikiparser.y', 94
783
+ def _reduce_13( val, _values, result )
784
+ p = PasteAST.new(@ast_index, @ast_length)
785
+ p.children = val[1]
786
+ result = p
787
+ result
788
+ end
789
+ .,.,
790
+
791
+ module_eval <<'.,.,', 'mediawikiparser.y', 102
792
+ def _reduce_14( val, _values, result )
793
+ l = ResourceLinkAST.new(@ast_index, @ast_length)
476
794
  l.prefix = val[1]
477
795
  l.locator = val[3]
478
796
  l.children = val[4] unless val[4].nil? or val[4].empty?
@@ -481,9 +799,9 @@ module_eval <<'.,.,', 'mediawikiparser.y', 77
481
799
  end
482
800
  .,.,
483
801
 
484
- module_eval <<'.,.,', 'mediawikiparser.y', 84
485
- def _reduce_10( val, _values, result )
486
- l = InternalLinkAST.new
802
+ module_eval <<'.,.,', 'mediawikiparser.y', 109
803
+ def _reduce_15( val, _values, result )
804
+ l = InternalLinkAST.new(@ast_index, @ast_length)
487
805
  l.locator = val[1]
488
806
  l.children = val[2] unless val[2].nil? or val[2].empty?
489
807
  result = l
@@ -491,83 +809,169 @@ module_eval <<'.,.,', 'mediawikiparser.y', 84
491
809
  end
492
810
  .,.,
493
811
 
494
- # reduce 11 omitted
812
+ module_eval <<'.,.,', 'mediawikiparser.y', 116
813
+ def _reduce_16( val, _values, result )
814
+ l = CategoryAST.new(@ast_index, @ast_length)
815
+ l.locator = val[2]
816
+ l.sort_as = val[3]
817
+ result = l
818
+ result
819
+ end
820
+ .,.,
495
821
 
496
- module_eval <<'.,.,', 'mediawikiparser.y', 92
497
- def _reduce_12( val, _values, result )
822
+ module_eval <<'.,.,', 'mediawikiparser.y', 123
823
+ def _reduce_17( val, _values, result )
824
+ l = CategoryLinkAST.new(@ast_index, @ast_length)
825
+ l.locator = val[3]
826
+ l.children = val[4] unless val[4].nil? or val[4].empty?
827
+ result = l
828
+ result
829
+ end
830
+ .,.,
831
+
832
+ # reduce 18 omitted
833
+
834
+ module_eval <<'.,.,', 'mediawikiparser.y', 130
835
+ def _reduce_19( val, _values, result )
498
836
  result = nil
499
837
  result
500
838
  end
501
839
  .,.,
502
840
 
503
- module_eval <<'.,.,', 'mediawikiparser.y', 96
504
- def _reduce_13( val, _values, result )
841
+ module_eval <<'.,.,', 'mediawikiparser.y', 134
842
+ def _reduce_20( val, _values, result )
505
843
  result = val[0]
506
844
  result
507
845
  end
508
846
  .,.,
509
847
 
510
- module_eval <<'.,.,', 'mediawikiparser.y', 103
511
- def _reduce_14( val, _values, result )
848
+ module_eval <<'.,.,', 'mediawikiparser.y', 147
849
+ def _reduce_21( val, _values, result )
850
+ if val[0] != val[2]
851
+ raise Racc::ParseError.new("XHTML end tag #{val[2]} does not match start tag #{val[0]}")
852
+ end
853
+ elem = ElementAST.new(@ast_index, @ast_length)
854
+ elem.name = val[0]
855
+ elem.attributes = val[1]
856
+ result = elem
857
+ result
858
+ end
859
+ .,.,
860
+
861
+ module_eval <<'.,.,', 'mediawikiparser.y', 158
862
+ def _reduce_22( val, _values, result )
863
+ if val[0] != val[3]
864
+ raise Racc::ParseError.new("XHTML end tag #{val[3]} does not match start tag #{val[0]}")
865
+ end
866
+ elem = ElementAST.new(@ast_index, @ast_length)
867
+ elem.name = val[0]
868
+ elem.attributes = val[1]
869
+ elem.children += val[2]
870
+ result = elem
871
+ result
872
+ end
873
+ .,.,
874
+
875
+ module_eval <<'.,.,', 'mediawikiparser.y', 164
876
+ def _reduce_23( val, _values, result )
877
+ result = nil
878
+ result
879
+ end
880
+ .,.,
881
+
882
+ module_eval <<'.,.,', 'mediawikiparser.y', 170
883
+ def _reduce_24( val, _values, result )
884
+ attr_map = val[2] ? val[2] : {}
885
+ attr_map[val[0]] = true
886
+ result = attr_map
887
+ result
888
+ end
889
+ .,.,
890
+
891
+ module_eval <<'.,.,', 'mediawikiparser.y', 176
892
+ def _reduce_25( val, _values, result )
893
+ attr_map = val[2] ? val[2] : {}
894
+ attr_map[val[0]] = val[1]
895
+ result = attr_map
896
+ result
897
+ end
898
+ .,.,
899
+
900
+ module_eval <<'.,.,', 'mediawikiparser.y', 184
901
+ def _reduce_26( val, _values, result )
512
902
  result = val
513
903
  result
514
904
  end
515
905
  .,.,
516
906
 
517
- module_eval <<'.,.,', 'mediawikiparser.y', 108
518
- def _reduce_15( val, _values, result )
907
+ module_eval <<'.,.,', 'mediawikiparser.y', 189
908
+ def _reduce_27( val, _values, result )
519
909
  result = [val[0]]
520
910
  result += val[2]
521
911
  result
522
912
  end
523
913
  .,.,
524
914
 
525
- module_eval <<'.,.,', 'mediawikiparser.y', 116
526
- def _reduce_16( val, _values, result )
915
+ module_eval <<'.,.,', 'mediawikiparser.y', 197
916
+ def _reduce_28( val, _values, result )
527
917
  result = val[0]
528
918
  result
529
919
  end
530
920
  .,.,
531
921
 
532
- module_eval <<'.,.,', 'mediawikiparser.y', 121
533
- def _reduce_17( val, _values, result )
922
+ module_eval <<'.,.,', 'mediawikiparser.y', 202
923
+ def _reduce_29( val, _values, result )
534
924
  result = val[0]
535
925
  result += val[2] if val[2]
536
926
  result
537
927
  end
538
928
  .,.,
539
929
 
540
- module_eval <<'.,.,', 'mediawikiparser.y', 128
541
- def _reduce_18( val, _values, result )
930
+ module_eval <<'.,.,', 'mediawikiparser.y', 209
931
+ def _reduce_30( val, _values, result )
542
932
  result = nil
543
933
  result
544
934
  end
545
935
  .,.,
546
936
 
547
- module_eval <<'.,.,', 'mediawikiparser.y', 132
548
- def _reduce_19( val, _values, result )
937
+ module_eval <<'.,.,', 'mediawikiparser.y', 213
938
+ def _reduce_31( val, _values, result )
549
939
  result = val[1]
550
940
  result
551
941
  end
552
942
  .,.,
553
943
 
554
- module_eval <<'.,.,', 'mediawikiparser.y', 138
555
- def _reduce_20( val, _values, result )
944
+ module_eval <<'.,.,', 'mediawikiparser.y', 219
945
+ def _reduce_32( val, _values, result )
556
946
  result = nil
557
947
  result
558
948
  end
559
949
  .,.,
560
950
 
561
- module_eval <<'.,.,', 'mediawikiparser.y', 142
562
- def _reduce_21( val, _values, result )
951
+ module_eval <<'.,.,', 'mediawikiparser.y', 223
952
+ def _reduce_33( val, _values, result )
563
953
  result = val[1]
564
954
  result
565
955
  end
566
956
  .,.,
567
957
 
568
- module_eval <<'.,.,', 'mediawikiparser.y', 149
569
- def _reduce_22( val, _values, result )
570
- i = InternalLinkItemAST.new
958
+ module_eval <<'.,.,', 'mediawikiparser.y', 229
959
+ def _reduce_34( val, _values, result )
960
+ result = nil
961
+ result
962
+ end
963
+ .,.,
964
+
965
+ module_eval <<'.,.,', 'mediawikiparser.y', 233
966
+ def _reduce_35( val, _values, result )
967
+ result = val[1]
968
+ result
969
+ end
970
+ .,.,
971
+
972
+ module_eval <<'.,.,', 'mediawikiparser.y', 240
973
+ def _reduce_36( val, _values, result )
974
+ i = InternalLinkItemAST.new(@ast_index, @ast_length)
571
975
  i.children = val[1]
572
976
  result = [i]
573
977
  result += val[2] if val[2]
@@ -575,16 +979,16 @@ module_eval <<'.,.,', 'mediawikiparser.y', 149
575
979
  end
576
980
  .,.,
577
981
 
578
- module_eval <<'.,.,', 'mediawikiparser.y', 156
579
- def _reduce_23( val, _values, result )
982
+ module_eval <<'.,.,', 'mediawikiparser.y', 247
983
+ def _reduce_37( val, _values, result )
580
984
  result = []
581
985
  result << val[0]
582
986
  result
583
987
  end
584
988
  .,.,
585
989
 
586
- module_eval <<'.,.,', 'mediawikiparser.y', 162
587
- def _reduce_24( val, _values, result )
990
+ module_eval <<'.,.,', 'mediawikiparser.y', 253
991
+ def _reduce_38( val, _values, result )
588
992
  result = []
589
993
  result += val[0]
590
994
  result << val[1]
@@ -592,9 +996,9 @@ module_eval <<'.,.,', 'mediawikiparser.y', 162
592
996
  end
593
997
  .,.,
594
998
 
595
- module_eval <<'.,.,', 'mediawikiparser.y', 171
596
- def _reduce_25( val, _values, result )
597
- p = TextAST.new
999
+ module_eval <<'.,.,', 'mediawikiparser.y', 262
1000
+ def _reduce_39( val, _values, result )
1001
+ p = TextAST.new(@ast_index, @ast_length)
598
1002
  p.formatting = val[0][0]
599
1003
  p.contents = val[0][1]
600
1004
  result = p
@@ -602,25 +1006,25 @@ module_eval <<'.,.,', 'mediawikiparser.y', 171
602
1006
  end
603
1007
  .,.,
604
1008
 
605
- module_eval <<'.,.,', 'mediawikiparser.y', 175
606
- def _reduce_26( val, _values, result )
1009
+ module_eval <<'.,.,', 'mediawikiparser.y', 266
1010
+ def _reduce_40( val, _values, result )
607
1011
  result = val[0]
608
1012
  result
609
1013
  end
610
1014
  .,.,
611
1015
 
612
- module_eval <<'.,.,', 'mediawikiparser.y', 184
613
- def _reduce_27( val, _values, result )
614
- table = TableAST.new
1016
+ module_eval <<'.,.,', 'mediawikiparser.y', 275
1017
+ def _reduce_41( val, _values, result )
1018
+ table = TableAST.new(@ast_index, @ast_length)
615
1019
  table.children = val[1] unless val[1].nil? or val[1].empty?
616
1020
  result = table
617
1021
  result
618
1022
  end
619
1023
  .,.,
620
1024
 
621
- module_eval <<'.,.,', 'mediawikiparser.y', 191
622
- def _reduce_28( val, _values, result )
623
- table = TableAST.new
1025
+ module_eval <<'.,.,', 'mediawikiparser.y', 282
1026
+ def _reduce_42( val, _values, result )
1027
+ table = TableAST.new(@ast_index, @ast_length)
624
1028
  table.options = val[1]
625
1029
  table.children = val[2] unless val[2].nil? or val[2].empty?
626
1030
  result = table
@@ -628,16 +1032,16 @@ module_eval <<'.,.,', 'mediawikiparser.y', 191
628
1032
  end
629
1033
  .,.,
630
1034
 
631
- module_eval <<'.,.,', 'mediawikiparser.y', 196
632
- def _reduce_29( val, _values, result )
1035
+ module_eval <<'.,.,', 'mediawikiparser.y', 287
1036
+ def _reduce_43( val, _values, result )
633
1037
  result = nil
634
1038
  result
635
1039
  end
636
1040
  .,.,
637
1041
 
638
- module_eval <<'.,.,', 'mediawikiparser.y', 203
639
- def _reduce_30( val, _values, result )
640
- row = TableRowAST.new
1042
+ module_eval <<'.,.,', 'mediawikiparser.y', 294
1043
+ def _reduce_44( val, _values, result )
1044
+ row = TableRowAST.new(@ast_index, @ast_length)
641
1045
  row.children = val[1] unless val[1].nil? or val[1].empty?
642
1046
  result = [row]
643
1047
  result += val[3] unless val[3].nil? or val[3].empty?
@@ -645,9 +1049,9 @@ module_eval <<'.,.,', 'mediawikiparser.y', 203
645
1049
  end
646
1050
  .,.,
647
1051
 
648
- module_eval <<'.,.,', 'mediawikiparser.y', 211
649
- def _reduce_31( val, _values, result )
650
- row = TableRowAST.new
1052
+ module_eval <<'.,.,', 'mediawikiparser.y', 302
1053
+ def _reduce_45( val, _values, result )
1054
+ row = TableRowAST.new(@ast_index, @ast_length)
651
1055
  row.children = val[2] unless val[2].nil? or val[2].empty?
652
1056
  row.options = val[1]
653
1057
  result = [row]
@@ -656,16 +1060,16 @@ module_eval <<'.,.,', 'mediawikiparser.y', 211
656
1060
  end
657
1061
  .,.,
658
1062
 
659
- module_eval <<'.,.,', 'mediawikiparser.y', 216
660
- def _reduce_32( val, _values, result )
1063
+ module_eval <<'.,.,', 'mediawikiparser.y', 307
1064
+ def _reduce_46( val, _values, result )
661
1065
  result = nil
662
1066
  result
663
1067
  end
664
1068
  .,.,
665
1069
 
666
- module_eval <<'.,.,', 'mediawikiparser.y', 223
667
- def _reduce_33( val, _values, result )
668
- cell = TableCellAST.new
1070
+ module_eval <<'.,.,', 'mediawikiparser.y', 314
1071
+ def _reduce_47( val, _values, result )
1072
+ cell = TableCellAST.new(@ast_index, @ast_length)
669
1073
  cell.type = :head
670
1074
  result = [cell]
671
1075
  result += val[2] unless val[2].nil? or val[2].empty?
@@ -673,9 +1077,9 @@ module_eval <<'.,.,', 'mediawikiparser.y', 223
673
1077
  end
674
1078
  .,.,
675
1079
 
676
- module_eval <<'.,.,', 'mediawikiparser.y', 231
677
- def _reduce_34( val, _values, result )
678
- cell = TableCellAST.new
1080
+ module_eval <<'.,.,', 'mediawikiparser.y', 322
1081
+ def _reduce_48( val, _values, result )
1082
+ cell = TableCellAST.new(@ast_index, @ast_length)
679
1083
  cell.children = val[1] unless val[1].nil? or val[1].empty?
680
1084
  cell.type = :head
681
1085
  result = [cell]
@@ -684,9 +1088,9 @@ module_eval <<'.,.,', 'mediawikiparser.y', 231
684
1088
  end
685
1089
  .,.,
686
1090
 
687
- module_eval <<'.,.,', 'mediawikiparser.y', 238
688
- def _reduce_35( val, _values, result )
689
- cell = TableCellAST.new
1091
+ module_eval <<'.,.,', 'mediawikiparser.y', 329
1092
+ def _reduce_49( val, _values, result )
1093
+ cell = TableCellAST.new(@ast_index, @ast_length)
690
1094
  cell.type = :body
691
1095
  result = [cell]
692
1096
  result += val[2] unless val[2].nil? or val[2].empty?
@@ -694,73 +1098,88 @@ module_eval <<'.,.,', 'mediawikiparser.y', 238
694
1098
  end
695
1099
  .,.,
696
1100
 
697
- module_eval <<'.,.,', 'mediawikiparser.y', 246
698
- def _reduce_36( val, _values, result )
699
- cell = TableCellAST.new
700
- cell.children = val[1] unless val[1].nil? or val[1].empty?
701
- cell.type = :body
702
- result = [cell]
1101
+ module_eval <<'.,.,', 'mediawikiparser.y', 345
1102
+ def _reduce_50( val, _values, result )
1103
+ if val[2] == 'attributes'
1104
+ result = []
1105
+ else
1106
+ cell = TableCellAST.new(@ast_index, @ast_length)
1107
+ cell.children = val[1] unless val[1].nil? or val[1].empty?
1108
+ cell.type = :body
1109
+ result = [cell]
1110
+ end
703
1111
  result += val[3] unless val[3].nil? or val[3].empty?
1112
+ if val[2] == 'attributes' and val[3] and val[3].first.class == TableCellAST
1113
+ val[3].first.attributes = val[1]
1114
+ end
1115
+ result
704
1116
  result
705
1117
  end
706
1118
  .,.,
707
1119
 
708
- module_eval <<'.,.,', 'mediawikiparser.y', 250
709
- def _reduce_37( val, _values, result )
1120
+ module_eval <<'.,.,', 'mediawikiparser.y', 349
1121
+ def _reduce_51( val, _values, result )
710
1122
  return [:None, val[0]]
711
1123
  result
712
1124
  end
713
1125
  .,.,
714
1126
 
715
- module_eval <<'.,.,', 'mediawikiparser.y', 252
716
- def _reduce_38( val, _values, result )
1127
+ module_eval <<'.,.,', 'mediawikiparser.y', 351
1128
+ def _reduce_52( val, _values, result )
717
1129
  return [:HLine, val[0]]
718
1130
  result
719
1131
  end
720
1132
  .,.,
721
1133
 
722
- module_eval <<'.,.,', 'mediawikiparser.y', 254
723
- def _reduce_39( val, _values, result )
1134
+ module_eval <<'.,.,', 'mediawikiparser.y', 353
1135
+ def _reduce_53( val, _values, result )
1136
+ return [:CharacterEntity, val[0]]
1137
+ result
1138
+ end
1139
+ .,.,
1140
+
1141
+ module_eval <<'.,.,', 'mediawikiparser.y', 355
1142
+ def _reduce_54( val, _values, result )
724
1143
  return [:SignatureDate, val[0]]
725
1144
  result
726
1145
  end
727
1146
  .,.,
728
1147
 
729
- module_eval <<'.,.,', 'mediawikiparser.y', 256
730
- def _reduce_40( val, _values, result )
1148
+ module_eval <<'.,.,', 'mediawikiparser.y', 357
1149
+ def _reduce_55( val, _values, result )
731
1150
  return [:SignatureName, val[0]]
732
1151
  result
733
1152
  end
734
1153
  .,.,
735
1154
 
736
- module_eval <<'.,.,', 'mediawikiparser.y', 258
737
- def _reduce_41( val, _values, result )
1155
+ module_eval <<'.,.,', 'mediawikiparser.y', 359
1156
+ def _reduce_56( val, _values, result )
738
1157
  return [:SignatureFull, val[0]]
739
1158
  result
740
1159
  end
741
1160
  .,.,
742
1161
 
743
- module_eval <<'.,.,', 'mediawikiparser.y', 268
744
- def _reduce_42( val, _values, result )
745
- result = FormattedAST.new
1162
+ module_eval <<'.,.,', 'mediawikiparser.y', 369
1163
+ def _reduce_57( val, _values, result )
1164
+ result = FormattedAST.new(@ast_index, @ast_length)
746
1165
  result.formatting = :Bold
747
1166
  result
748
1167
  result
749
1168
  end
750
1169
  .,.,
751
1170
 
752
- module_eval <<'.,.,', 'mediawikiparser.y', 274
753
- def _reduce_43( val, _values, result )
754
- result = FormattedAST.new
1171
+ module_eval <<'.,.,', 'mediawikiparser.y', 375
1172
+ def _reduce_58( val, _values, result )
1173
+ result = FormattedAST.new(@ast_index, @ast_length)
755
1174
  result.formatting = :Italic
756
1175
  result
757
1176
  result
758
1177
  end
759
1178
  .,.,
760
1179
 
761
- module_eval <<'.,.,', 'mediawikiparser.y', 281
762
- def _reduce_44( val, _values, result )
763
- p = FormattedAST.new
1180
+ module_eval <<'.,.,', 'mediawikiparser.y', 382
1181
+ def _reduce_59( val, _values, result )
1182
+ p = FormattedAST.new(@ast_index, @ast_length)
764
1183
  p.formatting = :Bold
765
1184
  p.children += val[1]
766
1185
  result = p
@@ -768,9 +1187,9 @@ module_eval <<'.,.,', 'mediawikiparser.y', 281
768
1187
  end
769
1188
  .,.,
770
1189
 
771
- module_eval <<'.,.,', 'mediawikiparser.y', 288
772
- def _reduce_45( val, _values, result )
773
- p = FormattedAST.new
1190
+ module_eval <<'.,.,', 'mediawikiparser.y', 389
1191
+ def _reduce_60( val, _values, result )
1192
+ p = FormattedAST.new(@ast_index, @ast_length)
774
1193
  p.formatting = :Italic
775
1194
  p.children += val[1]
776
1195
  result = p
@@ -778,9 +1197,9 @@ module_eval <<'.,.,', 'mediawikiparser.y', 288
778
1197
  end
779
1198
  .,.,
780
1199
 
781
- module_eval <<'.,.,', 'mediawikiparser.y', 298
782
- def _reduce_46( val, _values, result )
783
- list = ListAST.new
1200
+ module_eval <<'.,.,', 'mediawikiparser.y', 399
1201
+ def _reduce_61( val, _values, result )
1202
+ list = ListAST.new(@ast_index, @ast_length)
784
1203
  list.list_type = :Bulleted
785
1204
  list.children << val[1]
786
1205
  list.children += val[2]
@@ -789,9 +1208,9 @@ module_eval <<'.,.,', 'mediawikiparser.y', 298
789
1208
  end
790
1209
  .,.,
791
1210
 
792
- module_eval <<'.,.,', 'mediawikiparser.y', 308
793
- def _reduce_47( val, _values, result )
794
- list = ListAST.new
1211
+ module_eval <<'.,.,', 'mediawikiparser.y', 409
1212
+ def _reduce_62( val, _values, result )
1213
+ list = ListAST.new(@ast_index, @ast_length)
795
1214
  list.list_type = :Numbered
796
1215
  list.children << val[1]
797
1216
  list.children += val[2]
@@ -800,55 +1219,129 @@ module_eval <<'.,.,', 'mediawikiparser.y', 308
800
1219
  end
801
1220
  .,.,
802
1221
 
803
- module_eval <<'.,.,', 'mediawikiparser.y', 311
804
- def _reduce_48( val, _values, result )
1222
+ module_eval <<'.,.,', 'mediawikiparser.y', 412
1223
+ def _reduce_63( val, _values, result )
805
1224
  result = []
806
1225
  result
807
1226
  end
808
1227
  .,.,
809
1228
 
810
- module_eval <<'.,.,', 'mediawikiparser.y', 317
811
- def _reduce_49( val, _values, result )
1229
+ module_eval <<'.,.,', 'mediawikiparser.y', 418
1230
+ def _reduce_64( val, _values, result )
812
1231
  result << val[1]
813
1232
  result += val[2]
814
1233
  result
815
1234
  end
816
1235
  .,.,
817
1236
 
818
- module_eval <<'.,.,', 'mediawikiparser.y', 318
819
- def _reduce_50( val, _values, result )
1237
+ module_eval <<'.,.,', 'mediawikiparser.y', 419
1238
+ def _reduce_65( val, _values, result )
820
1239
  result = []
821
1240
  result
822
1241
  end
823
1242
  .,.,
824
1243
 
825
- module_eval <<'.,.,', 'mediawikiparser.y', 326
826
- def _reduce_51( val, _values, result )
827
- result = ListItemAST.new
1244
+ module_eval <<'.,.,', 'mediawikiparser.y', 427
1245
+ def _reduce_66( val, _values, result )
1246
+ result = ListItemAST.new(@ast_index, @ast_length)
828
1247
  result
829
1248
  end
830
1249
  .,.,
831
1250
 
832
- module_eval <<'.,.,', 'mediawikiparser.y', 332
833
- def _reduce_52( val, _values, result )
834
- li = ListItemAST.new
1251
+ module_eval <<'.,.,', 'mediawikiparser.y', 433
1252
+ def _reduce_67( val, _values, result )
1253
+ li = ListItemAST.new(@ast_index, @ast_length)
835
1254
  li.children += val[1]
836
1255
  result = li
837
1256
  result
838
1257
  end
839
1258
  .,.,
840
1259
 
841
- module_eval <<'.,.,', 'mediawikiparser.y', 335
842
- def _reduce_53( val, _values, result )
843
- result = val[0]
1260
+ module_eval <<'.,.,', 'mediawikiparser.y', 441
1261
+ def _reduce_68( val, _values, result )
1262
+ result = [val[1]]
1263
+ result += val[2]
844
1264
  result
845
1265
  end
846
1266
  .,.,
847
1267
 
848
- module_eval <<'.,.,', 'mediawikiparser.y', 344
849
- def _reduce_54( val, _values, result )
1268
+ module_eval <<'.,.,', 'mediawikiparser.y', 445
1269
+ def _reduce_69( val, _values, result )
1270
+ result = val[1]
1271
+ result
1272
+ end
1273
+ .,.,
1274
+
1275
+ module_eval <<'.,.,', 'mediawikiparser.y', 452
1276
+ def _reduce_70( val, _values, result )
1277
+ result = ListTermAST.new(@ast_index, @ast_length)
1278
+ result
1279
+ end
1280
+ .,.,
1281
+
1282
+ module_eval <<'.,.,', 'mediawikiparser.y', 458
1283
+ def _reduce_71( val, _values, result )
1284
+ term = ListTermAST.new(@ast_index, @ast_length)
1285
+ term.children += val[1]
1286
+ result = term
1287
+ result
1288
+ end
1289
+ .,.,
1290
+
1291
+ module_eval <<'.,.,', 'mediawikiparser.y', 465
1292
+ def _reduce_72( val, _values, result )
1293
+ result = [val[0]]
1294
+ result += val[1] if val[1]
1295
+ result
1296
+ end
1297
+ .,.,
1298
+
1299
+ module_eval <<'.,.,', 'mediawikiparser.y', 469
1300
+ def _reduce_73( val, _values, result )
1301
+ result = []
1302
+ result
1303
+ end
1304
+ .,.,
1305
+
1306
+ module_eval <<'.,.,', 'mediawikiparser.y', 475
1307
+ def _reduce_74( val, _values, result )
1308
+ result = ListDefinitionAST.new(@ast_index, @ast_length)
1309
+ result
1310
+ end
1311
+ .,.,
1312
+
1313
+ module_eval <<'.,.,', 'mediawikiparser.y', 481
1314
+ def _reduce_75( val, _values, result )
1315
+ term = ListDefinitionAST.new(@ast_index, @ast_length)
1316
+ term.children += val[1]
1317
+ result = term
1318
+ result
1319
+ end
1320
+ .,.,
1321
+
1322
+ module_eval <<'.,.,', 'mediawikiparser.y', 488
1323
+ def _reduce_76( val, _values, result )
1324
+ p = PreformattedAST.new(@ast_index, @ast_length)
1325
+ p.children += val[1]
1326
+ result = p
1327
+ result
1328
+ end
1329
+ .,.,
1330
+
1331
+ module_eval <<'.,.,', 'mediawikiparser.y', 495
1332
+ def _reduce_77( val, _values, result )
1333
+ p = PreformattedAST.new(@ast_index, @ast_length)
1334
+ p.indented = true
1335
+ p.children += val[1]
1336
+ result = p
1337
+ result
1338
+ end
1339
+ .,.,
1340
+
1341
+ module_eval <<'.,.,', 'mediawikiparser.y', 503
1342
+ def _reduce_78( val, _values, result )
850
1343
  result = [val[1], val[0].length]
851
- s = SectionAST.new
1344
+ s = SectionAST.new(@ast_index, @ast_length)
852
1345
  s.children = val[1]
853
1346
  s.level = val[0].length
854
1347
  result = s
@@ -856,6 +1349,43 @@ module_eval <<'.,.,', 'mediawikiparser.y', 344
856
1349
  end
857
1350
  .,.,
858
1351
 
1352
+ module_eval <<'.,.,', 'mediawikiparser.y', 513
1353
+ def _reduce_79( val, _values, result )
1354
+ t = TemplateAST.new(@ast_index, @ast_length)
1355
+ t.template_name = val[1]
1356
+ t.children = val[2] unless val[2].nil? or val[2].empty?
1357
+ result = t
1358
+ result
1359
+ end
1360
+ .,.,
1361
+
1362
+ module_eval <<'.,.,', 'mediawikiparser.y', 519
1363
+ def _reduce_80( val, _values, result )
1364
+ result = nil
1365
+ result
1366
+ end
1367
+ .,.,
1368
+
1369
+ module_eval <<'.,.,', 'mediawikiparser.y', 526
1370
+ def _reduce_81( val, _values, result )
1371
+ p = TemplateParameterAST.new(@ast_index, @ast_length)
1372
+ p.parameter_value = val[1]
1373
+ result = [p]
1374
+ result += val[2] if val[2]
1375
+ result
1376
+ end
1377
+ .,.,
1378
+
1379
+ module_eval <<'.,.,', 'mediawikiparser.y', 533
1380
+ def _reduce_82( val, _values, result )
1381
+ p = TemplateParameterAST.new(@ast_index, @ast_length)
1382
+ p.children << val[1]
1383
+ result = [p]
1384
+ result += val[2] if val[2]
1385
+ result
1386
+ end
1387
+ .,.,
1388
+
859
1389
  def _reduce_none( val, _values, result )
860
1390
  result
861
1391
  end