class Racc::LocationPointer

A set of rule and position in it’s RHS. Note that the number of pointers is more than rule’s RHS array, because pointer points right edge of the final symbol when reducing.

Attributes

Public Class Methods

# File lib/racc/grammar.rb, line 814
def initialize(rule, i, sym)
  @rule   = rule
  @index  = i
  @symbol = sym
  @ident  = @rule.hash + i
  @reduce = sym.nil?
end

Public Instance Methods

Alias for: eql?
# File lib/racc/grammar.rb, line 856
def before(len)
  @rule.ptrs[@index - len] or ptr_bug!
end
# File lib/racc/grammar.rb, line 840
def eql?(ot)
  @hash == ot.hash
end
Also aliased as: ==
# File lib/racc/grammar.rb, line 846
def head?
  @index == 0
end
Alias for: next
Alias for: to_s
# File lib/racc/grammar.rb, line 850
def next
  @rule.ptrs[@index + 1] or ptr_bug!
end
Also aliased as: increment
# File lib/racc/grammar.rb, line 833
def to_s
  sprintf('(%d,%d %s)',
          @rule.ident, @index, (reduce?() ? '#' : @symbol.to_s))
end
Also aliased as: inspect