Module: Ripper::RubyBuilder::Literal

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

Constant Summary collapse

@@tokens =
%w(class module def do begin rescue ensure retry end 
if unless then else elsif case when while until for in
not and or alias undef super yield return next redo break 
defined? BEGIN END)

Instance Method Summary collapse

Instance Method Details

#on_CHAR(token) ⇒ Object



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

def on_CHAR(token)
  push
  Ruby::Char.new(token, position, prolog)
end

#on_dot2(left, right) ⇒ Object



28
29
30
# File 'lib/ripper/ruby_builder/events/literal.rb', line 28

def on_dot2(left, right)
  Ruby::Range.new(left, pop_token(:'@..'), right)
end

#on_dot3(left, right) ⇒ Object



32
33
34
# File 'lib/ripper/ruby_builder/events/literal.rb', line 32

def on_dot3(left, right)
  Ruby::Range.new(left, pop_token(:'@...'), right)
end

#on_float(token) ⇒ Object



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

def on_float(token)
  push
  Ruby::Float.new(token, position, prolog)
end

#on_int(token) ⇒ Object



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

def on_int(token)
  push
  Ruby::Integer.new(token, position, prolog)
end

#on_kw(token) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/ripper/ruby_builder/events/literal.rb', line 9

def on_kw(token)
  if @@tokens.include?(token)
    push(super) # these aren't passed to the next parser event, so we need them on the stack
  else
    push(super)
    build_keyword(pop_token(:"@#{token}"))
  end
end

#on_label(label) ⇒ Object



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

def on_label(label)
  push
  Ruby::Label.new(label, position, prolog)
end