class Yadriggy::Block

Block.

Attributes

body[R]

@return [ASTnode] the body.

rescue[R]

@return [Rescue|nil] the rescue clause.

Public Class Methods

new(sexp) click to toggle source
# File lib/yadriggy/ast.rb, line 1378
def initialize(sexp)
  var = has_tag?(sexp[1], :block_var)
  if var.nil?
    params = nil
  else
    params = has_tag?(var[1], :params)
  end
  initialize_vars(params, sexp[2])
end
tags() click to toggle source
# File lib/yadriggy/ast.rb, line 1376
def self.tags() [:brace_block, :do_block] end

Public Instance Methods

accept(evaluator) click to toggle source

A method for Visitor pattern. @param [Eval] evaluator the visitor of Visitor pattern. @return [void]

# File lib/yadriggy/ast.rb, line 1405
def accept(evaluator)
  evaluator.block(self)
end
initialize_vars(params, body) click to toggle source
# File lib/yadriggy/ast.rb, line 1388
def initialize_vars(params, body)
  initialize_params(params)
  if body.is_a?(Array) && body.length > 0 && body[0] == :bodystmt
    bodystmnt = body[1]
    @rescue = Rescue.make(body[2], body[3], body[4])
  else # if Ruby 2.5 or earlier
    bodystmnt = body
    @rescue = nil
  end
  @body = Exprs.make(bodystmnt)
  add_child(@body)
  add_child(@rescue)
end