In Files

  • ruby-3.1.2/lib/racc/grammar.rb

Files

Class/Module Index [+]

Quicksearch

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

dereference[R]
hash[R]
ident[R]
index[R]
reduce[R]
reduce?[R]
rule[R]
symbol[R]

Public Class Methods

new(rule, i, sym) click to toggle source
 
               # File ruby-3.1.2/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

==(ot) click to toggle source
Alias for: eql?
before(len) click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 856
def before(len)
  @rule.ptrs[@index - len] or ptr_bug!
end
            
eql?(ot) click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 840
def eql?(ot)
  @hash == ot.hash
end
            
Also aliased as: ==
head?() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 846
def head?
  @index == 0
end
            
increment() click to toggle source
Alias for: next
inspect() click to toggle source
Alias for: to_s
next() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 850
def next
  @rule.ptrs[@index + 1] or ptr_bug!
end
            
Also aliased as: increment
to_s() click to toggle source
 
               # File ruby-3.1.2/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

Private Instance Methods

ptr_bug!() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 862
def ptr_bug!
  raise "racc: fatal: pointer not exist: self: #{to_s}"
end