class Parser::MaxNumparamStack

Holds p->max_numparam from parse.y

@api private

Constants

ORDINARY_PARAMS

Attributes

stack[R]

Public Class Methods

new() click to toggle source
# File lib/parser/max_numparam_stack.rb, line 12
def initialize
  @stack = []
end

Public Instance Methods

empty?() click to toggle source
# File lib/parser/max_numparam_stack.rb, line 16
def empty?
  @stack.size == 0
end
has_numparams?() click to toggle source
# File lib/parser/max_numparam_stack.rb, line 28
def has_numparams?
  top && top > 0
end
has_ordinary_params!() click to toggle source
# File lib/parser/max_numparam_stack.rb, line 20
def has_ordinary_params!
  set(ORDINARY_PARAMS)
end
has_ordinary_params?() click to toggle source
# File lib/parser/max_numparam_stack.rb, line 24
def has_ordinary_params?
  top == ORDINARY_PARAMS
end
pop() click to toggle source
# File lib/parser/max_numparam_stack.rb, line 44
def pop
  @stack.pop[:value]
end
push(static:) click to toggle source
# File lib/parser/max_numparam_stack.rb, line 40
def push(static:)
  @stack.push(value: 0, static: static)
end
register(numparam) click to toggle source
# File lib/parser/max_numparam_stack.rb, line 32
def register(numparam)
  set( [top, numparam].max )
end
top() click to toggle source
# File lib/parser/max_numparam_stack.rb, line 36
def top
  @stack.last[:value]
end

Private Instance Methods

set(value) click to toggle source
# File lib/parser/max_numparam_stack.rb, line 50
def set(value)
  @stack.last[:value] = value
end