Class: Racc::Rule
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
-
#hash ⇒ Object
Returns the value of attribute hash.
-
#ident ⇒ Object
Returns the value of attribute ident.
-
#ptrs ⇒ Object
readonly
Returns the value of attribute ptrs.
-
#specified_prec ⇒ Object
Returns the value of attribute specified_prec.
-
#symbols ⇒ Object
readonly
Returns the value of attribute symbols.
-
#target ⇒ Object
Returns the value of attribute target.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #[](idx) ⇒ Object
- #accept? ⇒ Boolean
- #each(&block) ⇒ Object
- #each_rule {|_self| ... } ⇒ Object
- #empty? ⇒ Boolean
-
#initialize(target, syms, act) ⇒ Rule
constructor
A new instance of Rule.
- #inspect ⇒ Object
- #null=(n) ⇒ Object
- #nullable? ⇒ Boolean
- #prec(sym, &block) ⇒ Object
- #precedence ⇒ Object
- #precedence=(sym) ⇒ Object
- #replace(src, dest) ⇒ Object
- #rule ⇒ Object
- #size ⇒ Object
- #to_s ⇒ Object
- #useless=(u) ⇒ Object
- #useless? ⇒ Boolean
- #|(x) ⇒ Object
Constructor Details
#initialize(target, syms, act) ⇒ Rule
Returns a new instance of Rule.
603 604 605 606 607 608 609 610 611 612 613 614 615 616 |
# File 'lib/racc/grammar.rb', line 603 def initialize(target, syms, act) @target = target @symbols = syms @action = act @alternatives = [] @ident = nil @hash = nil @ptrs = nil @precedence = nil @specified_prec = nil @null = nil @useless = nil end |
Instance Attribute Details
#action ⇒ Object (readonly)
Returns the value of attribute action.
620 621 622 |
# File 'lib/racc/grammar.rb', line 620 def action @action end |
#hash ⇒ Object
Returns the value of attribute hash.
638 639 640 |
# File 'lib/racc/grammar.rb', line 638 def hash @hash end |
#ident ⇒ Object
Returns the value of attribute ident.
636 637 638 |
# File 'lib/racc/grammar.rb', line 636 def ident @ident end |
#ptrs ⇒ Object (readonly)
Returns the value of attribute ptrs.
639 640 641 |
# File 'lib/racc/grammar.rb', line 639 def ptrs @ptrs end |
#specified_prec ⇒ Object
Returns the value of attribute specified_prec.
670 671 672 |
# File 'lib/racc/grammar.rb', line 670 def specified_prec @specified_prec end |
#symbols ⇒ Object (readonly)
Returns the value of attribute symbols.
619 620 621 |
# File 'lib/racc/grammar.rb', line 619 def symbols @symbols end |
#target ⇒ Object
Returns the value of attribute target.
618 619 620 |
# File 'lib/racc/grammar.rb', line 618 def target @target end |
Instance Method Details
#==(other) ⇒ Object
682 683 684 |
# File 'lib/racc/grammar.rb', line 682 def ==(other) other.kind_of?(Rule) and @ident == other.ident end |
#[](idx) ⇒ Object
686 687 688 |
# File 'lib/racc/grammar.rb', line 686 def [](idx) @symbols[idx] end |
#accept? ⇒ Boolean
702 703 704 705 706 707 708 |
# File 'lib/racc/grammar.rb', line 702 def accept? if tok = @symbols[-1] tok.anchor? else false end end |
#each(&block) ⇒ Object
710 711 712 |
# File 'lib/racc/grammar.rb', line 710 def each(&block) @symbols.each(&block) end |
#each_rule {|_self| ... } ⇒ Object
631 632 633 634 |
# File 'lib/racc/grammar.rb', line 631 def each_rule(&block) yield self @alternatives.each(&block) end |
#empty? ⇒ Boolean
694 695 696 |
# File 'lib/racc/grammar.rb', line 694 def empty? @symbols.empty? end |
#inspect ⇒ Object
678 679 680 |
# File 'lib/racc/grammar.rb', line 678 def inspect "#<Racc::Rule id=#{@ident} (#{@target})>" end |
#null=(n) ⇒ Object
673 |
# File 'lib/racc/grammar.rb', line 673 def null=(n) @null = n end |
#nullable? ⇒ Boolean
672 |
# File 'lib/racc/grammar.rb', line 672 def nullable?() @null end |
#prec(sym, &block) ⇒ Object
659 660 661 662 663 664 665 666 667 668 |
# File 'lib/racc/grammar.rb', line 659 def prec(sym, &block) @specified_prec = sym if block unless @action.empty? raise CompileError, 'both of rule action block and prec block given' end @action = UserAction.proc(block) end self end |
#precedence ⇒ Object
651 652 653 |
# File 'lib/racc/grammar.rb', line 651 def precedence @specified_prec || @precedence end |
#precedence=(sym) ⇒ Object
655 656 657 |
# File 'lib/racc/grammar.rb', line 655 def precedence=(sym) @precedence ||= sym end |
#replace(src, dest) ⇒ Object
714 715 716 717 |
# File 'lib/racc/grammar.rb', line 714 def replace(src, dest) @target = dest @symbols = @symbols.map {|s| s == src ? dest : s } end |
#rule ⇒ Object
627 628 629 |
# File 'lib/racc/grammar.rb', line 627 def rule self end |
#size ⇒ Object
690 691 692 |
# File 'lib/racc/grammar.rb', line 690 def size @symbols.size end |
#to_s ⇒ Object
698 699 700 |
# File 'lib/racc/grammar.rb', line 698 def to_s "#<rule#{@ident}>" end |
#useless=(u) ⇒ Object
676 |
# File 'lib/racc/grammar.rb', line 676 def useless=(u) @useless = u end |
#useless? ⇒ Boolean
675 |
# File 'lib/racc/grammar.rb', line 675 def useless?() @useless end |
#|(x) ⇒ Object
622 623 624 625 |
# File 'lib/racc/grammar.rb', line 622 def |(x) @alternatives.push x.rule self end |