#
# DO NOT MODIFY!!!!
# This file is automatically generated by racc 1.4.4
# from racc grammer file "lib/rd/rdblockparser.ry".
#

require 'racc/parser'


require "rd/rdinlineparser.tab.rb"
require "rd/parser-util"

module RD

class RDParser < Racc::Parser

module_eval <<'..end lib/rd/rdblockparser.ry modeval..idc4b57748f0', 'lib/rd/rdblockparser.ry', 231
include ParserUtility

TMPFILE = ["rdtmp", $$, 0]

attr_reader :tree

def initialize
  @inline_parser = RDInlineParser.new(self)
end

def parse(src, tree)
  @src = src
  @src.push(false)
  # RDtree
  @tree = tree
  
  # @i: index(line no.) of src
  @i = 0
  # stack for current indentation
  @indent_stack = []
  # how indented.
  @current_indent = @indent_stack.join("")
  # RDParser for tmp src
  @subparser = nil
  # which part is in now
  @in_part = nil
  @part_content = []

  @in_verbatim = false

  @yydebug = true
  do_parse
end

def next_token
  # preprocessing
  # if it is not in RD part
  # => method
  while @in_part != "rd"
    line = @src[@i]
    @i += 1 # next line
    
    case line
    # src end
    when false
      return [false, false]
    # RD part begin
    when /^=begin\s*(?:\bRD\b.*)?\s*$/
      if @in_part # if in non-RD part
	@part_content.push(line)
      else
	@in_part = "rd"
	return [:WHITELINE, "=begin\n"] # <= for textblockand
      end
    # non-RD part begin
    when /^=begin\s+(\w+)/
      part = $1
      if @in_part # if in non-RD part
	@part_content.push(line)
      else
	@in_part = part if @tree.filter[part] # if filter exists
#	p "BEGIN_PART: #{@in_part}" # DEBUG
      end
    # non-RD part end
    when /^=end/
      if @in_part # if in non-RD part
#	p "END_PART: #{@in_part}" # DEBUG
	# make Part-in object
	part = RD::Part.new(@part_content.join(""), @tree, "r")
	@part_content.clear
	# call filter, part_out is output(Part object)
	part_out = @tree.filter[@in_part].call(part)
	
	if @tree.filter[@in_part].mode == :rd # if output is RD formated
	  subtree = parse_subtree(part_out.to_a)
	else # if output is target formated
	  basename = TMPFILE.join('.')
	  TMPFILE[-1] += 1
	  tmpfile = open(@tree.tmp_dir + "/" + basename + ".#{@in_part}", "w")
	  tmpfile.print(part_out)
	  tmpfile.close
	  subtree = parse_subtree(["=begin\n", "<<< #{basename}\n", "=end\n"])
	end
	@in_part = nil
	return [:SUBTREE, subtree]
      end
    else
      if @in_part # if in non-RD part
	@part_content.push(line)
      end
    end
  end

  @current_indent = @indent_stack.join("")
  line = @src[@i]
  case line
  when false
    if_current_indent_equal("") do
      [false, false]
    end
  when /^=end/
    if_current_indent_equal("") do
      @in_part = nil
      [:WHITELINE, "=end"] # MUST CHANGE??
    end
  when /^\s*$/
    @i += 1 # next line
    return [:WHITELINE, ':WHITELINE']
  when /^\#/  # comment line
    @i += 1 # next line
    self.next_token()
  when /^(={1,4})(?!=)\s*(?=\S)/, /^(\+{1,2})(?!\+)\s*(?=\S)/
    rest = $'                    # '
    rest.strip!
    mark = $1
    if_current_indent_equal("") do
      return [:HEADLINE, [Headline.mark_to_level(mark), rest]]
    end
  when /^<<<\s*(\S+)/
    file = $1
    if_current_indent_equal("") do
      suffix = file[-3 .. -1] 
      if suffix == ".rd" or suffix == ".rb"
	subtree = parse_subtree(get_included(file))
	[:SUBTREE, subtree]
      else
	[:INCLUDE, file]
      end
    end
  when /^(\s*)\*(\s*)/
    rest = $'                   # '
    newIndent = $2
    if_current_indent_equal($1) do
      if @in_verbatim
	[:STRINGLINE, line]
      else
	@indent_stack.push("\s" << newIndent)
	[:ITEMLISTLINE, rest]
      end
    end
  when /^(\s*)(\(\d+\))(\s*)/
    rest = $'                     # '
    mark = $2
    newIndent = $3
    if_current_indent_equal($1) do
      if @in_verbatim
	[:STRINGLINE, line]
      else
	@indent_stack.push("\s" * mark.size << newIndent)
	[:ENUMLISTLINE, rest]
      end
    end
  when /^(\s*):(\s*)/
    rest = $'                    # '
    newIndent = $2
    if_current_indent_equal($1) do
      if @in_verbatim
	[:STRINGLINE, line]
      else
	@indent_stack.push("\s" <<$2)
	[:DESCLISTLINE, rest]
      end
    end
  when /^(\s*)---(?!-|\s*$)/
    indent = $1
    rest = $'
    /\s*/ === rest
    term = $'
    new_indent = $&
    if_current_indent_equal(indent) do
      if @in_verbatim
	[:STRINGLINE, line]
      else
	@indent_stack.push("\s\s\s" + new_indent)
	[:METHODLISTLINE, term]
      end
    end
  when /^(\s*)/
    if_current_indent_equal($1) do
      [:STRINGLINE, line]
    end
  else
    raise "[BUG] parsing error may occured."
  end
end

=begin private
  --- RDParser#if_current_indent_equal(indent)
        if (({@current_indent == ((|indent|))})) then yield block, otherwise
        process indentation.
=end
# always @current_indent = @indent_stack.join("") 
def if_current_indent_equal(indent)
  indent = indent.sub(/\t/, "\s" * 8)
  if @current_indent == indent
    @i += 1 # next line
    yield
  elsif indent.index(@current_indent) == 0
    @indent_stack.push(indent[@current_indent.size .. -1])
    [:INDENT, ":INDENT"]
  else
    @indent_stack.pop
    [:DEDENT, ":DEDENT"]
  end
end
private :if_current_indent_equal

def cut_off(src)
  ret = []
  whiteline_buf = []
  line = src.shift
  /^\s*/ =~ line
  indent = Regexp.quote($&)
  ret.push($')                 # '
  while line = src.shift
    if /^(\s*)$/ =~ line
      whiteline_buf.push(line)
    elsif /^#{indent}/ =~ line
      unless whiteline_buf.empty?
	ret.concat(whiteline_buf)
	whiteline_buf.clear
      end
      ret.push($')            # '
    else
      raise "[BUG]: probably Parser Error while cutting off.\n"
    end
  end
  ret
end
private :cut_off

def set_term_to_element(parent, term)
#  parent.set_term_under_document_struct(term, @tree.document_struct)
  parent.set_term_without_document_struct(term)
end
private :set_term_to_element

def on_error( et, ev, _values )
  line = @src[@i]
  prv, cur, nxt = format_line_num(@i, @i+1, @i+2)
  
  raise ParseError, <<Msg

RD syntax error: line #{@i+1}:
  #{prv}  |#{@src[@i-1].chomp}
  #{cur}=>|#{@src[@i].chomp}
  #{nxt}  |#{@src[@i+1].chomp}

Msg
end

def line_index
  @i
end

def parse_subtree(src)
  @subparser = RD::RDParser.new() unless @subparser
  
  @subparser.parse(src, @tree)
end
private :parse_subtree

def get_included(file)
  included = ""
  @tree.include_path.each do |dir|
    file_name = dir + "/" + file
    if test(?e, file_name)
      included = IO.readlines(file_name)
      break
    end
  end
  included
end
private :get_included

def format_line_num(*args)
  width = args.collect{|i| i.to_s.length }.max
  args.collect{|i| sprintf("%#{width}d", i) }
end
private :format_line_num

..end lib/rd/rdblockparser.ry modeval..idc4b57748f0

##### racc 1.4.4 generates ###

racc_reduce_table = [
 0, 0, :racc_error,
 1, 15, :_reduce_1,
 0, 15, :_reduce_2,
 2, 16, :_reduce_3,
 1, 16, :_reduce_none,
 1, 17, :_reduce_5,
 1, 17, :_reduce_6,
 1, 17, :_reduce_none,
 1, 17, :_reduce_8,
 1, 17, :_reduce_9,
 1, 17, :_reduce_10,
 1, 17, :_reduce_11,
 1, 21, :_reduce_12,
 1, 22, :_reduce_13,
 1, 18, :_reduce_14,
 2, 23, :_reduce_15,
 1, 23, :_reduce_16,
 3, 19, :_reduce_17,
 1, 25, :_reduce_18,
 2, 24, :_reduce_19,
 4, 24, :_reduce_20,
 2, 24, :_reduce_21,
 1, 24, :_reduce_22,
 1, 26, :_reduce_none,
 1, 26, :_reduce_none,
 1, 26, :_reduce_none,
 1, 26, :_reduce_none,
 1, 20, :_reduce_none,
 3, 20, :_reduce_28,
 4, 20, :_reduce_29,
 2, 31, :_reduce_30,
 1, 31, :_reduce_31,
 1, 27, :_reduce_32,
 2, 32, :_reduce_33,
 1, 32, :_reduce_34,
 3, 33, :_reduce_35,
 1, 28, :_reduce_36,
 2, 36, :_reduce_37,
 1, 36, :_reduce_38,
 3, 37, :_reduce_39,
 1, 29, :_reduce_40,
 2, 39, :_reduce_41,
 1, 39, :_reduce_42,
 3, 40, :_reduce_43,
 1, 30, :_reduce_44,
 2, 42, :_reduce_45,
 1, 42, :_reduce_46,
 3, 43, :_reduce_47,
 3, 41, :_reduce_48,
 2, 41, :_reduce_49,
 4, 41, :_reduce_50,
 1, 41, :_reduce_51,
 2, 45, :_reduce_52,
 1, 45, :_reduce_none,
 1, 46, :_reduce_54,
 1, 46, :_reduce_55,
 1, 46, :_reduce_none,
 1, 46, :_reduce_57,
 1, 44, :_reduce_none,
 0, 44, :_reduce_none,
 2, 47, :_reduce_none,
 1, 47, :_reduce_none,
 2, 34, :_reduce_62,
 1, 34, :_reduce_63,
 2, 38, :_reduce_64,
 1, 38, :_reduce_65,
 2, 35, :_reduce_66,
 2, 35, :_reduce_67,
 2, 35, :_reduce_68,
 1, 35, :_reduce_69,
 1, 35, :_reduce_none,
 1, 35, :_reduce_71,
 0, 35, :_reduce_72 ]

racc_reduce_n = 73

racc_shift_n = 89

racc_action_table = [
     7,     9,    13,    17,    23,    63,    80,    43,    43,     5,
    88,     7,     9,    13,    17,    41,     7,     9,    13,    17,
    41,    72,     7,     9,    13,    17,    23,    63,    75,    50,
    50,     5,     7,     9,    13,    17,    23,    63,    79,    50,
    81,     5,     7,     9,    13,    17,    23,    63,    47,    23,
     9,     5,     7,     9,    13,    17,    23,    63,    41,    13,
    84,     5,     7,     9,    13,    17,    23,    63,    23,    43,
    17,     5,     7,     9,    13,    17,    23,    26,    30,    34,
     2,     5,     7,     9,    13,    17,    59,    37,     7,   nil,
   nil,     5,     7,     9,    13,    17,   nil,    37,   nil,   nil,
   nil,     5,     7,     9,    13,    17,    23,    26,    30,    34,
     2,     5,     7,     9,    13,    17,    23,    63,   nil,   nil,
   nil,     5,     7,     9,    13,    17,    23,    63,   nil,   nil,
   nil,     5,     7,     9,    13,    17,    23,    63,   nil,   nil,
   nil,     5,     7,     9,    13,    17,    23,    63,    70,    71,
   nil,     5,    23,    68,    69,    70,    71,    76,    70,    71,
    68,    87,   nil,    68,     7,     9,    13,    17 ]

racc_action_check = [
    85,    85,    85,    85,    85,    85,    52,    44,    46,    85,
    85,    42,    42,    42,    42,    42,     5,     5,     5,     5,
     5,    42,    60,    60,    60,    60,    60,    60,    47,    17,
    50,    60,    77,    77,    77,    77,    77,    77,    51,    13,
    54,    77,    76,    76,    76,    76,    76,    76,    12,     9,
     8,    76,    67,    67,    67,    67,    67,    67,    68,    18,
    74,    67,    66,    66,    66,    66,    66,    66,     7,     6,
    28,    66,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     4,     4,     4,     4,    36,     4,    33,   nil,
   nil,     4,    14,    14,    14,    14,   nil,    14,   nil,   nil,
   nil,    14,    16,    16,    16,    16,    16,    16,    16,    16,
    16,    16,    37,    37,    37,    37,    37,    37,   nil,   nil,
   nil,    37,    39,    39,    39,    39,    39,    39,   nil,   nil,
   nil,    39,    38,    38,    38,    38,    38,    38,   nil,   nil,
   nil,    38,    86,    86,    86,    86,    86,    86,    40,    40,
   nil,    86,    48,    40,    40,    83,    83,    48,    73,    73,
    83,    83,   nil,    73,    29,    29,    29,    29 ]

racc_action_pointer = [
    69,   nil,   nil,   nil,    79,    13,    62,    61,    46,    42,
   nil,   nil,    48,    31,    89,   nil,    99,    21,    54,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    64,   161,
   nil,   nil,   nil,    85,   nil,   nil,    73,   109,   129,   119,
   141,   nil,     8,   nil,     0,   nil,     1,    28,   145,   nil,
    22,    25,    -7,   nil,    27,   nil,   nil,   nil,   nil,   nil,
    19,   nil,   nil,   nil,   nil,   nil,    59,    49,    51,   nil,
   nil,   nil,   nil,   151,    47,   nil,    39,    29,   nil,   nil,
   nil,   nil,   nil,   148,   nil,    -3,   139,   nil,   nil ]

racc_action_default = [
    -2,   -34,   -13,    -9,   -72,   -73,   -14,   -63,   -36,   -65,
   -38,   -31,   -73,   -59,   -72,   -23,    -1,   -59,   -40,   -24,
    -4,   -42,   -25,   -16,    -5,   -26,   -10,    -6,   -44,   -27,
   -11,    -7,   -46,   -32,   -12,    -8,   -73,   -71,   -69,   -70,
   -73,   -22,   -73,   -15,   -62,   -37,   -64,   -73,   -51,   -58,
   -61,   -73,   -73,    -3,   -73,   -41,   -45,   -30,   -33,   -35,
   -68,   -53,   -54,   -57,   -55,   -56,   -66,   -67,   -73,   -17,
   -19,   -21,   -28,   -18,   -73,    89,   -73,   -49,   -60,   -43,
   -39,   -47,   -52,   -73,   -29,   -73,   -48,   -20,   -50 ]

racc_goto_table = [
    40,    24,    60,    66,    67,    82,    27,    20,    57,    36,
    38,    82,    82,    44,    51,    46,    42,    24,    54,    52,
    38,    57,    27,    53,    31,    58,    45,    55,    39,    74,
    82,    82,    56,    12,    16,    78,   nil,    73,    39,   nil,
    31,    85,    86,   nil,   nil,   nil,   nil,   nil,   nil,    77,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,    83 ]

racc_goto_check = [
    10,     4,    31,    31,    31,    32,     5,     3,    12,    21,
     5,    32,    32,     9,    27,     9,    17,     4,    27,    21,
     5,    12,     5,     3,     6,    19,    23,    26,     6,    11,
    32,    32,    29,     1,     2,    33,   nil,    10,     6,   nil,
     6,    31,    31,   nil,   nil,   nil,   nil,   nil,   nil,     4,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,    10 ]

racc_goto_pointer = [
   nil,    33,    34,     7,     1,     6,    24,   nil,   nil,     6,
    -5,   -13,   -21,   nil,   nil,   nil,   nil,    11,   nil,    -8,
   nil,     5,   nil,    18,   nil,   nil,     9,     1,   nil,     4,
   nil,   -35,   -55,   -15 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,    62,    64,    65,    35,     3,     6,
   nil,   nil,    11,    15,    19,    22,    25,    29,    33,     1,
     4,   nil,     8,    10,    14,    18,    21,   nil,    28,    32,
    48,   nil,    61,    49 ]

racc_token_table = {
 false => 0,
 Object.new => 1,
 :DUMMY => 2,
 :ITEMLISTLINE => 3,
 :ENUMLISTLINE => 4,
 :DESCLISTLINE => 5,
 :METHODLISTLINE => 6,
 :STRINGLINE => 7,
 :WHITELINE => 8,
 :SUBTREE => 9,
 :HEADLINE => 10,
 :INCLUDE => 11,
 :INDENT => 12,
 :DEDENT => 13 }

racc_use_result_var = true

racc_nt_base = 14

Racc_arg = [
 racc_action_table,
 racc_action_check,
 racc_action_default,
 racc_action_pointer,
 racc_goto_table,
 racc_goto_check,
 racc_goto_default,
 racc_goto_pointer,
 racc_nt_base,
 racc_reduce_table,
 racc_token_table,
 racc_shift_n,
 racc_reduce_n,
 racc_use_result_var ]

Racc_token_to_s_table = [
'$end',
'error',
'DUMMY',
'ITEMLISTLINE',
'ENUMLISTLINE',
'DESCLISTLINE',
'METHODLISTLINE',
'STRINGLINE',
'WHITELINE',
'SUBTREE',
'HEADLINE',
'INCLUDE',
'INDENT',
'DEDENT',
'$start',
'document',
'blocks',
'block',
'textblock',
'verbatim',
'lists',
'headline',
'include',
'textblockcontent',
'verbatimcontent',
'verbatim_after_lists',
'list',
'itemlist',
'enumlist',
'desclist',
'methodlist',
'lists2',
'itemlistitems',
'itemlistitem',
'first_textblock_in_itemlist',
'other_blocks_in_list',
'enumlistitems',
'enumlistitem',
'first_textblock_in_enumlist',
'desclistitems',
'desclistitem',
'description_part',
'methodlistitems',
'methodlistitem',
'whitelines',
'blocks_in_list',
'block_in_list',
'whitelines2']

Racc_debug_parser = false

##### racc system variables end #####

 # reduce 0 omitted

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 14
  def _reduce_1( val, _values, result )
 result = DocumentElement.new
		       add_children_to_element(result, *val[0])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 19
  def _reduce_2( val, _values, result )
                         raise ParseError,
                         "Error: file empty."
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 20
  def _reduce_3( val, _values, result )
 result.concat(val[1])
   result
  end
.,.,

 # reduce 4 omitted

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 23
  def _reduce_5( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 24
  def _reduce_6( val, _values, result )
 result = val
   result
  end
.,.,

 # reduce 7 omitted

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 26
  def _reduce_8( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 27
  def _reduce_9( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 28
  def _reduce_10( val, _values, result )
 result = []
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 29
  def _reduce_11( val, _values, result )
 result = val[0].blocks
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 36
  def _reduce_12( val, _values, result )
 # val[0] is like [level, title]
			  title = @inline_parser.parse(val[0][1])
			  result = Headline.new(val[0][0])
			  add_children_to_element(result, *title)
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 38
  def _reduce_13( val, _values, result )
 result = Include.new(val[0])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 47
  def _reduce_14( val, _values, result )
 # val[0] is Array of String
			  content = cut_off(val[0]).join("")
			  contents = @inline_parser.parse(content)
			  result = TextBlock.new()
			  add_children_to_element(result, *contents)
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 50
  def _reduce_15( val, _values, result )
 result.push(val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 51
  def _reduce_16( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 59
  def _reduce_17( val, _values, result )
 # val[1] is Array of String
			  content = cut_off(val[1])
			  result = Verbatim.new(content)
			  # imform to lexer.
			  @in_verbatim = false
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 66
  def _reduce_18( val, _values, result )
 # val[0] is Array of String
			  content = cut_off(val[0])
			  result = Verbatim.new(content)
			  # imform to lexer.
			  @in_verbatim = false
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 69
  def _reduce_19( val, _values, result )
 result.push(val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 71
  def _reduce_20( val, _values, result )
 result.concat(val[2])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 73
  def _reduce_21( val, _values, result )
 result.push("\n")
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 76
  def _reduce_22( val, _values, result )
 result = val
					# imform to lexer.
					@in_verbatim = true
   result
  end
.,.,

 # reduce 23 omitted

 # reduce 24 omitted

 # reduce 25 omitted

 # reduce 26 omitted

 # reduce 27 omitted

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 85
  def _reduce_28( val, _values, result )
 result = val[1]
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 87
  def _reduce_29( val, _values, result )
 result = val[1].push(val[2])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 90
  def _reduce_30( val, _values, result )
 result.push(val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 91
  def _reduce_31( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 98
  def _reduce_32( val, _values, result )
                          result = ItemList.new
			  add_children_to_element(result, *val[0])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 100
  def _reduce_33( val, _values, result )
 result.push(val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 101
  def _reduce_34( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 108
  def _reduce_35( val, _values, result )
                  result = ItemListItem.new
		  add_children_to_element(result, val[0], *val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 114
  def _reduce_36( val, _values, result )
                          result = EnumList.new
			  add_children_to_element(result, *val[0])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 116
  def _reduce_37( val, _values, result )
 result.push(val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 117
  def _reduce_38( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 124
  def _reduce_39( val, _values, result )
                  result = EnumListItem.new
		  add_children_to_element(result, val[0], *val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 130
  def _reduce_40( val, _values, result )
                          result = DescList.new
			  add_children_to_element(result, *val[0])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 133
  def _reduce_41( val, _values, result )
			result.push(val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 133
  def _reduce_42( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 145
  def _reduce_43( val, _values, result )
                          term = DescListItem::Term.new
                          term_contents = @inline_parser.parse(val[0].strip)
			  add_children_to_element(term, *term_contents)

			  result = DescListItem.new
                          set_term_to_element(result, term)
		          add_children_to_element(result, *val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 151
  def _reduce_44( val, _values, result )
                          result = MethodList.new
			  add_children_to_element(result, *val[0])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 153
  def _reduce_45( val, _values, result )
 result.push(val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 154
  def _reduce_46( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 163
  def _reduce_47( val, _values, result )
			  term = MethodListItem::Term.new(val[0].strip)
			  result = MethodListItem.new
                          set_term_to_element(result, term)
			  add_children_to_element(result, *val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 166
  def _reduce_48( val, _values, result )
 result = [val[1]].concat(val[2])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 167
  def _reduce_49( val, _values, result )
 result = [val[1]]
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 169
  def _reduce_50( val, _values, result )
 result = val[2]
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 170
  def _reduce_51( val, _values, result )
 result = []
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 173
  def _reduce_52( val, _values, result )
 result.concat(val[1])
   result
  end
.,.,

 # reduce 53 omitted

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 176
  def _reduce_54( val, _values, result )
 result = val
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 177
  def _reduce_55( val, _values, result )
 result = val
   result
  end
.,.,

 # reduce 56 omitted

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 179
  def _reduce_57( val, _values, result )
 result = []
   result
  end
.,.,

 # reduce 58 omitted

 # reduce 59 omitted

 # reduce 60 omitted

 # reduce 61 omitted

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 194
  def _reduce_62( val, _values, result )
 content = cut_off([val[0]].concat(val[1])).join("")
		  contents = @inline_parser.parse(content)
                  result = TextBlock.new()
		  add_children_to_element(result, *contents)
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 201
  def _reduce_63( val, _values, result )
 content = cut_off([val[0]]).join("")
		  contents = @inline_parser.parse(content)
		  result = TextBlock.new()
		  add_children_to_element(result, *contents)
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 209
  def _reduce_64( val, _values, result )
 content = cut_off([val[0]].concat(val[1])).join("")
		  contents = @inline_parser.parse(content)
	          result = TextBlock.new()
		  add_children_to_element(result, *contents)
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 216
  def _reduce_65( val, _values, result )
 content = cut_off([val[0]]).join("")
		  contents = @inline_parser.parse(content)
	          result = TextBlock.new()
		  add_children_to_element(result, *contents)
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 219
  def _reduce_66( val, _values, result )
 result = [val[0]].concat(val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 220
  def _reduce_67( val, _values, result )
 result.concat(val[1])
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 221
  def _reduce_68( val, _values, result )
 result = val[1]
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 222
  def _reduce_69( val, _values, result )
 result = val
   result
  end
.,.,

 # reduce 70 omitted

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 224
  def _reduce_71( val, _values, result )
 result = []
   result
  end
.,.,

module_eval <<'.,.,', 'lib/rd/rdblockparser.ry', 225
  def _reduce_72( val, _values, result )
 result = []
   result
  end
.,.,

 def _reduce_none( val, _values, result )
  result
 end

end   # class RDParser

end # end of module RD 
