Module: Ripper::RubyBuilder::Statements

Included in:
Ripper::RubyBuilder
Defined in:
lib/ripper/ruby_builder/events/statements.rb

Instance Method Summary collapse

Instance Method Details

#on_body_stmt(body, rescue_block, else_block, ensure_block) ⇒ Object



10
11
12
13
14
# File 'lib/ripper/ruby_builder/events/statements.rb', line 10

def on_body_stmt(body, rescue_block, else_block, ensure_block)
  statements = [rescue_block, else_block, ensure_block].compact
  body = body.to_chained_block(nil, statements) unless statements.empty?
  body
end

#on_const_ref(const) ⇒ Object



41
42
43
# File 'lib/ripper/ruby_builder/events/statements.rb', line 41

def on_const_ref(const)
  const
end

#on_paren(node) ⇒ Object



16
17
18
19
20
21
# File 'lib/ripper/ruby_builder/events/statements.rb', line 16

def on_paren(node)
  node = Ruby::Statements.new(node) unless node.is_a?(Ruby::ArgsList) || node.is_a?(Ruby::Params)
  node.rdelim ||= pop_token(:@rparen)
  node.ldelim ||= pop_token(:@lparen)
  node
end

#on_program(statements) ⇒ Object



4
5
6
7
8
# File 'lib/ripper/ruby_builder/events/statements.rb', line 4

def on_program(statements)
  program = statements.to_program(src, filename, pop_end_data)
  program << Ruby::Token.new('', position, prolog) unless stack.buffer.empty?
  program
end

#on_stmts_add(target, statement) ⇒ Object



23
24
25
26
27
# File 'lib/ripper/ruby_builder/events/statements.rb', line 23

def on_stmts_add(target, statement)
  on_words_end if statement.is_a?(Ruby::Array) && !string_stack.empty? # simulating on_words_end event
  target.elements << statement if statement
  target
end

#on_stmts_newObject



29
30
31
# File 'lib/ripper/ruby_builder/events/statements.rb', line 29

def on_stmts_new
  Ruby::Statements.new
end

#on_var_field(field) ⇒ Object



45
46
47
# File 'lib/ripper/ruby_builder/events/statements.rb', line 45

def on_var_field(field)
  field
end

#on_var_ref(ref) ⇒ Object



37
38
39
# File 'lib/ripper/ruby_builder/events/statements.rb', line 37

def on_var_ref(ref)
  ref.instance_of?(Ruby::Identifier) ? Ruby::Variable.new(ref.token, ref.position, ref.prolog) : ref
end

#on_void_stmtObject



33
34
35
# File 'lib/ripper/ruby_builder/events/statements.rb', line 33

def on_void_stmt
  nil
end