home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
ruby164.zip
/
rbemx164.zip
/
ruby
/
share
/
doc
/
rdtool-0.6.10
/
missing
/
rd
/
rdblockparser.tab.rb
next >
Wrap
Text File
|
2001-06-07
|
37KB
|
1,517 lines
#
# missing/rd/rdblockparser.tab.rb: generated by racc (runtime embedded)
#
###### racc/parser.rb
unless $".index 'racc/parser.rb' then
$".push 'racc/parser.rb'
type.module_eval <<'..end /usr/local/lib/ruby/site_ruby/1.7/racc/parser.rb modeval..ida2ed1007f7', '/usr/local/lib/ruby/site_ruby/1.7/racc/parser.rb', 1
#
# parser.rb
#
# Copyright (c) 1999-2001 Minero Aoki <aamine@dp.u-netsurf.ne.jp>
#
# This program is free software.
# You can distribute/modify this program under the terms of
# the GNU Lesser General Public License version 2 or later.
#
# As a special exception, when this code is copied by Racc
# into a Racc output file, you may use that output file
# without restriction.
#
module Racc
class ParseError < StandardError; end
end
unless defined? ParseError then
ParseError = Racc::ParseError
end
module Racc
class Parser
private
begin
if defined? Racc_Debug_Ruby_Parser then
raise LoadError, 'debug ruby routine'
end
require 'racc/cparse'
unless new.respond_to? :_racc_do_parse_c, true then
raise LoadError, 'old cparse.so'
end
Racc_Main_Parsing_Routine = :_racc_do_parse_c
Racc_YY_Parse_Method = :_racc_yyparse_c
rescue LoadError
Racc_Main_Parsing_Routine = :_racc_do_parse_rb
Racc_YY_Parse_Method = :_racc_yyparse_rb
end
Racc_ruby_parser_version = '1.3.9'
Racc_parser_version = Racc_ruby_parser_version
def self.racc_runtime_type
if Racc_Main_Parsing_Routine == :_racc_do_parse_c then
'c'
else
'ruby'
end
end
def _racc_setup
t = self.type
unless t::Racc_debug_parser then
@yydebug = false
end
@yydebug = false unless defined? @yydebug
if @yydebug then
@racc_debug_out = $stderr unless defined? @racc_debug_out
@racc_debug_out ||= $stderr
end
arg = t::Racc_arg
if arg.size < 14 then
arg[13] = true
end
arg
end
def _racc_init_sysvars
@racc_state = [ 0 ]
@racc_tstack = []
@racc_vstack = []
@racc_t = nil
@racc_val = nil
@racc_read_next = true
@racc_user_yyerror = false
@racc_error_status = 0
end
###
### do_parse
###
def do_parse
__send__ Racc_Main_Parsing_Routine, _racc_setup(), false
end
def next_token
raise NotImplementError, "#{self.type}\#next_token must be defined"
end
def _racc_do_parse_rb( arg, in_debug )
action_table, action_check, action_default, action_pointer,
goto_table, goto_check, goto_default, goto_pointer,
nt_base, reduce_table, token_table, shift_n,
reduce_n, use_result, * = arg
_racc_init_sysvars
tok = act = i = nil
nerr = 0
catch( :racc_end_parse ) {
while true do
if i = action_pointer[ @racc_state[-1] ] then
if @racc_read_next then
if @racc_t != 0 then # not EOF
tok, @racc_val = next_token()
unless tok then # EOF
@racc_t = 0
else
@racc_t = (token_table[tok] or 1) # error token
end
racc_read_token( @racc_t, tok, @racc_val ) if @yydebug
@racc_read_next = false
end
end
i += @racc_t
if i >= 0 and act = action_table[i] and
action_check[i] == @racc_state[-1] then
;
else
act = action_default[ @racc_state[-1] ]
end
else
act = action_default[ @racc_state[-1] ]
end
while act = _racc_evalact( act, arg ) do end
end
}
end
###
### yyparse
###
def yyparse( recv, mid )
__send__ Racc_YY_Parse_Method, recv, mid, _racc_setup(), true
end
def _racc_yyparse_rb( recv, mid, arg, c_debug )
action_table, action_check, action_default, action_pointer,
goto_table, goto_check, goto_default, goto_pointer,
nt_base, reduce_table, token_table, shift_n,
reduce_n, use_result, * = arg
_racc_init_sysvars
tok = nil
act = nil
i = nil
nerr = 0
catch( :racc_end_parse ) {
until i = action_pointer[ @racc_state[-1] ] do
while act = _racc_evalact(
action_default[ @racc_state[-1] ], arg ) do end
end
recv.__send__( mid ) do |tok, val|
# $stderr.puts "rd: tok=#{tok}, val=#{val}"
unless tok then
@racc_t = 0
else
@racc_t = (token_table[tok] or 1) # error token
end
@racc_val = val
@racc_read_next = false
i += @racc_t
if i >= 0 and act = action_table[i] and
action_check[i] == @racc_state[-1] then
# $stderr.puts "01: act=#{act}"
else
act = action_default[ @racc_state[-1] ]
# $stderr.puts "02: act=#{act}"
# $stderr.puts "curstate=#{@racc_state[-1]}"
end
while act = _racc_evalact( act, arg ) do end
while not (i = action_pointer[ @racc_state[-1] ]) or
not @racc_read_next or
@racc_t == 0 do # $
if i and i += @racc_t and
i >= 0 and
act = action_table[i] and
action_check[i] == @racc_state[-1] then
# $stderr.puts "03: act=#{act}"
;
else
# $stderr.puts "04: act=#{act}"
act = action_default[ @racc_state[-1] ]
end
while act = _racc_evalact( act, arg ) do end
end
end
}
end
###
### common
###
def _racc_evalact( act, arg )
# $stderr.puts "ea: act=#{act}"
action_table, action_check, action_default, action_pointer,
goto_table, goto_check, goto_default, goto_pointer,
nt_base, reduce_table, token_table, shift_n,
reduce_n, use_result, * = arg
nerr = 0 # tmp
if act > 0 and act < shift_n then
#
# shift
#
if @racc_error_status > 0 then
@racc_error_status -= 1 unless @racc_t == 1 # error token
end
@racc_vstack.push @racc_val
@racc_state.push act
@racc_read_next = true
if @yydebug then
@racc_tstack.push @racc_t
racc_shift( @racc_t, @racc_tstack, @racc_vstack )
end
elsif act < 0 and act > -reduce_n then
#
# reduce
#
code = catch( :racc_jump ) {
@racc_state.push _racc_do_reduce( arg, act )
false
}
if code then
case code
when 1 # yyerror
@racc_user_yyerror = true # user_yyerror
return -reduce_n
when 2 # yyaccept
return shift_n
else
raise RuntimeError, '[Racc Bug] unknown jump code'
end
end
elsif act == shift_n then
#
# accept
#
racc_accept if @yydebug
throw :racc_end_parse, @racc_vstack[0]
elsif act == -reduce_n then
#
# error
#
case @racc_error_status
when 0
unless arg[21] then # user_yyerror
nerr += 1
on_error @racc_t, @racc_val, @racc_vstack
end
when 3
if @racc_t == 0 then # is $
throw :racc_end_parse, nil
end
@racc_read_next = true
end
@racc_user_yyerror = false
@racc_error_status = 3
while true do
if i = action_pointer[ @racc_state[-1] ] then
i += 1 # error token
if i >= 0 and
(act = action_table[i]) and
action_check[i] == @racc_state[-1] then
break
end
end
throw :racc_end_parse, nil if @racc_state.size < 2
@racc_state.pop
@racc_vstack.pop
if @yydebug then
@racc_tstack.pop
racc_e_pop( @racc_state, @racc_tstack, @racc_vstack )
end
end
return act
else
raise RuntimeError, "[Racc Bug] unknown action #{act.inspect}"
end
racc_next_state( @racc_state[-1], @racc_state ) if @yydebug
nil
end
def _racc_do_reduce( arg, act )
action_table, action_check, action_default, action_pointer,
goto_table, goto_check, goto_default, goto_pointer,
nt_base, reduce_table, token_table, shift_n,
reduce_n, use_result, * = arg
state = @racc_state
vstack = @racc_vstack
tstack = @racc_tstack
i = act * -3
len = reduce_table[i]
reduce_to = reduce_table[i+1]
method_id = reduce_table[i+2]
void_array = []
tmp_t = tstack[ -len, len ] if @yydebug
tmp_v = vstack[ -len, len ]
tstack[ -len, len ] = void_array if @yydebug
vstack[ -len, len ] = void_array
state[ -len, len ] = void_array
# tstack must be updated AFTER method call
if use_result then
vstack.push __send__(method_id, tmp_v, vstack, tmp_v[0])
else
vstack.push __send__(method_id, tmp_v, vstack)
end
tstack.push reduce_to
racc_reduce( tmp_t, reduce_to, tstack, vstack ) if @yydebug
k1 = reduce_to - nt_base
if i = goto_pointer[ k1 ] then
i += state[-1]
if i >= 0 and (curstate = goto_table[i]) and goto_check[i] == k1 then
return curstate
end
end
goto_default[ k1 ]
end
def on_error( t, val, vstack )
raise ParseError, sprintf("\nparse error on value %s (%s)",
val.inspect,
token_to_str(t) || '?')
end
def yyerror
throw :racc_jump, 1
end
def yyaccept
throw :racc_jump, 2
end
def yyerrok
@racc_error_status = 0
end
# for debugging output
def racc_read_token( t, tok, val )
@racc_debug_out.print 'read '
@racc_debug_out.print tok.inspect, '(', racc_token2str(t), ') '
@racc_debug_out.puts val.inspect
@racc_debug_out.puts
end
def racc_shift( tok, tstack, vstack )
@racc_debug_out.puts "shift #{racc_token2str tok}"
racc_print_stacks tstack, vstack
@racc_debug_out.puts
end
def racc_reduce( toks, sim, tstack, vstack )
out = @racc_debug_out
out.print 'reduce '
if toks.empty? then
out.print ' <none>'
else
toks.each {|t| out.print ' ', racc_token2str(t) }
end
out.puts " --> #{racc_token2str(sim)}"
racc_print_stacks tstack, vstack
@racc_debug_out.puts
end
def racc_accept
@racc_debug_out.puts 'accept'
@racc_debug_out.puts
end
def racc_e_pop( state, tstack, vstack )
@racc_debug_out.puts 'error recovering mode: pop token'
racc_print_states state
racc_print_stacks tstack, vstack
@racc_debug_out.puts
end
def racc_next_state( curstate, state )
@racc_debug_out.puts "goto #{curstate}"
racc_print_states state
@racc_debug_out.puts
end
def racc_print_stacks( t, v )
out = @racc_debug_out
out.print ' ['
t.each_index do |i|
out.print ' (', racc_token2str(t[i]), ' ', v[i].inspect, ')'
end
out.puts ' ]'
end
def racc_print_states( s )
out = @racc_debug_out
out.print ' ['
s.each {|st| out.print ' ', st }
out.puts ' ]'
end
def racc_token2str( tok )
type::Racc_token_to_s_table[tok] or
raise RuntimeError, "[Racc Bug] can't convert token #{tok} to string"
end
def token_to_str( t )
type::Racc_token_to_s_table[t]
end
end
end
..end /usr/local/lib/ruby/site_ruby/1.7/racc/parser.rb modeval..ida2ed1007f7
end # end of racc/parser.rb
require "rd/rdinlineparser.tab.rb"
require "rd/parser-util"
module RD
class RDParser < ::Racc::Parser
module_eval <<'..end rd/rdblockparser.ry modeval..id64427aaba6', '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
return [:WHITELINE, '(:COMMENT) ' + $']
when /^(={1,4})(?!=)\s*(?=\S)/, /^(\+{1,2})(?!\+)\s*(?=\S)/
rest = $' # '
rest.chomp!
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*)---(?!-)/
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
def if_current_indent_equal(indent)
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 rd/rdblockparser.ry modeval..id64427aaba6
##### racc 1.3.9 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 = [
13, 18, 23, 27, 33, 59, 80, 49, 49, 21,
88, 13, 18, 23, 27, 48, 13, 18, 23, 27,
48, 74, 13, 18, 23, 27, 33, 59, 49, 76,
23, 21, 13, 18, 23, 27, 33, 59, 79, 57,
81, 21, 13, 18, 23, 27, 66, 39, 18, 33,
48, 21, 13, 18, 23, 27, 33, 59, 58, 84,
33, 21, 13, 18, 23, 27, 33, 59, 27, 57,
13, 21, 13, 18, 23, 27, 33, 3, 6, 11,
16, 21, 13, 18, 23, 27, 33, 59, 57, nil,
nil, 21, 13, 18, 23, 27, 33, 59, nil, nil,
nil, 21, 13, 18, 23, 27, 33, 59, nil, nil,
nil, 21, 13, 18, 23, 27, nil, 39, nil, nil,
nil, 21, 13, 18, 23, 27, 33, 59, nil, nil,
nil, 21, 13, 18, 23, 27, 33, 59, nil, nil,
nil, 21, 13, 18, 23, 27, 33, 3, 6, 11,
16, 21, 71, 68, 71, 68, nil, 69, 70, 69,
87, 71, 68, 33, nil, nil, 69, nil, 78, 13,
18, 23, 27 ]
racc_action_check = [
86, 86, 86, 86, 86, 86, 54, 27, 23, 86,
86, 47, 47, 47, 47, 47, 21, 21, 21, 21,
21, 47, 65, 65, 65, 65, 65, 65, 49, 50,
31, 65, 78, 78, 78, 78, 78, 78, 53, 44,
58, 78, 9, 9, 9, 9, 41, 9, 19, 18,
69, 9, 77, 77, 77, 77, 77, 77, 35, 73,
13, 77, 67, 67, 67, 67, 67, 67, 8, 34,
2, 67, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 63, 63, 63, 63, 63, 63, 43, nil,
nil, 63, 85, 85, 85, 85, 85, 85, nil, nil,
nil, 85, 39, 39, 39, 39, 39, 39, nil, nil,
nil, 39, 28, 28, 28, 28, nil, 28, nil, nil,
nil, 28, 42, 42, 42, 42, 42, 42, nil, nil,
nil, 42, 40, 40, 40, 40, 40, 40, nil, nil,
nil, 40, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 46, 46, 83, 83, nil, 46, 46, 83,
83, 72, 72, 51, nil, nil, 72, nil, 51, 32,
32, 32, 32 ]
racc_action_pointer = [
139, nil, 67, nil, 69, nil, nil, nil, 62, 39,
nil, nil, nil, 53, nil, nil, nil, nil, 42, 44,
nil, 13, nil, 0, nil, nil, nil, -1, 109, nil,
nil, 25, 166, nil, 62, 58, nil, nil, nil, 99,
129, 33, 119, 81, 32, nil, 145, 8, nil, 20,
16, 156, nil, 25, -7, nil, nil, nil, 40, nil,
nil, nil, nil, 79, nil, 19, nil, 59, nil, 43,
nil, nil, 154, 46, nil, nil, nil, 49, 29, nil,
nil, nil, nil, 147, nil, 89, -3, nil, nil ]
racc_action_default = [
-2, -42, -32, -10, -1, -34, -11, -4, -44, -72,
-31, -12, -5, -63, -46, -23, -13, -6, -65, -36,
-24, -73, -7, -59, -38, -25, -8, -59, -72, -26,
-9, -40, -27, -16, -14, -73, -33, -3, -45, -71,
-69, -73, -70, -62, -64, -37, -73, -73, -22, -61,
-73, -51, -58, -73, -73, -41, -30, -15, -73, -57,
-54, -55, -56, -68, -53, -66, -35, -67, -21, -73,
-17, -19, -18, -73, -28, -60, -43, -49, -73, -47,
-39, 89, -52, -73, -29, -48, -73, -20, -50 ]
racc_goto_table = [
12, 46, 63, 65, 12, 67, 17, 22, 56, 41,
17, 22, 43, 47, 50, 40, 42, 44, 53, 36,
82, 7, 82, 56, 82, 37, 45, 72, 54, 55,
73, 38, 35, 4, 40, 42, 75, nil, nil, nil,
85, 86, 82, 82, nil, nil, nil, nil, nil, 83,
nil, 77 ]
racc_goto_check = [
4, 10, 31, 31, 4, 31, 5, 6, 12, 21,
5, 6, 9, 17, 27, 5, 6, 9, 27, 19,
32, 3, 32, 12, 32, 3, 23, 10, 21, 26,
11, 29, 1, 2, 5, 6, 33, nil, nil, nil,
31, 31, 32, 32, nil, nil, nil, nil, nil, 10,
nil, 4 ]
racc_goto_pointer = [
nil, 32, 33, 21, 0, 6, 7, nil, nil, -1,
-20, -17, -24, nil, nil, nil, nil, -8, nil, 17,
nil, 0, nil, 7, nil, nil, -2, -9, nil, 23,
nil, -37, -43, -13 ]
racc_goto_default = [
nil, nil, nil, nil, 60, 61, 62, 26, 30, 34,
nil, nil, 10, 15, 20, 25, 29, 32, 2, 5,
9, nil, 19, 24, 28, 31, 1, nil, 8, 14,
51, nil, 64, 52 ]
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 <<'.,.,', 'rd/rdblockparser.ry', 12
def _reduce_1( val, _values, result )
result = DocumentElement.new
add_children_to_element(result, *val[0])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 16
def _reduce_2( val, _values, result )
raise ParseError,
"Error: file empty or doesn't have `=begin', `=end'."
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 20
def _reduce_3( val, _values, result )
result.concat(val[1])
result
end
.,.,
# reduce 4 omitted
module_eval <<'.,.,', 'rd/rdblockparser.ry', 23
def _reduce_5( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 24
def _reduce_6( val, _values, result )
result = val
result
end
.,.,
# reduce 7 omitted
module_eval <<'.,.,', 'rd/rdblockparser.ry', 26
def _reduce_8( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 27
def _reduce_9( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 28
def _reduce_10( val, _values, result )
result = []
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 29
def _reduce_11( val, _values, result )
result = val[0].blocks
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 32
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 <<'.,.,', 'rd/rdblockparser.ry', 38
def _reduce_13( val, _values, result )
result = Include.new(val[0])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 42
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 <<'.,.,', 'rd/rdblockparser.ry', 50
def _reduce_15( val, _values, result )
result.push(val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 51
def _reduce_16( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 55
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 <<'.,.,', 'rd/rdblockparser.ry', 62
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 <<'.,.,', 'rd/rdblockparser.ry', 69
def _reduce_19( val, _values, result )
result.push(val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 71
def _reduce_20( val, _values, result )
result.concat(val[2])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 73
def _reduce_21( val, _values, result )
result.push("\n")
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 74
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 <<'.,.,', 'rd/rdblockparser.ry', 85
def _reduce_28( val, _values, result )
result = val[1]
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 87
def _reduce_29( val, _values, result )
result = val[1].push(val[2])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 90
def _reduce_30( val, _values, result )
result.push(val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 91
def _reduce_31( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 95
def _reduce_32( val, _values, result )
result = ItemList.new
add_children_to_element(result, *val[0])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 100
def _reduce_33( val, _values, result )
result.push(val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 101
def _reduce_34( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 105
def _reduce_35( val, _values, result )
result = ItemListItem.new
add_children_to_element(result, val[0], *val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 111
def _reduce_36( val, _values, result )
result = EnumList.new
add_children_to_element(result, *val[0])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 116
def _reduce_37( val, _values, result )
result.push(val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 117
def _reduce_38( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 121
def _reduce_39( val, _values, result )
result = EnumListItem.new
add_children_to_element(result, val[0], *val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 127
def _reduce_40( val, _values, result )
result = DescList.new
add_children_to_element(result, *val[0])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 132
def _reduce_41( val, _values, result )
result.push(val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 133
def _reduce_42( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 137
def _reduce_43( val, _values, result )
term = DescListItem::Term.new
term_contents = @inline_parser.parse(val[0])
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 <<'.,.,', 'rd/rdblockparser.ry', 148
def _reduce_44( val, _values, result )
result = MethodList.new
add_children_to_element(result, *val[0])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 153
def _reduce_45( val, _values, result )
result.push(val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 154
def _reduce_46( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 158
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 <<'.,.,', 'rd/rdblockparser.ry', 166
def _reduce_48( val, _values, result )
result = [val[1]].concat(val[2])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 167
def _reduce_49( val, _values, result )
result = [val[1]]
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 169
def _reduce_50( val, _values, result )
result = val[2]
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 170
def _reduce_51( val, _values, result )
result = []
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 173
def _reduce_52( val, _values, result )
result.concat(val[1])
result
end
.,.,
# reduce 53 omitted
module_eval <<'.,.,', 'rd/rdblockparser.ry', 176
def _reduce_54( val, _values, result )
result = val
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 177
def _reduce_55( val, _values, result )
result = val
result
end
.,.,
# reduce 56 omitted
module_eval <<'.,.,', '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 <<'.,.,', 'rd/rdblockparser.ry', 190
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 <<'.,.,', 'rd/rdblockparser.ry', 197
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 <<'.,.,', 'rd/rdblockparser.ry', 205
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 <<'.,.,', 'rd/rdblockparser.ry', 212
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 <<'.,.,', 'rd/rdblockparser.ry', 219
def _reduce_66( val, _values, result )
result = [val[0]].concat(val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 220
def _reduce_67( val, _values, result )
result.concat(val[1])
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 221
def _reduce_68( val, _values, result )
result = val[1]
result
end
.,.,
module_eval <<'.,.,', 'rd/rdblockparser.ry', 222
def _reduce_69( val, _values, result )
result = val
result
end
.,.,
# reduce 70 omitted
module_eval <<'.,.,', 'rd/rdblockparser.ry', 224
def _reduce_71( val, _values, result )
result = []
result
end
.,.,
module_eval <<'.,.,', '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