You are here: Home > Latest news from Darcs > Imports changes from Mediacloth revision r127

Revision 20080618152655-9043f-6aa837...

Imports changes from Mediacloth revision r127

vendor/mediacloth-trunk/lib/mediacloth/mediawikiast.rb
vendor/mediacloth-trunk/lib/mediacloth/mediawikilexer.rb
vendor/mediacloth-trunk/lib/mediacloth/mediawikiparser.rb
vendor/mediacloth-trunk/lib/mediacloth/mediawikiparser.y
vendor/mediacloth-trunk/test/data/html12
vendor/mediacloth-trunk/test/data/input12
vendor/mediacloth-trunk/test/data/lex12
vendor/mediacloth-trunk/test/lexer.rb

Changes to mediawikiast.rb

122
end
end
122
123
123
124
# The node to represent pre-defined (or user-defined) variables, such as
# The node to represent pre-defined (or user-defined) variables, such as
124
125
# {{Date}}. The text attributes contains the entire string inbetween '{{'
# {{Date}}.
125
126
# and '}}'.
 
127
class VariableAST < AST
class VariableAST < AST
126
128
    attr_accessor :text
 
129
end
end
127
130
128
131
#The node to represent categories to which this page belongs
#The node to represent categories to which this page belongs
129

Changes to mediawikilexer.rb

137
        
        
137
138
    # Lexer table used when inside a wiki variable reference
    # Lexer table used when inside a wiki variable reference
138
139
    @variable_lexer_table = {}
    @variable_lexer_table = {}
139
 
    @variable_lexer_table["{"] = method(:match_left_curly_in_variable)
140
140
    @variable_lexer_table["}"] = method(:match_right_curly_in_variable)
    @variable_lexer_table["}"] = method(:match_right_curly_in_variable)
141
141
        
        
142
142
    # Begin lexing in default state
    # Begin lexing in default state
143
429 more lines
572
    end
    end
573
573
  end
  end
574
574
  
  
575
 
  def match_left_curly_in_variable
576
 
    if @text[@cursor + 1, 1] == '{' and @text[@cursor + 2, 2] != "}}"
577
 
      start_span(:VARIABLE, "{{")
578
 
      @cursor += 2
579
 
      @lexer_table.push(@variable_lexer_table)
580
 
    else
581
 
      match_text
582
 
    end
583
 
  end
584
 
  
585
575
  def match_right_curly_in_variable
  def match_right_curly_in_variable
586
576
    if @text[@cursor + 1, 1] == '}'
    if @text[@cursor + 1, 1] == '}'
587
577
      end_span(:VARIABLE, "}}")
      end_span(:VARIABLE, "}}")
588

Changes to mediawikiparser.rb

12
12
13
class MediaWikiParser < Racc::Parser
class MediaWikiParser < Racc::Parser
13
14
14
15
module_eval <<'..end mediawikiparser.y modeval..id82fc340af4', 'mediawikiparser.y', 498
module_eval <<'..end mediawikiparser.y modeval..id87c5337b77', 'mediawikiparser.y', 517
15
16
16
17
attr_accessor :lexer
attr_accessor :lexer
17
18
18
14 more lines
33
def next_token
def next_token
33
34
    return @lexer.lex
    return @lexer.lex
34
35
end
end
35
36
..end mediawikiparser.y modeval..id82fc340af4
..end mediawikiparser.y modeval..id87c5337b77
36
37
37
38
##### racc 1.4.5 generates ###
##### racc 1.4.5 generates ###
38
39
39
75 more lines
115
 3, 82, :_reduce_74,
 3, 82, :_reduce_74,
115
116
 3, 61, :_reduce_75,
 3, 61, :_reduce_75,
116
117
 3, 62, :_reduce_76,
 3, 62, :_reduce_76,
117
118
 3, 64, :_reduce_77 ]
 3, 64, :_reduce_77,
118
 
 1, 83, :_reduce_78,
119
 
 2, 83, :_reduce_79,
120
 
 2, 83, :_reduce_80,
121
 
 3, 83, :_reduce_81 ]
122
119
123
120
racc_reduce_n = 78
racc_reduce_n = 82
124
121
125
122
racc_shift_n = 146
racc_shift_n = 151
126
123
127
124
racc_action_table = [
racc_action_table = [
128
125
    61,     5,     9,    52,    15,    83,    23,    85,   118,    33,
    63,     5,     9,    54,    15,    48,    23,   122,    87,    33,
129
126
    84,    60,    83,     7,    85,    16,    20,    40,    25,    30,
    89,    62,    88,     7,   104,    16,    20,    40,    25,    30,
130
127
    32,     1,     4,    83,     8,    85,    14,    83,    80,    85,
    32,     1,     4,    87,     8,    89,    14,    87,    83,    89,
131
128
    29,    83,    55,    85,    56,    79,    11,    44,    74,    44,
    29,    87,    87,    89,    89,    57,    11,    58,    99,   101,
132
129
    26,    95,    97,   105,    54,    77,   108,   -64,    17,    19,
    26,    44,    76,    81,    56,    44,   109,   110,    17,    19,
133
130
    62,     5,     9,    83,    15,    85,    23,    99,    98,    33,
    64,     5,     9,    19,    15,    87,    23,    89,    80,    33,
134
131
   114,   -64,    64,     7,   117,    16,    20,   100,    25,    30,
   113,    19,   102,     7,   -64,    16,    20,   119,    25,    30,
135
132
    32,     1,     4,    63,     8,   120,    14,   121,    94,   -62,
    32,     1,     4,    98,     8,   -64,    14,   103,   123,    66,
136
133
    29,    56,    51,    92,   128,    48,    11,    56,     5,     9,
    29,   125,   126,    65,   -62,    58,    11,    96,     5,     9,
137
134
    26,    15,    54,    23,    95,    40,    33,   133,    17,    19,
    26,    15,    58,    23,   133,    53,    33,    84,    17,    19,
138
135
     7,   135,    16,    20,   136,    25,    30,    32,     1,     4,
     7,    56,    16,    20,    99,    25,    30,    32,     1,     4,
139
136
    44,     8,    54,    14,    54,    82,   141,    29,    40,   144,
    40,     8,   138,    14,   140,   141,    44,    29,    56,    56,
140
137
   122,   nil,   nil,    11,   nil,   nil,   nil,    26,   nil,     5,
    86,   146,    40,    11,   149,   127,   nil,    26,   nil,     5,
141
138
     9,   nil,    15,   nil,    23,    17,    19,    33,   nil,   133,
     9,   nil,    15,   nil,    23,    17,    19,    33,   nil,   138,
142
139
   nil,     7,   nil,    16,    20,   nil,    25,    30,    32,     1,
   nil,     7,   nil,    16,    20,   nil,    25,    30,    32,     1,
143
140
     4,   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,
     4,   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,
144
141
   nil,   nil,   nil,   nil,    11,   nil,   nil,   nil,    26,   nil,
   nil,   nil,   nil,   nil,    11,   nil,   nil,   nil,    26,   nil,
145
16 more lines
158
     7,   nil,    16,    20,   nil,    25,    30,    32,     1,     4,
     7,   nil,    16,    20,   nil,    25,    30,    32,     1,     4,
162
159
   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,
   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,
163
160
   nil,   nil,   nil,    11,   nil,     5,     9,    26,    15,   nil,
   nil,   nil,   nil,    11,   nil,     5,     9,    26,    15,   nil,
164
161
    23,   nil,   nil,    33,   129,    17,    19,     7,   nil,    16,
    23,   nil,   nil,    33,   nil,    17,    19,     7,   nil,    16,
165
162
    20,   nil,    25,    30,    32,     1,     4,   nil,     8,   nil,
    20,   nil,    25,    30,    32,     1,     4,   nil,     8,   nil,
166
163
    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,   nil,
    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,   nil,
167
164
    11,   nil,     5,     9,    26,    15,   nil,    23,   nil,   nil,
    11,   nil,     5,     9,    26,    15,   nil,    23,   nil,   nil,
168
165
    33,   nil,    17,    19,     7,   nil,    16,    20,   nil,    25,
    33,   134,    17,    19,     7,   nil,    16,    20,   nil,    25,
169
166
    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,
    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,
170
167
   nil,    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,   nil,
   nil,    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,   nil,
171
168
   nil,    26,   nil,   nil,   nil,   nil,   126,   nil,   nil,    17,
   nil,    26,   nil,   nil,   nil,   nil,   131,   nil,   nil,    17,
172
169
    19,     5,     9,   nil,    15,   nil,    23,   nil,   125,    33,
    19,     5,     9,   nil,    15,   nil,    23,   nil,   130,    33,
173
170
   nil,   nil,   nil,     7,   nil,    16,    20,   nil,    25,    30,
   nil,   nil,   nil,     7,   nil,    16,    20,   nil,    25,    30,
174
171
    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,   nil,
    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,   nil,
175
172
    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,     5,     9,
    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,     5,     9,
176
173
    26,    15,   nil,    23,   nil,   nil,    33,   nil,    17,    19,
    26,    15,   nil,    23,   nil,   nil,    33,   nil,    17,    19,
177
174
     7,   nil,    16,    20,   nil,    25,    30,    32,     1,     4,
     7,   nil,    16,    20,   nil,    25,    30,    32,     1,     4,
178
175
   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,
   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,
179
176
    88,   nil,   nil,    11,   nil,     5,     9,    26,    15,   nil,
   nil,   nil,   nil,    11,   nil,     5,     9,    26,    15,   nil,
180
177
    23,   nil,   nil,    33,   nil,    17,    19,     7,   nil,    16,
    23,   nil,   nil,    33,   nil,    17,    19,     7,   nil,    16,
181
178
    20,   nil,    25,    30,    32,     1,     4,   nil,     8,   nil,
    20,   nil,    25,    30,    32,     1,     4,   nil,     8,   nil,
182
179
    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,   nil,
    14,   nil,   nil,   nil,    29,   nil,   nil,    92,   nil,   nil,
183
180
    11,   nil,     5,     9,    26,    15,   nil,    23,   nil,   nil,
    11,   nil,     5,     9,    26,    15,   nil,    23,   nil,   nil,
184
181
    33,   nil,    17,    19,     7,   nil,    16,    20,   nil,    25,
    33,   nil,    17,    19,     7,   nil,    16,    20,   nil,    25,
185
182
    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,
    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,
186
2 more lines
185
    19,     7,   nil,    16,    20,   nil,    25,    30,    32,     1,
    19,     7,   nil,    16,    20,   nil,    25,    30,    32,     1,
189
186
     4,   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,
     4,   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,
190
187
   nil,   nil,   nil,   nil,    11,   nil,     5,     9,    26,    15,
   nil,   nil,   nil,   nil,    11,   nil,     5,     9,    26,    15,
191
188
   nil,    23,   nil,   nil,    33,   nil,    17,    19,     7,   nil,
   nil,    23,   nil,   nil,    33,   nil,    17,    19,     7,    67,
192
189
    16,    20,   nil,    25,    30,    32,     1,     4,   nil,     8,
    16,    20,   nil,    25,    30,    32,     1,     4,   nil,     8,
193
190
   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,
   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,
194
191
   116,    11,   nil,     5,     9,    26,    15,   nil,    23,   nil,
   nil,    11,   nil,     5,     9,    26,    15,   nil,    23,   nil,
195
192
   nil,    33,   nil,    17,    19,     7,    65,    16,    20,   nil,
   nil,    33,   nil,    17,    19,     7,   nil,    16,    20,   nil,
196
193
    25,    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,
    25,    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,
197
194
   nil,   nil,    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,
   nil,   nil,    29,   nil,   nil,   nil,   nil,   121,    11,   nil,
198
195
     5,     9,    26,    15,   nil,    23,   nil,   nil,    33,   nil,
     5,     9,    26,    15,   nil,    23,   nil,   nil,    33,   nil,
199
196
    17,    19,     7,   nil,    16,    20,   nil,    25,    30,    32,
    17,    19,     7,   nil,    16,    20,   nil,    25,    30,    32,
200
197
     1,     4,   nil,     8,   nil,    14,   nil,   nil,   nil,    29,
     1,     4,   nil,     8,   nil,    14,   nil,   nil,    71,    29,
201
198
   nil,   nil,   115,   nil,   nil,    11,   nil,     5,     9,    26,
   nil,   nil,   nil,   nil,   nil,    11,   nil,   nil,   nil,    26,
202
199
    15,   nil,    23,   nil,   nil,    33,   nil,    17,    19,     7,
   nil,     5,     9,    72,    15,   nil,    23,    17,    19,    33,
203
200
   nil,    16,    20,   nil,    25,    30,    32,     1,     4,   nil,
   nil,   nil,   nil,     7,   nil,    16,    20,   nil,    25,    30,
204
201
     8,   nil,    14,   nil,   nil,    69,    29,   nil,   nil,   nil,
    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,   nil,
205
202
   nil,   nil,    11,   nil,   nil,   nil,    26,   nil,     5,     9,
    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,     5,     9,
206
203
    70,    15,   nil,    23,    17,    19,    33,   nil,   nil,   nil,
    26,    15,   nil,    23,   nil,   nil,    33,   nil,    17,    19,
207
204
     7,   nil,    16,    20,   nil,    25,    30,    32,     1,     4,
     7,   nil,    16,    20,   nil,    25,    30,    32,     1,     4,
208
205
   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,
   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,
209
206
   nil,   nil,   nil,    11,   nil,     5,     9,    26,    15,   nil,
   nil,   nil,   nil,    11,    74,     5,     9,    26,    15,   nil,
210
207
    23,   nil,   nil,    33,   nil,    17,    19,     7,   nil,    16,
    23,   nil,   nil,    33,   nil,    17,    19,     7,   nil,    16,
211
208
    20,   nil,    25,    30,    32,     1,     4,   nil,     8,   nil,
    20,   nil,    25,    30,    32,     1,     4,   nil,     8,   nil,
212
209
    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,   nil,
    14,   nil,   nil,   nil,    29,   nil,   nil,   120,   nil,   nil,
213
210
    11,    72,     5,     9,    26,    15,   nil,    23,   nil,   nil,
    11,   nil,     5,     9,    26,    15,   nil,    23,   nil,   nil,
214
211
    33,   nil,    17,    19,     7,   nil,    16,    20,   nil,    25,
    33,   nil,    17,    19,     7,   nil,    16,    20,   nil,    25,
215
212
    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,
    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,
216
213
   nil,    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,     5,
   nil,    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,     5,
217
214
     9,    26,    15,   nil,    23,   nil,   nil,    33,   113,    17,
     9,    26,    15,    78,    23,   nil,   nil,    33,   118,    17,
218
215
    19,     7,   nil,    16,    20,   nil,    25,    30,    32,     1,
    19,     7,   nil,    16,    20,   nil,    25,    30,    32,     1,
219
216
     4,   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,
     4,   nil,     8,   nil,    14,   nil,   nil,   nil,    29,   nil,
220
217
   nil,   nil,   nil,   nil,    11,   nil,     5,     9,    26,    15,
   nil,   nil,   nil,   nil,    11,   nil,     5,     9,    26,    15,
221
218
    76,    23,   nil,   110,    33,   nil,    17,    19,     7,   nil,
   nil,    23,   nil,   nil,    33,   nil,    17,    19,     7,   nil,
222
219
    16,    20,   nil,    25,    30,    32,     1,     4,   nil,     8,
    16,    20,   nil,    25,    30,    32,     1,     4,   nil,     8,
223
220
   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,
   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,
224
221
   nil,    11,   nil,     5,     9,    26,    15,   nil,    23,   nil,
   nil,    11,   nil,     5,     9,    26,    15,   nil,    23,   nil,
225
222
   nil,    33,   nil,    17,    19,     7,   nil,    16,    20,   nil,
   115,    33,   nil,    17,    19,     7,   nil,    16,    20,   nil,
226
223
    25,    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,
    25,    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,
227
224
   nil,   nil,    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,
   nil,   nil,    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,
228
225
     5,     9,    26,    15,   nil,    23,   nil,   nil,    33,   nil,
     5,     9,    26,    15,   nil,    23,   nil,   nil,    33,   nil,
229
226
    17,    19,     7,   nil,    16,    20,    78,    25,    30,    32,
    17,    19,     7,   nil,    16,    20,   nil,    25,    30,    32,
230
227
     1,     4,   nil,     8,   nil,    14,   nil,   nil,   nil,    29,
     1,     4,   nil,     8,   nil,    14,   nil,   nil,   nil,    29,
231
228
   nil,   nil,   nil,   nil,   nil,    11,   nil,     5,     9,    26,
   nil,   nil,   nil,   nil,   nil,    11,   107,     5,     9,    26,
232
229
    15,   nil,    23,   nil,   nil,    33,   nil,    17,    19,     7,
    15,   nil,    23,   nil,   nil,    33,   nil,    17,    19,     7,
233
230
   nil,    16,    20,   nil,    25,    30,    32,     1,     4,   nil,
   nil,    16,    20,    82,    25,    30,    32,     1,     4,   nil,
234
231
     8,   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,
     8,   nil,    14,   nil,   nil,   nil,    29,   nil,   nil,   nil,
235
232
   nil,   nil,    11,   103,     5,     9,    26,    15,   nil,    23,
   nil,   nil,    11,   nil,     5,     9,    26,    15,   nil,    23,
236
233
   nil,   nil,    33,   nil,    17,    19,     7,   nil,    16,    20,
   nil,   nil,    33,   nil,    17,    19,     7,   nil,    16,    20,
237
234
   nil,    25,    30,    32,     1,     4,   nil,     8,   nil,    14,
   nil,    25,    30,    32,     1,     4,   nil,     8,   nil,    14,
238
235
   nil,   nil,   102,    29,   nil,   nil,   nil,   nil,   nil,    11,
   nil,   nil,   106,    29,   nil,   nil,   nil,   nil,   nil,    11,
239
236
   nil,     5,     9,    26,    15,   nil,    23,   nil,   nil,    33,
   nil,     5,     9,    26,    15,   nil,    23,   nil,   nil,    33,
240
237
   nil,    17,    19,     7,   nil,    16,    20,   nil,    25,    30,
   nil,    17,    19,     7,   nil,    16,    20,   nil,    25,    30,
241
238
    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,   nil,
    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,   nil,
242
239
    29,   nil,   nil,   nil,   nil,    90,    11,   nil,   nil,   nil,
    29,   nil,   nil,   nil,   nil,    94,    11,   nil,   nil,   nil,
243
240
    26,   nil,     5,     9,   nil,    15,   nil,    23,    17,    19,
    26,   nil,     5,     9,   nil,    15,   nil,    23,    17,    19,
244
241
    33,   nil,   133,   nil,     7,   nil,    16,    20,   nil,    25,
    33,   nil,   138,   nil,     7,   nil,    16,    20,   nil,    25,
245
242
    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,
    30,    32,     1,     4,   nil,     8,   nil,    14,   nil,   nil,
246
243
   nil,    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,   nil,
   nil,    29,   nil,   nil,   nil,   nil,   nil,    11,   nil,   nil,
247
244
   nil,    26,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    17,
   nil,    26,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    17,
248
245
    19 ]
    19 ]
249
246
250
247
racc_action_check = [
racc_action_check = [
251
248
    33,    95,    95,    26,    95,   126,    95,   126,    94,    95,
    33,    36,    36,    26,    36,    19,    36,    95,   131,    36,
252
249
    54,    33,   113,    95,   113,    95,    95,    67,    95,    95,
   131,    33,    56,    36,    68,    36,    36,    69,    36,    36,
253
250
    95,    95,    95,   110,    95,   110,    95,   129,    51,   129,
    36,    36,    36,   118,    36,   118,    36,   115,    52,   115,
254
251
    95,    84,    29,    84,    29,    50,    95,    44,    44,    74,
    36,   134,    88,   134,    88,    29,    36,    29,    63,    63,
255
252
    95,    61,    61,    75,    26,    48,    81,    45,    95,    95,
    36,    44,    44,    50,    26,    76,    77,    79,    36,    36,
256
253
    33,     4,     4,    54,     4,    54,     4,    63,    62,     4,
    33,     4,     4,    19,     4,    56,     4,    56,    49,     4,
257
254
    86,    39,    37,     4,    91,     4,     4,    66,     4,     4,
    85,    48,    64,     4,    45,     4,     4,    90,     4,     4,
258
255
     4,     4,     4,    34,     4,    96,     4,    97,    60,   101,
     4,     4,     4,    62,     4,    39,     4,    65,    98,    37,
259
256
     4,    59,    23,    58,   111,    19,     4,    57,     7,     7,
     4,   100,   101,    34,   105,    61,     4,    60,     7,     7,
260
257
     4,     7,   114,     7,   118,    14,     7,   121,     4,     4,
     4,     7,    59,     7,   116,    23,     7,    53,     4,     4,
261
258
     7,   122,     7,     7,   123,     7,     7,     7,     7,     7,
     7,   119,     7,     7,   123,     7,     7,     7,     7,     7,
262
259
    11,     7,    52,     7,   128,    53,   132,     7,     8,   134,
    14,     7,   126,     7,   127,   128,    11,     7,    54,   133,
263
260
    98,   nil,   nil,     7,   nil,   nil,   nil,     7,   nil,   133,
    55,   137,     8,     7,   139,   102,   nil,     7,   nil,   138,
264
261
   133,   nil,   133,   nil,   133,     7,     7,   133,   nil,   133,
   138,   nil,   138,   nil,   138,     7,     7,   138,   nil,   138,
265
262
   nil,   133,   nil,   133,   133,   nil,   133,   133,   133,   133,
   nil,   138,   nil,   138,   138,   nil,   138,   138,   138,   138,
266
263
   133,   nil,   133,   nil,   133,   nil,   nil,   nil,   133,   nil,
   138,   nil,   138,   nil,   138,   nil,   nil,   nil,   138,   nil,
267
264
   nil,   nil,   nil,   nil,   133,   nil,   nil,   nil,   133,   nil,
   nil,   nil,   nil,   nil,   138,   nil,   nil,   nil,   138,   nil,
268
265
     9,     9,     9,     9,   nil,     9,   133,   133,     9,   nil,
     9,     9,     9,     9,   nil,     9,   138,   138,     9,   nil,
269
266
   nil,   nil,     9,   nil,     9,     9,   nil,     9,     9,     9,
   nil,   nil,     9,   nil,     9,     9,   nil,     9,     9,     9,
270
267
     9,     9,   nil,     9,   nil,     9,   nil,   nil,   nil,     9,
     9,     9,   nil,     9,   nil,     9,   nil,   nil,   nil,     9,
271
268
   nil,   nil,   nil,   nil,   nil,     9,   nil,   125,   125,     9,
   nil,   nil,   nil,   nil,   nil,     9,   nil,   130,   130,     9,
272
269
   125,   nil,   125,   nil,   nil,   125,   nil,     9,     9,   125,
   130,   nil,   130,   nil,   nil,   130,   nil,     9,     9,   130,
273
270
   nil,   125,   125,   nil,   125,   125,   125,   125,   125,   nil,
   nil,   130,   130,   nil,   130,   130,   130,   130,   130,   nil,
274
271
   125,   nil,   125,   nil,   nil,   nil,   125,   nil,   nil,   nil,
   130,   nil,   130,   nil,   nil,   nil,   130,   nil,   nil,   nil,
275
272
   nil,   nil,   125,   nil,   119,   119,   125,   119,   nil,   119,
   nil,   nil,   130,   nil,   124,   124,   130,   124,   nil,   124,
276
273
   nil,   nil,   119,   nil,   125,   125,   119,   nil,   119,   119,
   nil,   nil,   124,   nil,   130,   130,   124,   nil,   124,   124,
277
274
   nil,   119,   119,   119,   119,   119,   nil,   119,   nil,   119,
   nil,   124,   124,   124,   124,   124,   nil,   124,   nil,   124,
278
275
   nil,   nil,   nil,   119,   nil,   nil,   nil,   nil,   nil,   119,
   nil,   nil,   nil,   124,   nil,   nil,   nil,   nil,   nil,   124,
279
276
   nil,    15,    15,   119,    15,    15,    15,   nil,   nil,    15,
   nil,    15,    15,   124,    15,    15,    15,   nil,   nil,    15,
280
277
   nil,   119,   119,    15,   nil,    15,    15,   nil,    15,    15,
   nil,   124,   124,    15,   nil,    15,    15,   nil,    15,    15,
281
278
    15,    15,    15,   nil,    15,   nil,    15,   nil,   nil,   nil,
    15,    15,    15,   nil,    15,   nil,    15,   nil,   nil,   nil,
282
279
    15,   nil,   nil,   nil,   nil,   nil,    15,   nil,   112,   112,
    15,   nil,   nil,   nil,   nil,   nil,    15,   nil,    20,    20,
283
280
    15,   112,   nil,   112,   nil,   nil,   112,   nil,    15,    15,
    15,    20,   nil,    20,   nil,   nil,    20,   nil,    15,    15,
284
281
   112,   nil,   112,   112,   nil,   112,   112,   112,   112,   112,
    20,   nil,    20,    20,   nil,    20,    20,    20,    20,    20,
285
282
   nil,   112,   nil,   112,   nil,   nil,   nil,   112,   nil,   nil,
   nil,    20,   nil,    20,   nil,   nil,   nil,    20,   nil,   nil,
286
283
   nil,   nil,   nil,   112,   nil,    20,    20,   112,    20,   nil,
   nil,   nil,   nil,    20,   nil,   117,   117,    20,   117,   nil,
287
284
    20,   nil,   nil,    20,   112,   112,   112,    20,   nil,    20,
   117,   nil,   nil,   117,   nil,    20,    20,   117,   nil,   117,
288
285
    20,   nil,    20,    20,    20,    20,    20,   nil,    20,   nil,
   117,   nil,   117,   117,   117,   117,   117,   nil,   117,   nil,
289
286
    20,   nil,   nil,   nil,    20,   nil,   nil,   nil,   nil,   nil,
   117,   nil,   nil,   nil,   117,   nil,   nil,   nil,   nil,   nil,
290
287
    20,   nil,   109,   109,    20,   109,   nil,   109,   nil,   nil,
   117,   nil,   114,   114,   117,   114,   nil,   114,   nil,   nil,
291
288
   109,   nil,    20,    20,   109,   nil,   109,   109,   nil,   109,
   114,   117,   117,   117,   114,   nil,   114,   114,   nil,   114,
292
289
   109,   109,   109,   109,   nil,   109,   nil,   109,   nil,   nil,
   114,   114,   114,   114,   nil,   114,   nil,   114,   nil,   nil,
293
290
   nil,   109,   nil,   nil,   nil,   nil,   nil,   109,   nil,   nil,
   nil,   114,   nil,   nil,   nil,   nil,   nil,   114,   nil,   nil,
294
291
   nil,   109,   nil,   nil,   nil,   nil,   109,   nil,   nil,   109,
   nil,   114,   nil,   nil,   nil,   nil,   114,   nil,   nil,   114,
295
292
   109,   106,   106,   nil,   106,   nil,   106,   nil,   106,   106,
   114,   111,   111,   nil,   111,   nil,   111,   nil,   111,   111,
296
293
   nil,   nil,   nil,   106,   nil,   106,   106,   nil,   106,   106,
   nil,   nil,   nil,   111,   nil,   111,   111,   nil,   111,   111,
297
294
   106,   106,   106,   nil,   106,   nil,   106,   nil,   nil,   nil,
   111,   111,   111,   nil,   111,   nil,   111,   nil,   nil,   nil,
298
295
   106,   nil,   nil,   nil,   nil,   nil,   106,   nil,    55,    55,
   111,   nil,   nil,   nil,   nil,   nil,   111,   nil,     0,     0,
299
296
   106,    55,   nil,    55,   nil,   nil,    55,   nil,   106,   106,
   111,     0,   nil,     0,   nil,   nil,     0,   nil,   111,   111,
300
297
    55,   nil,    55,    55,   nil,    55,    55,    55,    55,    55,
     0,   nil,     0,     0,   nil,     0,     0,     0,     0,     0,
301
298
   nil,    55,   nil,    55,   nil,   nil,   nil,    55,   nil,   nil,
   nil,     0,   nil,     0,   nil,   nil,   nil,     0,   nil,   nil,
302
299
    55,   nil,   nil,    55,   nil,     0,     0,    55,     0,   nil,
   nil,   nil,   nil,     0,   nil,    57,    57,     0,    57,   nil,
303
300
     0,   nil,   nil,     0,   nil,    55,    55,     0,   nil,     0,
    57,   nil,   nil,    57,   nil,     0,     0,    57,   nil,    57,
304
301
     0,   nil,     0,     0,     0,     0,     0,   nil,     0,   nil,
    57,   nil,    57,    57,    57,    57,    57,   nil,    57,   nil,
305
302
     0,   nil,   nil,   nil,     0,   nil,   nil,   nil,   nil,   nil,
    57,   nil,   nil,   nil,    57,   nil,   nil,    57,   nil,   nil,
306
303
     0,   nil,     2,     2,     0,     2,   nil,     2,   nil,   nil,
    57,   nil,     2,     2,    57,     2,   nil,     2,   nil,   nil,
307
304
     2,   nil,     0,     0,     2,   nil,     2,     2,   nil,     2,
     2,   nil,    57,    57,     2,   nil,     2,     2,   nil,     2,
308
305
     2,     2,     2,     2,   nil,     2,   nil,     2,   nil,   nil,
     2,     2,     2,     2,   nil,     2,   nil,     2,   nil,   nil,
309
306
   nil,     2,   nil,   nil,   nil,   nil,   nil,     2,   nil,    36,
   nil,     2,   nil,   nil,   nil,   nil,   nil,     2,   nil,    99,
310
307
    36,     2,    36,   nil,    36,   nil,   nil,    36,   nil,     2,
    99,     2,    99,   nil,    99,   nil,   nil,    99,   nil,     2,
311
308
     2,    36,   nil,    36,    36,   nil,    36,    36,    36,    36,
     2,    99,   nil,    99,    99,   nil,    99,    99,    99,    99,
312
309
    36,   nil,    36,   nil,    36,   nil,   nil,   nil,    36,   nil,
    99,   nil,    99,   nil,    99,   nil,   nil,   nil,    99,   nil,
313
310
   nil,   nil,   nil,   nil,    36,   nil,    89,    89,    36,    89,
   nil,   nil,   nil,   nil,    99,   nil,    38,    38,    99,    38,
314
311
   nil,    89,   nil,   nil,    89,   nil,    36,    36,    89,   nil,
   nil,    38,   nil,   nil,    38,   nil,    99,    99,    38,    38,
315
312
    89,    89,   nil,    89,    89,    89,    89,    89,   nil,    89,
    38,    38,   nil,    38,    38,    38,    38,    38,   nil,    38,
316
313
   nil,    89,   nil,   nil,   nil,    89,   nil,   nil,   nil,   nil,
   nil,    38,   nil,   nil,   nil,    38,   nil,   nil,   nil,   nil,
317
314
    89,    89,   nil,    38,    38,    89,    38,   nil,    38,   nil,
   nil,    38,   nil,    93,    93,    38,    93,   nil,    93,   nil,
318
315
   nil,    38,   nil,    89,    89,    38,    38,    38,    38,   nil,
   nil,    93,   nil,    38,    38,    93,   nil,    93,    93,   nil,
319
316
    38,    38,    38,    38,    38,   nil,    38,   nil,    38,   nil,
    93,    93,    93,    93,    93,   nil,    93,   nil,    93,   nil,
320
317
   nil,   nil,    38,   nil,   nil,   nil,   nil,   nil,    38,   nil,
   nil,   nil,    93,   nil,   nil,   nil,   nil,    93,    93,   nil,
321
318
    87,    87,    38,    87,   nil,    87,   nil,   nil,    87,   nil,
    40,    40,    93,    40,   nil,    40,   nil,   nil,    40,   nil,
322
319
    38,    38,    87,   nil,    87,    87,   nil,    87,    87,    87,
    93,    93,    40,   nil,    40,    40,   nil,    40,    40,    40,
323
320
    87,    87,   nil,    87,   nil,    87,   nil,   nil,   nil,    87,
    40,    40,   nil,    40,   nil,    40,   nil,   nil,    40,    40,
324
321
   nil,   nil,    87,   nil,   nil,    87,   nil,    40,    40,    87,
   nil,   nil,   nil,   nil,   nil,    40,   nil,   nil,   nil,    40,
325
322
    40,   nil,    40,   nil,   nil,    40,   nil,    87,    87,    40,
   nil,    41,    41,    41,    41,   nil,    41,    40,    40,    41,
326
323
   nil,    40,    40,   nil,    40,    40,    40,    40,    40,   nil,
   nil,   nil,   nil,    41,   nil,    41,    41,   nil,    41,    41,
327
324
    40,   nil,    40,   nil,   nil,    40,    40,   nil,   nil,   nil,
    41,    41,    41,   nil,    41,   nil,    41,   nil,   nil,   nil,
328
325
   nil,   nil,    40,   nil,   nil,   nil,    40,   nil,    41,    41,
    41,   nil,   nil,   nil,   nil,   nil,    41,   nil,    43,    43,
329
326
    41,    41,   nil,    41,    40,    40,    41,   nil,   nil,   nil,
    41,    43,   nil,    43,   nil,   nil,    43,   nil,    41,    41,
330
327
    41,   nil,    41,    41,   nil,    41,    41,    41,    41,    41,
    43,   nil,    43,    43,   nil,    43,    43,    43,    43,    43,
331
328
   nil,    41,   nil,    41,   nil,   nil,   nil,    41,   nil,   nil,
   nil,    43,   nil,    43,   nil,   nil,   nil,    43,   nil,   nil,
332
329
   nil,   nil,   nil,    41,   nil,    43,    43,    41,    43,   nil,
   nil,   nil,   nil,    43,    43,    91,    91,    43,    91,   nil,
333
330
    43,   nil,   nil,    43,   nil,    41,    41,    43,   nil,    43,
    91,   nil,   nil,    91,   nil,    43,    43,    91,   nil,    91,
334
331
    43,   nil,    43,    43,    43,    43,    43,   nil,    43,   nil,
    91,   nil,    91,    91,    91,    91,    91,   nil,    91,   nil,
335
332
    43,   nil,   nil,   nil,    43,   nil,   nil,   nil,   nil,   nil,
    91,   nil,   nil,   nil,    91,   nil,   nil,    91,   nil,   nil,
336
333
    43,    43,    85,    85,    43,    85,   nil,    85,   nil,   nil,
    91,   nil,    89,    89,    91,    89,   nil,    89,   nil,   nil,
337
334
    85,   nil,    43,    43,    85,   nil,    85,    85,   nil,    85,
    89,   nil,    91,    91,    89,   nil,    89,    89,   nil,    89,
338
335
    85,    85,    85,    85,   nil,    85,   nil,    85,   nil,   nil,
    89,    89,    89,    89,   nil,    89,   nil,    89,   nil,   nil,
339
336
   nil,    85,   nil,   nil,   nil,   nil,   nil,    85,   nil,    83,
   nil,    89,   nil,   nil,   nil,   nil,   nil,    89,   nil,    46,
340
337
    83,    85,    83,   nil,    83,   nil,   nil,    83,    85,    85,
    46,    89,    46,    46,    46,   nil,   nil,    46,    89,    89,
341
338
    85,    83,   nil,    83,    83,   nil,    83,    83,    83,    83,
    89,    46,   nil,    46,    46,   nil,    46,    46,    46,    46,
342
339
    83,   nil,    83,   nil,    83,   nil,   nil,   nil,    83,   nil,
    46,   nil,    46,   nil,    46,   nil,   nil,   nil,    46,   nil,
343
340
   nil,   nil,   nil,   nil,    83,   nil,    46,    46,    83,    46,
   nil,   nil,   nil,   nil,    46,   nil,    87,    87,    46,    87,
344
341
    46,    46,   nil,    83,    46,   nil,    83,    83,    46,   nil,
   nil,    87,   nil,   nil,    87,   nil,    46,    46,    87,   nil,
345
342
    46,    46,   nil,    46,    46,    46,    46,    46,   nil,    46,
    87,    87,   nil,    87,    87,    87,    87,    87,   nil,    87,
346
343
   nil,    46,   nil,   nil,   nil,    46,   nil,   nil,   nil,   nil,
   nil,    87,   nil,   nil,   nil,    87,   nil,   nil,   nil,   nil,
347
344
   nil,    46,   nil,    80,    80,    46,    80,   nil,    80,   nil,
   nil,    87,   nil,    84,    84,    87,    84,   nil,    84,   nil,
348
345
   nil,    80,   nil,    46,    46,    80,   nil,    80,    80,   nil,
    87,    84,   nil,    87,    87,    84,   nil,    84,    84,   nil,
349
346
    80,    80,    80,    80,    80,   nil,    80,   nil,    80,   nil,
    84,    84,    84,    84,    84,   nil,    84,   nil,    84,   nil,
350
347
   nil,   nil,    80,   nil,   nil,   nil,   nil,   nil,    80,   nil,
   nil,   nil,    84,   nil,   nil,   nil,   nil,   nil,    84,   nil,
351
348
    49,    49,    80,    49,   nil,    49,   nil,   nil,    49,   nil,
    73,    73,    84,    73,   nil,    73,   nil,   nil,    73,   nil,
352
349
    80,    80,    49,   nil,    49,    49,    49,    49,    49,    49,
    84,    84,    73,   nil,    73,    73,   nil,    73,    73,    73,
353
350
    49,    49,   nil,    49,   nil,    49,   nil,   nil,   nil,    49,
    73,    73,   nil,    73,   nil,    73,   nil,   nil,   nil,    73,
354
351
   nil,   nil,   nil,   nil,   nil,    49,   nil,    71,    71,    49,
   nil,   nil,   nil,   nil,   nil,    73,    73,    51,    51,    73,
355
352
    71,   nil,    71,   nil,   nil,    71,   nil,    49,    49,    71,
    51,   nil,    51,   nil,   nil,    51,   nil,    73,    73,    51,
356
353
   nil,    71,    71,   nil,    71,    71,    71,    71,    71,   nil,
   nil,    51,    51,    51,    51,    51,    51,    51,    51,   nil,
357
354
    71,   nil,    71,   nil,   nil,   nil,    71,   nil,   nil,   nil,
    51,   nil,    51,   nil,   nil,   nil,    51,   nil,   nil,   nil,
358
355
   nil,   nil,    71,    71,    68,    68,    71,    68,   nil,    68,
   nil,   nil,    51,   nil,    70,    70,    51,    70,   nil,    70,
359
356
   nil,   nil,    68,   nil,    71,    71,    68,   nil,    68,    68,
   nil,   nil,    70,   nil,    51,    51,    70,   nil,    70,    70,
360
357
   nil,    68,    68,    68,    68,    68,   nil,    68,   nil,    68,
   nil,    70,    70,    70,    70,    70,   nil,    70,   nil,    70,
361
358
   nil,   nil,    68,    68,   nil,   nil,   nil,   nil,   nil,    68,
   nil,   nil,    70,    70,   nil,   nil,   nil,   nil,   nil,    70,
362
359
   nil,    56,    56,    68,    56,   nil,    56,   nil,   nil,    56,
   nil,    58,    58,    70,    58,   nil,    58,   nil,   nil,    58,
363
360
   nil,    68,    68,    56,   nil,    56,    56,   nil,    56,    56,
   nil,    70,    70,    58,   nil,    58,    58,   nil,    58,    58,
364
361
    56,    56,    56,   nil,    56,   nil,    56,   nil,   nil,   nil,
    58,    58,    58,   nil,    58,   nil,    58,   nil,   nil,   nil,
365
362
    56,   nil,   nil,   nil,   nil,    56,    56,   nil,   nil,   nil,
    58,   nil,   nil,   nil,   nil,    58,    58,   nil,   nil,   nil,
366
363
    56,   nil,   142,   142,   nil,   142,   nil,   142,    56,    56,
    58,   nil,   147,   147,   nil,   147,   nil,   147,    58,    58,
367
364
   142,   nil,   142,   nil,   142,   nil,   142,   142,   nil,   142,
   147,   nil,   147,   nil,   147,   nil,   147,   147,   nil,   147,
368
365
   142,   142,   142,   142,   nil,   142,   nil,   142,   nil,   nil,
   147,   147,   147,   147,   nil,   147,   nil,   147,   nil,   nil,
369
366
   nil,   142,   nil,   nil,   nil,   nil,   nil,   142,   nil,   nil,
   nil,   147,   nil,   nil,   nil,   nil,   nil,   147,   nil,   nil,
370
367
   nil,   142,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   142,
   nil,   147,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   147,
371
368
   142 ]
   147 ]
372
369
373
370
racc_action_pointer = [
racc_action_pointer = [
374
371
   513,   nil,   550,   nil,    49,   nil,   nil,    86,    89,   168,
   476,   nil,   550,   nil,    49,   nil,   nil,    86,    93,   168,
375
372
   nil,    71,   nil,   nil,    66,   279,   nil,   nil,   nil,    83,
   nil,    77,   nil,   nil,    81,   279,   nil,   nil,   nil,     3,
376
373
   353,   nil,   nil,    80,   nil,   nil,     1,   nil,   nil,    -1,
   316,   nil,   nil,    93,   nil,   nil,     1,   nil,   nil,     2,
377
374
   nil,   nil,   nil,    -2,    73,   nil,   587,    38,   661,    35,
   nil,   nil,   nil,    -2,    83,   nil,    -1,    55,   624,    49,
378
375
   735,   776,   nil,   813,    -2,    19,   924,   nil,    -6,   998,
   698,   739,   nil,   776,     2,    36,   887,   nil,    11,     7,
379
376
    27,    19,    69,    73,     8,   476,  1109,    52,    51,    46,
    41,  1035,    20,    88,    75,    78,    10,   513,  1109,    57,
380
377
    26,    29,    56,    57,   nil,   nil,    41,   -12,  1072,   nil,
    55,    50,    21,    26,    60,    77,   nil,   nil,   -12,   -12,
381
378
   nil,  1035,   nil,   nil,     0,    15,   nil,   nil,   nil,   nil,
  1072,   nil,   nil,   998,   nil,   nil,     6,    18,   nil,    45,
382
379
   961,     4,   nil,   887,   -14,   850,    16,   698,   nil,   624,
   nil,   nil,   nil,   nil,   961,    18,   nil,   924,   -13,   850,
383
380
   nil,    32,   nil,   nil,     6,    -1,    64,    75,   108,   nil,
    23,   813,   nil,   661,   nil,   -25,   nil,   nil,    76,   587,
384
381
   nil,    50,   nil,   nil,   nil,   nil,   439,   nil,   nil,   390,
    70,    80,   113,   nil,   nil,    55,   nil,   nil,   nil,   nil,
385
382
   -22,    40,   316,   -33,    49,   nil,   nil,   nil,    82,   242,
   nil,   439,   nil,   nil,   390,   -18,    50,   353,   -22,    58,
386
383
   nil,    85,    99,    93,   nil,   205,   -40,   nil,    71,   -18,
   nil,   nil,   nil,    92,   242,   nil,   100,   112,   104,   nil,
387
384
   nil,   nil,   105,   127,   108,   nil,   nil,   nil,   nil,   nil,
   205,   -37,   nil,    76,   -14,   nil,   nil,   110,   127,   113,
388
385
   nil,   nil,  1150,   nil,   nil,   nil ]
   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1150,   nil,   nil,
389
 
   nil ]
390
386
391
387
racc_action_default = [
racc_action_default = [
392
388
   -78,   -55,    -1,   -36,   -18,   -50,    -2,   -78,   -78,   -78,
   -82,   -55,    -1,   -36,   -18,   -50,    -2,   -82,   -82,   -82,
393
389
    -3,   -22,   -17,    -4,   -78,   -78,   -52,   -10,    -5,   -78,
    -3,   -22,   -17,    -4,   -82,   -82,   -52,   -10,    -5,   -82,
394
390
   -78,    -6,   -38,   -78,    -7,   -51,   -42,   -39,    -8,   -72,
   -82,    -6,   -38,   -82,    -7,   -51,   -42,   -39,    -8,   -72,
395
391
   -54,    -9,   -53,   -78,   -78,   -37,   -19,   -78,   -78,   -62,
   -54,    -9,   -53,   -82,   -82,   -37,   -19,   -82,   -82,   -62,
396
392
   -78,   -78,   -56,   -78,   -22,   -62,   -78,   -57,   -78,   -78,
   -82,   -82,   -56,   -82,   -22,   -62,   -82,   -57,   -78,   -82,
397
393
   -78,   -25,   -42,   -78,   -45,   -78,   -78,   -72,   -78,   -72,
   -82,   -82,   -82,   -25,   -42,   -82,   -45,   -82,   -82,   -72,
398
394
   -78,   -29,   -78,   -78,   -11,   -75,   -78,   -78,   -78,   -65,
   -82,   -72,   -82,   -29,   -82,   -82,   -11,   -75,   -82,   -82,
399
395
   -58,   -78,   -20,   -23,   -22,   -78,   -59,   -77,   -76,   -12,
   -82,   -65,   -58,   -82,   -20,   -23,   -22,   -82,   -59,   -80,
400
396
   -78,   -78,   -40,   -78,   -45,   -78,   -78,   -78,   -69,   -78,
   -77,   -79,   -76,   -12,   -82,   -82,   -40,   -82,   -45,   -82,
401
397
   -73,   -78,   -68,   -71,   -78,   -78,   -78,   -78,   -31,   146,
   -82,   -82,   -69,   -82,   -73,   -82,   -68,   -71,   -82,   -82,
402
398
   -60,   -64,   -66,   -21,   -24,   -61,   -27,   -26,   -41,   -78,
   -82,   -82,   -31,   151,   -60,   -64,   -66,   -21,   -24,   -61,
403
399
   -45,   -78,   -78,   -45,   -42,   -70,   -74,   -67,   -29,   -30,
   -81,   -27,   -26,   -41,   -82,   -45,   -82,   -82,   -45,   -42,
404
400
   -14,   -33,   -78,   -78,   -63,   -78,   -45,   -46,   -42,   -45,
   -70,   -74,   -67,   -29,   -30,   -14,   -33,   -82,   -82,   -63,
405
401
   -48,   -43,   -78,   -33,   -78,   -32,   -15,   -28,   -47,   -44,
   -82,   -45,   -46,   -42,   -45,   -48,   -43,   -82,   -33,   -82,
406
402
   -49,   -16,   -33,   -34,   -13,   -35 ]
   -32,   -15,   -28,   -47,   -44,   -49,   -16,   -33,   -34,   -13,
407
 
   -35 ]
408
403
409
404
racc_goto_table = [
racc_goto_table = [
410
405
    35,    53,    58,     2,    43,    86,    96,    36,    66,    39,
    35,    55,   100,     2,    50,    90,   112,    36,    68,    39,
411
406
    38,   107,    41,    37,    75,    45,    50,   134,    46,   123,
    38,    34,    41,   128,    77,    45,    52,    43,    46,   139,
412
407
    57,    34,   nil,    49,   nil,   nil,   nil,    81,   nil,   143,
    59,    60,    37,    51,    49,   nil,   nil,   nil,   nil,    85,
413
408
    91,   nil,    93,   nil,    35,   111,    35,    73,   145,    35,
   nil,   148,   nil,    79,    35,   nil,    35,   116,   nil,    35,
414
409
   nil,   nil,   nil,    68,    35,   nil,    71,    35,   nil,   nil,
   150,   nil,   nil,    70,    35,   nil,    73,   nil,   nil,    35,
415
410
   nil,   nil,   nil,   nil,   nil,   nil,   137,   nil,    87,    89,
    75,    95,   142,    97,   nil,   nil,   nil,   nil,   nil,   nil,
416
411
   nil,   127,   nil,   132,   130,   nil,    35,   104,   101,    35,
    91,    93,   137,   nil,   132,   nil,   nil,   135,    35,   nil,
417
412
   124,   nil,   nil,   nil,   nil,   nil,   nil,   138,   nil,   nil,
   105,    35,   nil,   nil,   129,   nil,   nil,   nil,   nil,   nil,
418
413
   140,   nil,   nil,   nil,   nil,    35,   109,    35,   112,   131,
   143,   nil,   108,   145,   nil,   nil,   nil,   nil,   nil,    35,
419
414
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   119,   nil,
   114,    35,   117,   nil,   136,   nil,   nil,   nil,   nil,   nil,
420
415
   nil,   nil,   nil,   139,    35,   nil,   nil,    35,   nil,   nil,
   nil,   nil,   124,   nil,   nil,   nil,   nil,   nil,   144,    35,
421
416
    35,   nil,   nil,   nil,   nil,   nil,   nil,    35,   nil,   nil,
   nil,   nil,    35,   nil,   nil,    35,   nil,   nil,   nil,   nil,
422
 
   nil,   nil,    35,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
423
417
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
424
418
   nil,   nil,   nil,   nil,   nil,   nil,   142,   nil,   nil,   nil,
   nil,   147,   nil,   nil,   nil,    35 ]
425
419
    35 ]
 
420
426
421
racc_goto_check = [
racc_goto_check = [
427
422
     3,    22,    28,     2,    18,    23,    15,     2,    25,    24,
     3,    22,    15,     2,    11,    23,    19,     2,    25,    24,
428
423
     2,    19,     2,    12,    25,    24,    13,    14,     2,    16,
     2,     1,     2,    16,    25,    24,    13,    18,     2,    14,
429
424
    27,     1,   nil,     2,   nil,   nil,   nil,    22,   nil,    14,
    27,    28,    12,     2,    30,   nil,   nil,   nil,   nil,    22,
430
425
    28,   nil,    28,   nil,     3,    23,     3,    18,    14,     3,
   nil,    14,   nil,    11,     3,   nil,     3,    23,   nil,     3,
431
426
   nil,   nil,   nil,     2,     3,   nil,     2,     3,   nil,   nil,
    14,   nil,   nil,     2,     3,   nil,     2,   nil,   nil,     3,
432
427
   nil,   nil,   nil,   nil,   nil,   nil,    19,   nil,     2,     2,
    18,    28,    19,    28,   nil,   nil,   nil,   nil,   nil,   nil,
433
428
   nil,    23,   nil,    15,    23,   nil,     3,    18,    24,     3,
     2,     2,    15,   nil,    23,   nil,   nil,    23,     3,   nil,
434
429
    25,   nil,   nil,   nil,   nil,   nil,   nil,    23,   nil,   nil,
    24,     3,   nil,   nil,    25,   nil,   nil,   nil,   nil,   nil,
435
430
    23,   nil,   nil,   nil,   nil,     3,     2,     3,     2,    22,
    23,   nil,    18,    23,   nil,   nil,   nil,   nil,   nil,     3,
436
431
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,     2,   nil,
     2,     3,     2,   nil,    22,   nil,   nil,   nil,   nil,   nil,
437
432
   nil,   nil,   nil,    22,     3,   nil,   nil,     3,   nil,   nil,
   nil,   nil,     2,   nil,   nil,   nil,   nil,   nil,    22,     3,
438
433
     3,   nil,   nil,   nil,   nil,   nil,   nil,     3,   nil,   nil,
   nil,   nil,     3,   nil,   nil,     3,   nil,   nil,   nil,   nil,
439
 
   nil,   nil,     3,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
440
434
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
441
435
   nil,   nil,   nil,   nil,   nil,   nil,     2,   nil,   nil,   nil,
   nil,     2,   nil,   nil,   nil,     3 ]
442
436
     3 ]
 
437
443
438
racc_goto_pointer = [
racc_goto_pointer = [
444
439
   nil,    21,     3,    -2,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,    11,     3,    -2,   nil,   nil,   nil,   nil,   nil,   nil,
445
440
   nil,   nil,     9,    -7,  -104,   -55,   -79,   nil,    -7,   -69,
   nil,   -15,    18,    -7,  -107,   -61,   -89,   nil,     6,   -78,
446
441
   nil,   nil,   -25,   -49,     1,   -31,   nil,    -9,   -27,   nil ]
   nil,   nil,   -25,   -51,     1,   -31,   nil,    -9,    -8,   nil,
447
 
     5 ]
448
442
449
443
racc_goto_default = [
racc_goto_default = [
450
444
   nil,   nil,   106,     3,     6,    10,    13,    18,    21,    24,
   nil,   nil,   111,     3,     6,    10,    13,    18,    21,    24,
451
445
    28,    31,   nil,   nil,   nil,   nil,   nil,    12,   nil,   nil,
    28,    31,   nil,   nil,   nil,   nil,   nil,    12,   nil,   nil,
452
446
    22,    27,   nil,   nil,   nil,   nil,    67,   nil,   nil,    59 ]
    22,    27,   nil,   nil,   nil,   nil,    69,   nil,   nil,    61,
453
 
   nil ]
454
447
455
448
racc_token_table = {
racc_token_table = {
456
449
 false => 0,
 false => 0,
457
153 more lines
603
'@1',
'@1',
611
604
'dictionary_term',
'dictionary_term',
612
605
'dictionary_contents',
'dictionary_contents',
613
606
'dictionary_definition']
'dictionary_definition',
614
 
'variable_contents']
615
607
616
608
Racc_debug_parser = false
Racc_debug_parser = false
617
609
618
644 more lines
1254
module_eval <<'.,.,', 'mediawikiparser.y', 489
module_eval <<'.,.,', 'mediawikiparser.y', 489
1263
1255
  def _reduce_77( val, _values, result )
  def _reduce_77( val, _values, result )
1264
1256
            v = VariableAST.new
            v = VariableAST.new
1265
1257
            v.text = val[1]
            v.children = val[1]
1266
1258
            result = v
            result = v
1267
1259
   result
   result
1268
1260
  end
  end
1269
1261
.,.,
.,.,
1270
1262
1271
 
module_eval <<'.,.,', 'mediawikiparser.y', 496
1272
 
  def _reduce_78( val, _values, result )
1273
 
            result = [val[0]]
1274
 
   result
1275
 
  end
1276
 
.,.,
1277
 
1278
 
module_eval <<'.,.,', 'mediawikiparser.y', 500
1279
 
  def _reduce_79( val, _values, result )
1280
 
            result = [val[0], val[1]]
1281
 
   result
1282
 
  end
1283
 
.,.,
1284
 
1285
 
module_eval <<'.,.,', 'mediawikiparser.y', 504
1286
 
  def _reduce_80( val, _values, result )
1287
 
            result = [val[0], val[1]]
1288
 
   result
1289
 
  end
1290
 
.,.,
1291
 
1292
 
module_eval <<'.,.,', 'mediawikiparser.y', 508
1293
 
  def _reduce_81( val, _values, result )
1294
 
            result = [val[0], val[1], val[2]]
1295
 
   result
1296
 
  end
1297
 
.,.,
1298
 
1299
1263
 def _reduce_none( val, _values, result )
 def _reduce_none( val, _values, result )
1300
1264
  result
  result
1301
1265
 end
 end
1302

Changes to mediawikiparser.y

481
        }
        }
481
482
    ;
    ;
482
483
483
484
variable: VARIABLE_START TEXT VARIABLE_END
variable: VARIABLE_START variable_contents VARIABLE_END
484
485
        {
        {
485
486
            v = VariableAST.new
            v = VariableAST.new
486
487
            v.text = val[1]
            v.children = val[1]
487
488
            result = v
            result = v
488
489
        }
        }
489
490
    ;
    ;
490
491
491
 
variable_contents: 
492
 
        TEXT
493
 
        {
494
 
            result = [val[0]]
495
 
        }
496
 
      | variable TEXT
497
 
        {
498
 
            result = [val[0], val[1]]
499
 
        }
500
 
      | TEXT variable
501
 
        {
502
 
            result = [val[0], val[1]]
503
 
        }
504
 
      | TEXT variable TEXT
505
 
        {
506
 
            result = [val[0], val[1], val[2]]
507
 
        }
508
 
    ;
509
 
510
492
end
end
511
493
512
494
---- header ----
---- header ----
513

Changes to html12

9
9
10
</p><p>
</p><p>
10
11
11
12
</p><p>{{}}</p>
</p><p>{{}}
12
 
13
 
</p><p></p>
14

Changes to input12

12
   two
   two
12
13
}}
}}
13
14
14
15
{{}}
{{}}
15
 
16
 
{{outer {{inner}}}}
17
 
{{{{inner}} outer}}
18
 
{{outer {{inner}} outer}}
19

Changes to lex12

12
   two
   two
12
13
VARIABLE_END}}TEXT
VARIABLE_END}}TEXT
13
14
14
15
PARA_ENDPARA_STARTTEXT{{}}PARA_ENDfalsefalse
PARA_ENDPARA_STARTTEXT{{}}
15
 
16
 
PARA_ENDPARA_STARTVARIABLE_START{{TEXTouter VARIABLE_START{{TEXTinnerVARIABLE_END}}VARIABLE_END}}VARIABLE_START{{VARIABLE_START{{TEXTinnerVARIABLE_END}}TEXT outerVARIABLE_END}}VARIABLE_START{{TEXTouter VARIABLE_START{{TEXTinnerVARIABLE_END}}TEXT outerVARIABLE_END}}PARA_ENDfalsefalse
17

Changes to lexer.rb

355
      lex("{{ref1\n{|\n|not a table!\n|} }}"))
      lex("{{ref1\n{|\n|not a table!\n|} }}"))
355
356
    assert_equal([[:PARA_START, ""], [:TEXT, "{{}}"], [:PARA_END, ""], [false, false]],
    assert_equal([[:PARA_START, ""], [:TEXT, "{{}}"], [:PARA_END, ""], [false, false]],
356
357
      lex("{{}}"))
      lex("{{}}"))
357
 
    assert_equal([[:PARA_START, ""], [:VARIABLE_START, "{{"], [:TEXT, "xxx"], [:VARIABLE_START, "{{"], 
358
 
        [:TEXT, "iii"], [:VARIABLE_END, "}}"], [:TEXT, "xxx"], [:VARIABLE_END, "}}"],
359
 
        [:PARA_END, ""], [false, false]],
360
 
      lex("{{xxx{{iii}}xxx}}"))
361
358
  end
  end
362
359
  
  
363
360
  def test_xhtml_markup
  def test_xhtml_markup
364