Class: Parser::MaxNumparamStack
- Inherits:
-
Object
- Object
- Parser::MaxNumparamStack
- Defined in:
- lib/parser/max_numparam_stack.rb
Instance Attribute Summary collapse
- #stack ⇒ Object readonly
Instance Method Summary collapse
- #has_numparams? ⇒ Boolean
- #has_ordinary_params! ⇒ Object
- #has_ordinary_params? ⇒ Boolean
-
#initialize ⇒ MaxNumparamStack
constructor
A new instance of MaxNumparamStack.
- #pop ⇒ Object
- #push ⇒ Object
- #register(numparam) ⇒ Object
- #top ⇒ Object
Constructor Details
#initialize ⇒ MaxNumparamStack
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
#stack ⇒ Object (readonly)
6 7 8 |
# File 'lib/parser/max_numparam_stack.rb', line 6 def stack @stack end |
Instance Method Details
#has_numparams? ⇒ 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
16 17 18 |
# File 'lib/parser/max_numparam_stack.rb', line 16 def has_ordinary_params? top < 0 end |
#pop ⇒ Object
36 37 38 |
# File 'lib/parser/max_numparam_stack.rb', line 36 def pop @stack.pop end |
#push ⇒ Object
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 |
#top ⇒ Object
28 29 30 |
# File 'lib/parser/max_numparam_stack.rb', line 28 def top @stack.last end |