class Parser::Lexer::StackState
Public Class Methods
new(name)
click to toggle source
# File lib/parser/lexer/stack_state.rb, line 4 def initialize(name) @name = name.freeze clear end
Public Instance Methods
active?()
click to toggle source
# File lib/parser/lexer/stack_state.rb, line 31 def active? @stack[0] == 1 end
clear()
click to toggle source
# File lib/parser/lexer/stack_state.rb, line 9 def clear @stack = 0 end
lexpop()
click to toggle source
# File lib/parser/lexer/stack_state.rb, line 27 def lexpop push(pop || pop) end
pop()
click to toggle source
# File lib/parser/lexer/stack_state.rb, line 20 def pop bit_value = @stack & 1 @stack >>= 1 bit_value == 1 end
push(bit)
click to toggle source
# File lib/parser/lexer/stack_state.rb, line 13 def push(bit) bit_value = bit ? 1 : 0 @stack = (@stack << 1) | bit_value bit end
to_s()
click to toggle source
# File lib/parser/lexer/stack_state.rb, line 35 def to_s "[#{@stack.to_s(2)} <= #{@name}]" end
Also aliased as: inspect