class Racc::LocationPointer
规则及其 RHS 中的位置的集合。请注意,指针的数量多于规则的 RHS 数组,因为指针指向归约时最后一个符号的右边缘。
属性
dereference[R]
hash[R]
ident[R]
index[R]
reduce[R]
reduce?[R]
rule[R]
symbol[R]
公共类方法
new(rule, i, sym) 点击以切换源代码
# File racc-1.8.1/lib/racc/grammar.rb, line 891 def initialize(rule, i, sym) @rule = rule @index = i @symbol = sym @ident = @rule.hash + i @reduce = sym.nil? end
公共实例方法
before(len) 点击以切换源代码
# File racc-1.8.1/lib/racc/grammar.rb, line 933 def before(len) @rule.ptrs[@index - len] or ptr_bug! end
eql?(ot) 点击以切换源代码
# File racc-1.8.1/lib/racc/grammar.rb, line 917 def eql?(ot) @hash == ot.hash end
也别名为: ==
head?() 点击以切换源代码
# File racc-1.8.1/lib/racc/grammar.rb, line 923 def head? @index == 0 end
next() 点击以切换源代码
# File racc-1.8.1/lib/racc/grammar.rb, line 927 def next @rule.ptrs[@index + 1] or ptr_bug! end
也别名为: increment
to_s() 点击以切换源代码
# File racc-1.8.1/lib/racc/grammar.rb, line 910 def to_s sprintf('(%d,%d %s)', @rule.ident, @index, (reduce?() ? '#' : @symbol.to_s)) end
也别名为: inspect
私有实例方法
ptr_bug!() 点击以切换源代码
# File racc-1.8.1/lib/racc/grammar.rb, line 939 def ptr_bug! raise "racc: fatal: pointer not exist: self: #{to_s}" end