1#
2# DO NOT MODIFY!!!!
3# This file is automatically generated by Racc 1.4.9
4# from Racc grammer file "".
5#
6
7require 'racc/parser.rb'
8
9require 'strscan'
10
11class RDoc::RD
12
13##
14# RD format parser for inline markup such as emphasis, links, footnotes, etc.
15
16class InlineParser < Racc::Parser
17
18
19# :stopdoc:
20
21EM_OPEN = '((*'
22EM_OPEN_RE = /\A#{Regexp.quote(EM_OPEN)}/
23EM_CLOSE = '*))'
24EM_CLOSE_RE = /\A#{Regexp.quote(EM_CLOSE)}/
25CODE_OPEN = '(({'
26CODE_OPEN_RE = /\A#{Regexp.quote(CODE_OPEN)}/
27CODE_CLOSE = '}))'
28CODE_CLOSE_RE = /\A#{Regexp.quote(CODE_CLOSE)}/
29VAR_OPEN = '((|'
30VAR_OPEN_RE = /\A#{Regexp.quote(VAR_OPEN)}/
31VAR_CLOSE = '|))'
32VAR_CLOSE_RE = /\A#{Regexp.quote(VAR_CLOSE)}/
33KBD_OPEN = '((%'
34KBD_OPEN_RE = /\A#{Regexp.quote(KBD_OPEN)}/
35KBD_CLOSE = '%))'
36KBD_CLOSE_RE = /\A#{Regexp.quote(KBD_CLOSE)}/
37INDEX_OPEN = '((:'
38INDEX_OPEN_RE = /\A#{Regexp.quote(INDEX_OPEN)}/
39INDEX_CLOSE = ':))'
40INDEX_CLOSE_RE = /\A#{Regexp.quote(INDEX_CLOSE)}/
41REF_OPEN = '((<'
42REF_OPEN_RE = /\A#{Regexp.quote(REF_OPEN)}/
43REF_CLOSE = '>))'
44REF_CLOSE_RE = /\A#{Regexp.quote(REF_CLOSE)}/
45FOOTNOTE_OPEN = '((-'
46FOOTNOTE_OPEN_RE = /\A#{Regexp.quote(FOOTNOTE_OPEN)}/
47FOOTNOTE_CLOSE = '-))'
48FOOTNOTE_CLOSE_RE = /\A#{Regexp.quote(FOOTNOTE_CLOSE)}/
49VERB_OPEN = "(('"
50VERB_OPEN_RE = /\A#{Regexp.quote(VERB_OPEN)}/
51VERB_CLOSE = "'))"
52VERB_CLOSE_RE = /\A#{Regexp.quote(VERB_CLOSE)}/
53
54BAR = "|"
55BAR_RE = /\A#{Regexp.quote(BAR)}/
56QUOTE = '"'
57QUOTE_RE = /\A#{Regexp.quote(QUOTE)}/
58SLASH = "/"
59SLASH_RE = /\A#{Regexp.quote(SLASH)}/
60BACK_SLASH = "\\"
61BACK_SLASH_RE = /\A#{Regexp.quote(BACK_SLASH)}/
62URL = "URL:"
63URL_RE = /\A#{Regexp.quote(URL)}/
64
65other_re_mode = Regexp::EXTENDED
66other_re_mode |= Regexp::MULTILINE
67
68OTHER_RE = Regexp.new(
69  "\\A.+?(?=#{Regexp.quote(EM_OPEN)}|#{Regexp.quote(EM_CLOSE)}|
70              #{Regexp.quote(CODE_OPEN)}|#{Regexp.quote(CODE_CLOSE)}|
71              #{Regexp.quote(VAR_OPEN)}|#{Regexp.quote(VAR_CLOSE)}|
72              #{Regexp.quote(KBD_OPEN)}|#{Regexp.quote(KBD_CLOSE)}|
73              #{Regexp.quote(INDEX_OPEN)}|#{Regexp.quote(INDEX_CLOSE)}|
74              #{Regexp.quote(REF_OPEN)}|#{Regexp.quote(REF_CLOSE)}|
75            #{Regexp.quote(FOOTNOTE_OPEN)}|#{Regexp.quote(FOOTNOTE_CLOSE)}|
76              #{Regexp.quote(VERB_OPEN)}|#{Regexp.quote(VERB_CLOSE)}|
77              #{Regexp.quote(BAR)}|
78              #{Regexp.quote(QUOTE)}|
79              #{Regexp.quote(SLASH)}|
80              #{Regexp.quote(BACK_SLASH)}|
81              #{Regexp.quote(URL)})", other_re_mode)
82
83# :startdoc:
84
85##
86# Creates a new parser for inline markup in the rd format.  The +block_parser+
87# is used to for footnotes and labels in the inline text.
88
89def initialize block_parser
90  @block_parser = block_parser
91end
92
93##
94# Parses the +inline+ text from RD format into RDoc format.
95
96def parse inline
97  @inline = inline
98  @src = StringScanner.new inline
99  @pre = ""
100  @yydebug = true
101  do_parse.to_s
102end
103
104##
105# Returns the next token from the inline text
106
107def next_token
108  return [false, false] if @src.eos?
109#  p @src.rest if @yydebug
110  if ret = @src.scan(EM_OPEN_RE)
111    @pre << ret
112    [:EM_OPEN, ret]
113  elsif ret = @src.scan(EM_CLOSE_RE)
114    @pre << ret
115    [:EM_CLOSE, ret]
116  elsif ret = @src.scan(CODE_OPEN_RE)
117    @pre << ret
118    [:CODE_OPEN, ret]
119  elsif ret = @src.scan(CODE_CLOSE_RE)
120    @pre << ret
121    [:CODE_CLOSE, ret]
122  elsif ret = @src.scan(VAR_OPEN_RE)
123    @pre << ret
124    [:VAR_OPEN, ret]
125  elsif ret = @src.scan(VAR_CLOSE_RE)
126    @pre << ret
127    [:VAR_CLOSE, ret]
128  elsif ret = @src.scan(KBD_OPEN_RE)
129    @pre << ret
130    [:KBD_OPEN, ret]
131  elsif ret = @src.scan(KBD_CLOSE_RE)
132    @pre << ret
133    [:KBD_CLOSE, ret]
134  elsif ret = @src.scan(INDEX_OPEN_RE)
135    @pre << ret
136    [:INDEX_OPEN, ret]
137  elsif ret = @src.scan(INDEX_CLOSE_RE)
138    @pre << ret
139    [:INDEX_CLOSE, ret]
140  elsif ret = @src.scan(REF_OPEN_RE)
141    @pre << ret
142    [:REF_OPEN, ret]
143  elsif ret = @src.scan(REF_CLOSE_RE)
144    @pre << ret
145    [:REF_CLOSE, ret]
146  elsif ret = @src.scan(FOOTNOTE_OPEN_RE)
147    @pre << ret
148    [:FOOTNOTE_OPEN, ret]
149  elsif ret = @src.scan(FOOTNOTE_CLOSE_RE)
150    @pre << ret
151    [:FOOTNOTE_CLOSE, ret]
152  elsif ret = @src.scan(VERB_OPEN_RE)
153    @pre << ret
154    [:VERB_OPEN, ret]
155  elsif ret = @src.scan(VERB_CLOSE_RE)
156    @pre << ret
157    [:VERB_CLOSE, ret]
158  elsif ret = @src.scan(BAR_RE)
159    @pre << ret
160    [:BAR, ret]
161  elsif ret = @src.scan(QUOTE_RE)
162    @pre << ret
163    [:QUOTE, ret]
164  elsif ret = @src.scan(SLASH_RE)
165    @pre << ret
166    [:SLASH, ret]
167  elsif ret = @src.scan(BACK_SLASH_RE)
168    @pre << ret
169    [:BACK_SLASH, ret]
170  elsif ret = @src.scan(URL_RE)
171    @pre << ret
172    [:URL, ret]
173  elsif ret = @src.scan(OTHER_RE)
174    @pre << ret
175    [:OTHER, ret]
176  else
177    ret = @src.rest
178    @pre << ret
179    @src.terminate
180    [:OTHER, ret]
181  end
182end
183
184##
185# Raises a ParseError when invalid formatting is found
186
187def on_error(et, ev, values)
188  lines_of_rest = @src.rest.lines.to_a.length
189  prev_words = prev_words_on_error(ev)
190  at = 4 + prev_words.length
191
192  message = <<-MSG
193RD syntax error: line #{@block_parser.line_index - lines_of_rest}:
194...#{prev_words} #{(ev||'')} #{next_words_on_error()} ...
195  MSG
196
197  message << " " * at + "^" * (ev ? ev.length : 0) + "\n"
198  raise ParseError, message
199end
200
201##
202# Returns words before the error
203
204def prev_words_on_error(ev)
205  pre = @pre
206  if ev and /#{Regexp.quote(ev)}$/ =~ pre
207    pre = $`
208  end
209  last_line(pre)
210end
211
212##
213# Returns the last line of +src+
214
215def last_line(src)
216  if n = src.rindex("\n")
217    src[(n+1) .. -1]
218  else
219    src
220  end
221end
222private :last_line
223
224##
225# Returns words following an error
226
227def next_words_on_error
228  if n = @src.rest.index("\n")
229    @src.rest[0 .. (n-1)]
230  else
231    @src.rest
232  end
233end
234
235##
236# Creates a new RDoc::RD::Inline for the +rdoc+ markup and the raw +reference+
237
238def inline rdoc, reference = rdoc
239  RDoc::RD::Inline.new rdoc, reference
240end
241
242# :stopdoc:
243##### State transition tables begin ###
244
245racc_action_table = [
246    63,    64,    65,   153,    81,    62,    76,    78,    79,    87,
247    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
248    77,    80,   152,    63,    64,    65,    61,    81,    62,    76,
249    78,    79,   124,    66,    67,    68,    69,    70,    71,    72,
250    73,    74,    75,    77,    80,   149,   104,   103,   102,   100,
251   101,    99,   115,   116,   117,   164,   105,   106,   107,   108,
252   109,   110,   111,   112,   113,   114,    96,   118,   119,   104,
253   103,   102,   100,   101,    99,   115,   116,   117,    89,   105,
254   106,   107,   108,   109,   110,   111,   112,   113,   114,    88,
255   118,   119,   104,   103,   102,   100,   101,    99,   115,   116,
256   117,   161,   105,   106,   107,   108,   109,   110,   111,   112,
257   113,   114,    86,   118,   119,   104,   103,   102,   100,   101,
258    99,   115,   116,   117,    85,   105,   106,   107,   108,   109,
259   110,   111,   112,   113,   114,   137,   118,   119,    63,    64,
260    65,    61,    81,    62,    76,    78,    79,    84,    66,    67,
261    68,    69,    70,    71,    72,    73,    74,    75,    77,    80,
262    22,    23,    24,    25,    26,    21,    18,    19,   176,   177,
263    13,   173,    14,   154,    15,   175,    16,   137,    17,    42,
264   148,    20,    54,    38,    53,    55,    56,    57,    29,    13,
265   177,    14,   nil,    15,   nil,    16,   nil,    17,   nil,   nil,
266    20,    22,    23,    24,    25,    26,    21,    18,    19,   nil,
267   nil,    13,   nil,    14,   nil,    15,   nil,    16,   nil,    17,
268   nil,   nil,    20,    22,    23,    24,    25,    26,    21,    18,
269    19,   nil,   nil,    13,   nil,    14,   nil,    15,   nil,    16,
270   nil,    17,   nil,   nil,    20,    22,    23,    24,    25,    26,
271    21,    18,    19,   nil,   nil,    13,   nil,    14,   nil,    15,
272   nil,    16,   nil,    17,   145,   nil,    20,    54,   133,    53,
273    55,    56,    57,   nil,    13,   nil,    14,   nil,    15,   nil,
274    16,   nil,    17,   nil,   nil,    20,    22,    23,    24,    25,
275    26,    21,    18,    19,   nil,   nil,    13,   nil,    14,   nil,
276    15,   nil,    16,   nil,    17,   145,   nil,    20,    54,   133,
277    53,    55,    56,    57,   nil,    13,   nil,    14,   nil,    15,
278   nil,    16,   nil,    17,   nil,   nil,    20,    22,    23,    24,
279    25,    26,    21,    18,    19,   nil,   nil,    13,   nil,    14,
280   nil,    15,   nil,    16,   nil,    17,   145,   nil,    20,    54,
281   133,    53,    55,    56,    57,   nil,    13,   nil,    14,   nil,
282    15,   nil,    16,   nil,    17,   145,   nil,    20,    54,   133,
283    53,    55,    56,    57,   nil,    13,   nil,    14,   nil,    15,
284   nil,    16,   nil,    17,   nil,   nil,    20,    22,    23,    24,
285    25,    26,    21,    18,    19,   nil,   nil,    13,   nil,    14,
286   nil,    15,   nil,    16,   122,    17,   nil,    54,    20,    53,
287    55,    56,    57,   nil,    13,   nil,    14,   nil,    15,   nil,
288    16,   nil,    17,   nil,   nil,    20,    22,    23,    24,    25,
289    26,    21,    18,    19,   nil,   nil,    13,   nil,    14,   nil,
290    15,   nil,    16,   nil,    17,   nil,   nil,    20,   135,   136,
291    54,   133,    53,    55,    56,    57,   nil,    13,   nil,    14,
292   nil,    15,   nil,    16,   nil,    17,   nil,   nil,    20,   135,
293   136,    54,   133,    53,    55,    56,    57,   nil,    13,   nil,
294    14,   nil,    15,   nil,    16,   nil,    17,   nil,   nil,    20,
295   135,   136,    54,   133,    53,    55,    56,    57,   nil,    13,
296   nil,    14,   nil,    15,   nil,    16,   nil,    17,   nil,   nil,
297    20,   172,   135,   136,    54,   133,    53,    55,    56,    57,
298   165,   135,   136,    54,   133,    53,    55,    56,    57,    95,
299   nil,   nil,    54,    91,    53,    55,    56,    57,   174,   135,
300   136,    54,   133,    53,    55,    56,    57,   158,   nil,   nil,
301    54,   nil,    53,    55,    56,    57,   178,   135,   136,    54,
302   133,    53,    55,    56,    57,   145,   nil,   nil,    54,   133,
303    53,    55,    56,    57,   145,   nil,   nil,    54,   133,    53,
304    55,    56,    57,   135,   136,    54,   133,    53,    55,    56,
305    57,   135,   136,    54,   133,    53,    55,    56,    57,   135,
306   136,    54,   133,    53,    55,    56,    57,    22,    23,    24,
307    25,    26,    21 ]
308
309racc_action_check = [
310    61,    61,    61,    61,    61,    61,    61,    61,    61,    33,
311    61,    61,    61,    61,    61,    61,    61,    61,    61,    61,
312    61,    61,    61,    59,    59,    59,    59,    59,    59,    59,
313    59,    59,    41,    59,    59,    59,    59,    59,    59,    59,
314    59,    59,    59,    59,    59,    59,    97,    97,    97,    97,
315    97,    97,    97,    97,    97,   125,    97,    97,    97,    97,
316    97,    97,    97,    97,    97,    97,    37,    97,    97,    38,
317    38,    38,    38,    38,    38,    38,    38,    38,    35,    38,
318    38,    38,    38,    38,    38,    38,    38,    38,    38,    34,
319    38,    38,   155,   155,   155,   155,   155,   155,   155,   155,
320   155,   100,   155,   155,   155,   155,   155,   155,   155,   155,
321   155,   155,    32,   155,   155,    91,    91,    91,    91,    91,
322    91,    91,    91,    91,    31,    91,    91,    91,    91,    91,
323    91,    91,    91,    91,    91,    43,    91,    91,    20,    20,
324    20,    20,    20,    20,    20,    20,    20,    29,    20,    20,
325    20,    20,    20,    20,    20,    20,    20,    20,    20,    20,
326    17,    17,    17,    17,    17,    17,    17,    17,   165,   165,
327    17,   162,    17,    90,    17,   164,    17,    94,    17,    18,
328    58,    17,    18,    18,    18,    18,    18,    18,     1,    18,
329   172,    18,   nil,    18,   nil,    18,   nil,    18,   nil,   nil,
330    18,    19,    19,    19,    19,    19,    19,    19,    19,   nil,
331   nil,    19,   nil,    19,   nil,    19,   nil,    19,   nil,    19,
332   nil,   nil,    19,    16,    16,    16,    16,    16,    16,    16,
333    16,   nil,   nil,    16,   nil,    16,   nil,    16,   nil,    16,
334   nil,    16,   nil,   nil,    16,    15,    15,    15,    15,    15,
335    15,    15,    15,   nil,   nil,    15,   nil,    15,   nil,    15,
336   nil,    15,   nil,    15,    45,   nil,    15,    45,    45,    45,
337    45,    45,    45,   nil,    45,   nil,    45,   nil,    45,   nil,
338    45,   nil,    45,   nil,   nil,    45,    14,    14,    14,    14,
339    14,    14,    14,    14,   nil,   nil,    14,   nil,    14,   nil,
340    14,   nil,    14,   nil,    14,   146,   nil,    14,   146,   146,
341   146,   146,   146,   146,   nil,   146,   nil,   146,   nil,   146,
342   nil,   146,   nil,   146,   nil,   nil,   146,    13,    13,    13,
343    13,    13,    13,    13,    13,   nil,   nil,    13,   nil,    13,
344   nil,    13,   nil,    13,   nil,    13,   138,   nil,    13,   138,
345   138,   138,   138,   138,   138,   nil,   138,   nil,   138,   nil,
346   138,   nil,   138,   nil,   138,    44,   nil,   138,    44,    44,
347    44,    44,    44,    44,   nil,    44,   nil,    44,   nil,    44,
348   nil,    44,   nil,    44,   nil,   nil,    44,     2,     2,     2,
349     2,     2,     2,     2,     2,   nil,   nil,     2,   nil,     2,
350   nil,     2,   nil,     2,    39,     2,   nil,    39,     2,    39,
351    39,    39,    39,   nil,    39,   nil,    39,   nil,    39,   nil,
352    39,   nil,    39,   nil,   nil,    39,     0,     0,     0,     0,
353     0,     0,     0,     0,   nil,   nil,     0,   nil,     0,   nil,
354     0,   nil,     0,   nil,     0,   nil,   nil,     0,   122,   122,
355   122,   122,   122,   122,   122,   122,   nil,   122,   nil,   122,
356   nil,   122,   nil,   122,   nil,   122,   nil,   nil,   122,   127,
357   127,   127,   127,   127,   127,   127,   127,   nil,   127,   nil,
358   127,   nil,   127,   nil,   127,   nil,   127,   nil,   nil,   127,
359    42,    42,    42,    42,    42,    42,    42,    42,   nil,    42,
360   nil,    42,   nil,    42,   nil,    42,   nil,    42,   nil,   nil,
361    42,   159,   159,   159,   159,   159,   159,   159,   159,   159,
362   126,   126,   126,   126,   126,   126,   126,   126,   126,    36,
363   nil,   nil,    36,    36,    36,    36,    36,    36,   163,   163,
364   163,   163,   163,   163,   163,   163,   163,    92,   nil,   nil,
365    92,   nil,    92,    92,    92,    92,   171,   171,   171,   171,
366   171,   171,   171,   171,   171,   142,   nil,   nil,   142,   142,
367   142,   142,   142,   142,    52,   nil,   nil,    52,    52,    52,
368    52,    52,    52,    95,    95,    95,    95,    95,    95,    95,
369    95,   168,   168,   168,   168,   168,   168,   168,   168,   158,
370   158,   158,   158,   158,   158,   158,   158,    27,    27,    27,
371    27,    27,    27 ]
372
373racc_action_pointer = [
374   423,   188,   384,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
375   nil,   nil,   nil,   324,   283,   242,   220,   157,   176,   198,
376   135,   nil,   nil,   nil,   nil,   nil,   nil,   604,   nil,   147,
377   nil,   110,    96,    -9,    69,    56,   526,    43,    66,   401,
378   nil,    28,   486,   130,   362,   261,   nil,   nil,   nil,   nil,
379   nil,   nil,   571,   nil,   nil,   nil,   nil,   nil,   169,    20,
380   nil,    -3,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
381   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
382   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
383   150,   112,   544,   nil,   172,   579,   nil,    43,   nil,   nil,
384    95,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
385   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
386   nil,   nil,   444,   nil,   nil,    52,   517,   465,   nil,   nil,
387   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   343,   nil,
388   nil,   nil,   562,   nil,   nil,   nil,   302,   nil,   nil,   nil,
389   nil,   nil,   nil,   nil,   nil,    89,   nil,   nil,   595,   508,
390   nil,   nil,   168,   535,   171,   164,   nil,   nil,   587,   nil,
391   nil,   553,   185,   nil,   nil,   nil,   nil,   nil,   nil ]
392
393racc_action_default = [
394  -138,  -138,    -1,    -3,    -4,    -5,    -6,    -7,    -8,    -9,
395   -10,   -11,   -12,  -138,  -138,  -138,  -138,  -138,  -138,  -138,
396  -138,  -103,  -104,  -105,  -106,  -107,  -108,  -111,  -110,  -138,
397    -2,  -138,  -138,  -138,  -138,  -138,  -138,  -138,  -138,   -27,
398   -26,   -35,  -138,   -58,   -41,   -40,   -47,   -48,   -49,   -50,
399   -51,   -52,   -63,   -66,   -67,   -68,   -69,   -70,  -138,  -138,
400  -112,  -138,  -116,  -117,  -118,  -119,  -120,  -121,  -122,  -123,
401  -124,  -125,  -126,  -127,  -128,  -129,  -130,  -131,  -132,  -133,
402  -134,  -135,  -137,  -109,   179,   -13,   -14,   -15,   -16,   -17,
403  -138,  -138,   -23,   -22,   -33,  -138,   -19,   -24,   -79,   -80,
404  -138,   -82,   -83,   -84,   -85,   -86,   -87,   -88,   -89,   -90,
405   -91,   -92,   -93,   -94,   -95,   -96,   -97,   -98,   -99,  -100,
406   -25,   -35,  -138,   -58,   -28,  -138,   -59,   -42,   -46,   -55,
407   -56,   -65,   -71,   -72,   -75,   -76,   -77,   -31,   -38,   -44,
408   -53,   -54,   -57,   -61,   -73,   -74,   -39,   -62,  -101,  -102,
409  -136,  -113,  -114,  -115,   -18,   -20,   -21,   -33,  -138,  -138,
410   -78,   -81,  -138,   -59,   -36,   -37,   -64,   -45,   -59,   -43,
411   -60,  -138,   -34,   -36,   -37,   -29,   -30,   -32,   -34 ]
412
413racc_goto_table = [
414   126,    44,   125,    43,   144,   144,   160,    93,    97,    52,
415   166,    82,   144,    41,    40,    39,   138,   146,   169,   147,
416   167,    94,    44,     1,   123,   129,   169,    52,    36,    37,
417    52,    90,    59,    92,   121,   120,    31,    32,    33,    34,
418    35,   170,    58,   166,    83,    30,   170,   166,   151,   nil,
419   150,   nil,   166,   159,     8,   166,     8,   nil,   nil,   nil,
420   nil,   155,   nil,   156,   160,   nil,   nil,     8,     8,     8,
421     8,     8,   nil,     8,     4,   nil,     4,   157,   nil,   nil,
422   163,   nil,   162,    52,   nil,   168,   nil,     4,     4,     4,
423     4,     4,   nil,     4,   nil,   nil,   nil,   nil,   144,   nil,
424   nil,   nil,   144,   nil,   nil,   129,   144,   144,   nil,     5,
425   129,     5,   nil,   nil,   nil,   nil,   171,     6,   nil,     6,
426   nil,   nil,     5,     5,     5,     5,     5,    11,     5,    11,
427     6,     6,     6,     6,     6,     7,     6,     7,   nil,   nil,
428    11,    11,    11,    11,    11,   nil,    11,   nil,     7,     7,
429     7,     7,     7,   nil,     7 ]
430
431racc_goto_check = [
432    22,    24,    21,    23,    36,    36,    37,    18,    16,    34,
433    35,    41,    36,    20,    19,    17,    25,    25,    28,    32,
434    29,    23,    24,     1,    23,    24,    28,    34,    13,    15,
435    34,    14,    38,    17,    20,    19,     1,     1,     1,     1,
436     1,    33,     1,    35,    39,     3,    33,    35,    42,   nil,
437    41,   nil,    35,    22,     8,    35,     8,   nil,   nil,   nil,
438   nil,    16,   nil,    18,    37,   nil,   nil,     8,     8,     8,
439     8,     8,   nil,     8,     4,   nil,     4,    23,   nil,   nil,
440    22,   nil,    21,    34,   nil,    22,   nil,     4,     4,     4,
441     4,     4,   nil,     4,   nil,   nil,   nil,   nil,    36,   nil,
442   nil,   nil,    36,   nil,   nil,    24,    36,    36,   nil,     5,
443    24,     5,   nil,   nil,   nil,   nil,    22,     6,   nil,     6,
444   nil,   nil,     5,     5,     5,     5,     5,    11,     5,    11,
445     6,     6,     6,     6,     6,     7,     6,     7,   nil,   nil,
446    11,    11,    11,    11,    11,   nil,    11,   nil,     7,     7,
447     7,     7,     7,   nil,     7 ]
448
449racc_goto_pointer = [
450   nil,    23,   nil,    43,    74,   109,   117,   135,    54,   nil,
451   nil,   127,   nil,    10,    -5,    11,   -30,    -3,   -29,    -4,
452    -5,   -40,   -42,   -15,   -17,   -28,   nil,   nil,  -120,  -107,
453   nil,   nil,   -33,  -101,    -9,  -116,   -40,   -91,    12,    17,
454   nil,    -9,   -13 ]
455
456racc_goto_default = [
457   nil,   nil,     2,     3,    46,    47,    48,    49,    50,     9,
458    10,    51,    12,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
459   nil,   nil,   nil,   nil,   140,   nil,    45,   127,   139,   128,
460   141,   130,   142,   143,   132,   131,   134,    98,   nil,    28,
461    27,   nil,    60 ]
462
463racc_reduce_table = [
464  0, 0, :racc_error,
465  1, 27, :_reduce_none,
466  2, 28, :_reduce_2,
467  1, 28, :_reduce_3,
468  1, 29, :_reduce_none,
469  1, 29, :_reduce_none,
470  1, 29, :_reduce_none,
471  1, 29, :_reduce_none,
472  1, 29, :_reduce_none,
473  1, 29, :_reduce_none,
474  1, 29, :_reduce_none,
475  1, 29, :_reduce_none,
476  1, 29, :_reduce_none,
477  3, 30, :_reduce_13,
478  3, 31, :_reduce_14,
479  3, 32, :_reduce_15,
480  3, 33, :_reduce_16,
481  3, 34, :_reduce_17,
482  4, 35, :_reduce_18,
483  3, 35, :_reduce_19,
484  2, 40, :_reduce_20,
485  2, 40, :_reduce_21,
486  1, 40, :_reduce_22,
487  1, 40, :_reduce_23,
488  2, 41, :_reduce_24,
489  2, 41, :_reduce_25,
490  1, 41, :_reduce_26,
491  1, 41, :_reduce_27,
492  2, 39, :_reduce_none,
493  4, 39, :_reduce_29,
494  4, 39, :_reduce_30,
495  2, 43, :_reduce_31,
496  4, 43, :_reduce_32,
497  1, 44, :_reduce_33,
498  3, 44, :_reduce_34,
499  1, 45, :_reduce_none,
500  3, 45, :_reduce_36,
501  3, 45, :_reduce_37,
502  2, 46, :_reduce_38,
503  2, 46, :_reduce_39,
504  1, 46, :_reduce_40,
505  1, 46, :_reduce_41,
506  1, 47, :_reduce_none,
507  2, 51, :_reduce_43,
508  1, 51, :_reduce_44,
509  2, 53, :_reduce_45,
510  1, 53, :_reduce_46,
511  1, 50, :_reduce_none,
512  1, 50, :_reduce_none,
513  1, 50, :_reduce_none,
514  1, 50, :_reduce_none,
515  1, 50, :_reduce_none,
516  1, 50, :_reduce_none,
517  1, 54, :_reduce_none,
518  1, 54, :_reduce_none,
519  1, 55, :_reduce_none,
520  1, 55, :_reduce_none,
521  1, 56, :_reduce_57,
522  1, 52, :_reduce_58,
523  1, 57, :_reduce_59,
524  2, 58, :_reduce_60,
525  1, 58, :_reduce_none,
526  2, 49, :_reduce_62,
527  1, 49, :_reduce_none,
528  2, 48, :_reduce_64,
529  1, 48, :_reduce_none,
530  1, 60, :_reduce_none,
531  1, 60, :_reduce_none,
532  1, 60, :_reduce_none,
533  1, 60, :_reduce_none,
534  1, 60, :_reduce_none,
535  1, 62, :_reduce_none,
536  1, 62, :_reduce_none,
537  1, 59, :_reduce_none,
538  1, 59, :_reduce_none,
539  1, 61, :_reduce_none,
540  1, 61, :_reduce_none,
541  1, 61, :_reduce_none,
542  2, 42, :_reduce_78,
543  1, 42, :_reduce_none,
544  1, 63, :_reduce_none,
545  2, 63, :_reduce_none,
546  1, 63, :_reduce_none,
547  1, 63, :_reduce_none,
548  1, 63, :_reduce_none,
549  1, 63, :_reduce_none,
550  1, 63, :_reduce_none,
551  1, 63, :_reduce_none,
552  1, 63, :_reduce_none,
553  1, 63, :_reduce_none,
554  1, 63, :_reduce_none,
555  1, 63, :_reduce_none,
556  1, 63, :_reduce_none,
557  1, 63, :_reduce_none,
558  1, 63, :_reduce_none,
559  1, 63, :_reduce_none,
560  1, 63, :_reduce_none,
561  1, 63, :_reduce_none,
562  1, 63, :_reduce_none,
563  1, 63, :_reduce_none,
564  1, 63, :_reduce_none,
565  3, 36, :_reduce_101,
566  3, 37, :_reduce_102,
567  1, 65, :_reduce_none,
568  1, 65, :_reduce_none,
569  1, 65, :_reduce_none,
570  1, 65, :_reduce_none,
571  1, 65, :_reduce_none,
572  1, 65, :_reduce_none,
573  2, 66, :_reduce_109,
574  1, 66, :_reduce_none,
575  1, 38, :_reduce_111,
576  1, 67, :_reduce_none,
577  2, 67, :_reduce_113,
578  2, 67, :_reduce_114,
579  2, 67, :_reduce_115,
580  1, 68, :_reduce_none,
581  1, 68, :_reduce_none,
582  1, 68, :_reduce_none,
583  1, 68, :_reduce_none,
584  1, 68, :_reduce_none,
585  1, 68, :_reduce_none,
586  1, 68, :_reduce_none,
587  1, 68, :_reduce_none,
588  1, 68, :_reduce_none,
589  1, 68, :_reduce_none,
590  1, 68, :_reduce_none,
591  1, 68, :_reduce_none,
592  1, 68, :_reduce_none,
593  1, 68, :_reduce_none,
594  1, 68, :_reduce_none,
595  1, 68, :_reduce_none,
596  1, 68, :_reduce_none,
597  1, 68, :_reduce_none,
598  1, 68, :_reduce_none,
599  1, 68, :_reduce_none,
600  2, 64, :_reduce_136,
601  1, 64, :_reduce_none ]
602
603racc_reduce_n = 138
604
605racc_shift_n = 179
606
607racc_token_table = {
608  false => 0,
609  :error => 1,
610  :EX_LOW => 2,
611  :QUOTE => 3,
612  :BAR => 4,
613  :SLASH => 5,
614  :BACK_SLASH => 6,
615  :URL => 7,
616  :OTHER => 8,
617  :REF_OPEN => 9,
618  :FOOTNOTE_OPEN => 10,
619  :FOOTNOTE_CLOSE => 11,
620  :EX_HIGH => 12,
621  :EM_OPEN => 13,
622  :EM_CLOSE => 14,
623  :CODE_OPEN => 15,
624  :CODE_CLOSE => 16,
625  :VAR_OPEN => 17,
626  :VAR_CLOSE => 18,
627  :KBD_OPEN => 19,
628  :KBD_CLOSE => 20,
629  :INDEX_OPEN => 21,
630  :INDEX_CLOSE => 22,
631  :REF_CLOSE => 23,
632  :VERB_OPEN => 24,
633  :VERB_CLOSE => 25 }
634
635racc_nt_base = 26
636
637racc_use_result_var = true
638
639Racc_arg = [
640  racc_action_table,
641  racc_action_check,
642  racc_action_default,
643  racc_action_pointer,
644  racc_goto_table,
645  racc_goto_check,
646  racc_goto_default,
647  racc_goto_pointer,
648  racc_nt_base,
649  racc_reduce_table,
650  racc_token_table,
651  racc_shift_n,
652  racc_reduce_n,
653  racc_use_result_var ]
654
655Racc_token_to_s_table = [
656  "$end",
657  "error",
658  "EX_LOW",
659  "QUOTE",
660  "BAR",
661  "SLASH",
662  "BACK_SLASH",
663  "URL",
664  "OTHER",
665  "REF_OPEN",
666  "FOOTNOTE_OPEN",
667  "FOOTNOTE_CLOSE",
668  "EX_HIGH",
669  "EM_OPEN",
670  "EM_CLOSE",
671  "CODE_OPEN",
672  "CODE_CLOSE",
673  "VAR_OPEN",
674  "VAR_CLOSE",
675  "KBD_OPEN",
676  "KBD_CLOSE",
677  "INDEX_OPEN",
678  "INDEX_CLOSE",
679  "REF_CLOSE",
680  "VERB_OPEN",
681  "VERB_CLOSE",
682  "$start",
683  "content",
684  "elements",
685  "element",
686  "emphasis",
687  "code",
688  "var",
689  "keyboard",
690  "index",
691  "reference",
692  "footnote",
693  "verb",
694  "normal_str_ele",
695  "substitute",
696  "ref_label",
697  "ref_label2",
698  "ref_url_strings",
699  "filename",
700  "element_label",
701  "element_label2",
702  "ref_subst_content",
703  "ref_subst_content_q",
704  "ref_subst_strings_q",
705  "ref_subst_strings_first",
706  "ref_subst_ele2",
707  "ref_subst_eles",
708  "ref_subst_str_ele_first",
709  "ref_subst_eles_q",
710  "ref_subst_ele",
711  "ref_subst_ele_q",
712  "ref_subst_str_ele",
713  "ref_subst_str_ele_q",
714  "ref_subst_strings",
715  "ref_subst_string3",
716  "ref_subst_string",
717  "ref_subst_string_q",
718  "ref_subst_string2",
719  "ref_url_string",
720  "verb_strings",
721  "normal_string",
722  "normal_strings",
723  "verb_string",
724  "verb_normal_string" ]
725
726Racc_debug_parser = false
727
728##### State transition tables end #####
729
730# reduce 0 omitted
731
732# reduce 1 omitted
733
734def _reduce_2(val, _values, result)
735 result.append val[1]
736    result
737end
738
739def _reduce_3(val, _values, result)
740 result = val[0]
741    result
742end
743
744# reduce 4 omitted
745
746# reduce 5 omitted
747
748# reduce 6 omitted
749
750# reduce 7 omitted
751
752# reduce 8 omitted
753
754# reduce 9 omitted
755
756# reduce 10 omitted
757
758# reduce 11 omitted
759
760# reduce 12 omitted
761
762def _reduce_13(val, _values, result)
763      content = val[1]
764      result = inline "<em>#{content}</em>", content
765
766    result
767end
768
769def _reduce_14(val, _values, result)
770      content = val[1]
771      result = inline "<code>#{content}</code>", content
772
773    result
774end
775
776def _reduce_15(val, _values, result)
777      content = val[1]
778      result = inline "+#{content}+", content
779
780    result
781end
782
783def _reduce_16(val, _values, result)
784      content = val[1]
785      result = inline "<tt>#{content}</tt>", content
786
787    result
788end
789
790def _reduce_17(val, _values, result)
791      label = val[1]
792      @block_parser.add_label label.reference
793      result = "<span id=\"label-#{label}\">#{label}</span>"
794
795    result
796end
797
798def _reduce_18(val, _values, result)
799      result = "{#{val[1]}}[#{val[2].join}]"
800
801    result
802end
803
804def _reduce_19(val, _values, result)
805      scheme, inline = val[1]
806
807      result = "{#{inline}}[#{scheme}#{inline.reference}]"
808
809    result
810end
811
812def _reduce_20(val, _values, result)
813      result = [nil, inline(val[1])]
814
815    result
816end
817
818def _reduce_21(val, _values, result)
819      result = [
820        'rdoc-label:',
821        inline("#{val[0].reference}/#{val[1].reference}")
822      ]
823
824    result
825end
826
827def _reduce_22(val, _values, result)
828      result = ['rdoc-label:', val[0].reference]
829
830    result
831end
832
833def _reduce_23(val, _values, result)
834      result = ['rdoc-label:', "#{val[0].reference}/"]
835
836    result
837end
838
839def _reduce_24(val, _values, result)
840      result = [nil, inline(val[1])]
841
842    result
843end
844
845def _reduce_25(val, _values, result)
846      result = [
847        'rdoc-label:',
848        inline("#{val[0].reference}/#{val[1].reference}")
849      ]
850
851    result
852end
853
854def _reduce_26(val, _values, result)
855      result = ['rdoc-label:', val[0]]
856
857    result
858end
859
860def _reduce_27(val, _values, result)
861      ref = val[0].reference
862      result = ['rdoc-label:', inline(ref, "#{ref}/")]
863
864    result
865end
866
867# reduce 28 omitted
868
869def _reduce_29(val, _values, result)
870 result = val[1]
871    result
872end
873
874def _reduce_30(val, _values, result)
875 result = val[1]
876    result
877end
878
879def _reduce_31(val, _values, result)
880      result = inline val[0]
881
882    result
883end
884
885def _reduce_32(val, _values, result)
886      result = inline "\"#{val[1]}\""
887
888    result
889end
890
891def _reduce_33(val, _values, result)
892      result = inline val[0]
893
894    result
895end
896
897def _reduce_34(val, _values, result)
898      result = inline "\"#{val[1]}\""
899
900    result
901end
902
903# reduce 35 omitted
904
905def _reduce_36(val, _values, result)
906 result = val[1]
907    result
908end
909
910def _reduce_37(val, _values, result)
911 result = inline val[1]
912    result
913end
914
915def _reduce_38(val, _values, result)
916      result = val[0].append val[1]
917
918    result
919end
920
921def _reduce_39(val, _values, result)
922      result = val[0].append val[1]
923
924    result
925end
926
927def _reduce_40(val, _values, result)
928      result = val[0]
929
930    result
931end
932
933def _reduce_41(val, _values, result)
934      result = inline val[0]
935
936    result
937end
938
939# reduce 42 omitted
940
941def _reduce_43(val, _values, result)
942      result = val[0].append val[1]
943
944    result
945end
946
947def _reduce_44(val, _values, result)
948      result = inline val[0]
949
950    result
951end
952
953def _reduce_45(val, _values, result)
954      result = val[0].append val[1]
955
956    result
957end
958
959def _reduce_46(val, _values, result)
960      result = val[0]
961
962    result
963end
964
965# reduce 47 omitted
966
967# reduce 48 omitted
968
969# reduce 49 omitted
970
971# reduce 50 omitted
972
973# reduce 51 omitted
974
975# reduce 52 omitted
976
977# reduce 53 omitted
978
979# reduce 54 omitted
980
981# reduce 55 omitted
982
983# reduce 56 omitted
984
985def _reduce_57(val, _values, result)
986      result = val[0]
987
988    result
989end
990
991def _reduce_58(val, _values, result)
992      result = inline val[0]
993
994    result
995end
996
997def _reduce_59(val, _values, result)
998      result = inline val[0]
999
1000    result
1001end
1002
1003def _reduce_60(val, _values, result)
1004 result << val[1]
1005    result
1006end
1007
1008# reduce 61 omitted
1009
1010def _reduce_62(val, _values, result)
1011      result << val[1]
1012
1013    result
1014end
1015
1016# reduce 63 omitted
1017
1018def _reduce_64(val, _values, result)
1019      result << val[1]
1020
1021    result
1022end
1023
1024# reduce 65 omitted
1025
1026# reduce 66 omitted
1027
1028# reduce 67 omitted
1029
1030# reduce 68 omitted
1031
1032# reduce 69 omitted
1033
1034# reduce 70 omitted
1035
1036# reduce 71 omitted
1037
1038# reduce 72 omitted
1039
1040# reduce 73 omitted
1041
1042# reduce 74 omitted
1043
1044# reduce 75 omitted
1045
1046# reduce 76 omitted
1047
1048# reduce 77 omitted
1049
1050def _reduce_78(val, _values, result)
1051 result << val[1]
1052    result
1053end
1054
1055# reduce 79 omitted
1056
1057# reduce 80 omitted
1058
1059# reduce 81 omitted
1060
1061# reduce 82 omitted
1062
1063# reduce 83 omitted
1064
1065# reduce 84 omitted
1066
1067# reduce 85 omitted
1068
1069# reduce 86 omitted
1070
1071# reduce 87 omitted
1072
1073# reduce 88 omitted
1074
1075# reduce 89 omitted
1076
1077# reduce 90 omitted
1078
1079# reduce 91 omitted
1080
1081# reduce 92 omitted
1082
1083# reduce 93 omitted
1084
1085# reduce 94 omitted
1086
1087# reduce 95 omitted
1088
1089# reduce 96 omitted
1090
1091# reduce 97 omitted
1092
1093# reduce 98 omitted
1094
1095# reduce 99 omitted
1096
1097# reduce 100 omitted
1098
1099def _reduce_101(val, _values, result)
1100      index = @block_parser.add_footnote val[1].rdoc
1101      result = "{*#{index}}[rdoc-label:foottext-#{index}:footmark-#{index}]"
1102
1103    result
1104end
1105
1106def _reduce_102(val, _values, result)
1107      result = inline "<tt>#{val[1]}</tt>", val[1]
1108
1109    result
1110end
1111
1112# reduce 103 omitted
1113
1114# reduce 104 omitted
1115
1116# reduce 105 omitted
1117
1118# reduce 106 omitted
1119
1120# reduce 107 omitted
1121
1122# reduce 108 omitted
1123
1124def _reduce_109(val, _values, result)
1125 result << val[1]
1126    result
1127end
1128
1129# reduce 110 omitted
1130
1131def _reduce_111(val, _values, result)
1132      result = inline val[0]
1133
1134    result
1135end
1136
1137# reduce 112 omitted
1138
1139def _reduce_113(val, _values, result)
1140 result = val[1]
1141    result
1142end
1143
1144def _reduce_114(val, _values, result)
1145 result = val[1]
1146    result
1147end
1148
1149def _reduce_115(val, _values, result)
1150 result = val[1]
1151    result
1152end
1153
1154# reduce 116 omitted
1155
1156# reduce 117 omitted
1157
1158# reduce 118 omitted
1159
1160# reduce 119 omitted
1161
1162# reduce 120 omitted
1163
1164# reduce 121 omitted
1165
1166# reduce 122 omitted
1167
1168# reduce 123 omitted
1169
1170# reduce 124 omitted
1171
1172# reduce 125 omitted
1173
1174# reduce 126 omitted
1175
1176# reduce 127 omitted
1177
1178# reduce 128 omitted
1179
1180# reduce 129 omitted
1181
1182# reduce 130 omitted
1183
1184# reduce 131 omitted
1185
1186# reduce 132 omitted
1187
1188# reduce 133 omitted
1189
1190# reduce 134 omitted
1191
1192# reduce 135 omitted
1193
1194def _reduce_136(val, _values, result)
1195 result << val[1]
1196    result
1197end
1198
1199# reduce 137 omitted
1200
1201def _reduce_none(val, _values, result)
1202  val[0]
1203end
1204
1205end   # class InlineParser
1206
1207end
1208