Class: Racc::LocationPointer
Overview
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.
Instance Attribute Summary collapse
-
#ident ⇒ Object
(also: #hash)
readonly
Returns the value of attribute ident.
-
#index ⇒ Object
readonly
Returns the value of attribute index.
-
#reduce ⇒ Object
(also: #reduce?)
readonly
Returns the value of attribute reduce.
-
#rule ⇒ Object
readonly
Returns the value of attribute rule.
-
#symbol ⇒ Object
(also: #dereference)
readonly
Returns the value of attribute symbol.
Instance Method Summary collapse
- #before(len) ⇒ Object
- #eql?(ot) ⇒ Boolean (also: #==)
- #head? ⇒ Boolean
-
#initialize(rule, i, sym) ⇒ LocationPointer
constructor
A new instance of LocationPointer.
- #next ⇒ Object (also: #increment)
- #to_s ⇒ Object (also: #inspect)
Constructor Details
#initialize(rule, i, sym) ⇒ LocationPointer
Returns a new instance of LocationPointer.
891 892 893 894 895 896 897 |
# File '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 |
Instance Attribute Details
#ident ⇒ Object (readonly) Also known as: hash
Returns the value of attribute ident.
905 906 907 |
# File 'lib/racc/grammar.rb', line 905 def ident @ident end |
#index ⇒ Object (readonly)
Returns the value of attribute index.
900 901 902 |
# File 'lib/racc/grammar.rb', line 900 def index @index end |
#reduce ⇒ Object (readonly) Also known as: reduce?
Returns the value of attribute reduce.
907 908 909 |
# File 'lib/racc/grammar.rb', line 907 def reduce @reduce end |
#rule ⇒ Object (readonly)
Returns the value of attribute rule.
899 900 901 |
# File 'lib/racc/grammar.rb', line 899 def rule @rule end |
#symbol ⇒ Object (readonly) Also known as: dereference
Returns the value of attribute symbol.
901 902 903 |
# File 'lib/racc/grammar.rb', line 901 def symbol @symbol end |
Instance Method Details
#before(len) ⇒ Object
933 934 935 |
# File 'lib/racc/grammar.rb', line 933 def before(len) @rule.ptrs[@index - len] or ptr_bug! end |
#eql?(ot) ⇒ Boolean Also known as: ==
917 918 919 |
# File 'lib/racc/grammar.rb', line 917 def eql?(ot) @hash == ot.hash end |
#head? ⇒ Boolean
923 924 925 |
# File 'lib/racc/grammar.rb', line 923 def head? @index == 0 end |
#next ⇒ Object Also known as: increment
927 928 929 |
# File 'lib/racc/grammar.rb', line 927 def next @rule.ptrs[@index + 1] or ptr_bug! end |
#to_s ⇒ Object Also known as: inspect
910 911 912 913 |
# File 'lib/racc/grammar.rb', line 910 def to_s sprintf('(%d,%d %s)', @rule.ident, @index, (reduce?() ? '#' : @symbol.to_s)) end |