class RedParse::ListInNode::BeginNode

Attributes

after_comma[RW]
after_equals[RW]
empty_else[R]
empty_ensure[R]

Public Class Methods

new(*args) click to toggle source
# File lib/redparse/node.rb, line 2140
def initialize(*args)
  @offset=args.first.offset
  @empty_ensure=@empty_else=@op_rescue=nil
  body,rescues,else_,ensure_=*args[1...-1]
  rescues.extend ListInNode
  if else_
    else_=else_.val or @empty_else=true
  end
  if ensure_
    ensure_=ensure_.val or @empty_ensure=true
  end
  replace [body,rescues,else_,ensure_]
end

Public Instance Methods

begin_parsetree(o) click to toggle source
# File lib/redparse/node.rb, line 2203
def begin_parsetree(o)
  #body,rescues,else_,ensure_=*self
  needbegin=(rescues&&!rescues.empty?) || ensure_ || @empty_ensure
  result=parsetree(o)
  needbegin and result=[:begin, result] unless result.first==:begin
  result
end
image() click to toggle source
# File lib/redparse/node.rb, line 2164
def image; '(begin)' end
lvalue() click to toggle source
# File lib/redparse/node.rb, line 2211
def lvalue
  return nil
end
non_empty() click to toggle source
# File lib/redparse/node.rb, line 2168
def non_empty
  rescues.size > 0 or !!ensures or body
end
op?() click to toggle source
# File lib/redparse/node.rb, line 2154
def op?; false end
parsetree(o) click to toggle source
# File lib/redparse/node.rb, line 2179
      def parsetree(o)
        result=parsetree_and_rescues(o)

=begin should be something like this:
        limit=o[:quirks] ? 1 : result.size
        (0...limit).each{|i| 
          result[i,1]=result[i][1..-1] if Array===result[i] and result[i][0]==:block
        }
=end

        if o[:ruby187] and result.first==:begin
          result=result[1]
        else
          result=[:begin,result] unless result==[:nil]#||result.first==:begin
        end
        return result
      end
rescue_parsetree(o) click to toggle source
# File lib/redparse/node.rb, line 2197
def rescue_parsetree o
  result=parsetree o
  result.first==:begin and result=result.last unless o[:ruby187]
  result
end
special_conditions!() click to toggle source
# File lib/redparse/node.rb, line 2166
def special_conditions!; nil end
to_lisp() click to toggle source
# File lib/redparse/node.rb, line 2174
def to_lisp
  huh #what about rescues, else, ensure?
  body.to_lisp
end
unparse(o=default_unparse_options) click to toggle source

attr_accessor :lvalue

# File lib/redparse/node.rb, line 2216
def unparse(o=default_unparse_options)
    result="begin "
    result+=unparse_and_rescues(o)
    result+=";end"
end