Class: Parser::MaxNumparamStack

Inherits:
Object
  • Object
show all
Defined in:
lib/parser/max_numparam_stack.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMaxNumparamStack

Returns a new instance of MaxNumparamStack.



8
9
10
# File 'lib/parser/max_numparam_stack.rb', line 8

def initialize
  @stack = []
end

Instance Attribute Details

#stackObject (readonly)



6
7
8
# File 'lib/parser/max_numparam_stack.rb', line 6

def stack
  @stack
end

Instance Method Details

#has_numparams?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/parser/max_numparam_stack.rb', line 20

def has_numparams?
  top && top > 0
end

#has_ordinary_params!Object



12
13
14
# File 'lib/parser/max_numparam_stack.rb', line 12

def has_ordinary_params!
  set(-1)
end

#has_ordinary_params?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/parser/max_numparam_stack.rb', line 16

def has_ordinary_params?
  top < 0
end

#popObject



36
37
38
# File 'lib/parser/max_numparam_stack.rb', line 36

def pop
  @stack.pop
end

#pushObject



32
33
34
# File 'lib/parser/max_numparam_stack.rb', line 32

def push
  @stack.push(0)
end

#register(numparam) ⇒ Object



24
25
26
# File 'lib/parser/max_numparam_stack.rb', line 24

def register(numparam)
  set( [top, numparam].max )
end

#topObject



28
29
30
# File 'lib/parser/max_numparam_stack.rb', line 28

def top
  @stack.last
end