class Parser::Lexer::StackState
def active?
def active? @stack[0] == 1 end
def clear
def clear @stack = 0 end
def initialize(name)
def initialize(name) @name = name.freeze clear end
def lexpop
def lexpop push(pop || pop) end
def pop
def pop bit_value = @stack & 1 @stack >>= 1 bit_value == 1 end
def push(bit)
def push(bit) bit_value = bit ? 1 : 0 @stack = (@stack << 1) | bit_value bit end
def to_s
def to_s "[#{@stack.to_s(2)} <= #{@name}]" end