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.
605 606 607 608 609 610 611 612 613 614 615 616 617 618 |
# File 'lib/racc/grammar.rb', line 605 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.
622 623 624 |
# File 'lib/racc/grammar.rb', line 622 def action @action end |
#hash ⇒ Object
Returns the value of attribute hash.
640 641 642 |
# File 'lib/racc/grammar.rb', line 640 def hash @hash end |
#ident ⇒ Object
Returns the value of attribute ident.
638 639 640 |
# File 'lib/racc/grammar.rb', line 638 def ident @ident end |
#ptrs ⇒ Object (readonly)
Returns the value of attribute ptrs.
641 642 643 |
# File 'lib/racc/grammar.rb', line 641 def ptrs @ptrs end |
#specified_prec ⇒ Object
Returns the value of attribute specified_prec.
672 673 674 |
# File 'lib/racc/grammar.rb', line 672 def specified_prec @specified_prec end |
#symbols ⇒ Object (readonly)
Returns the value of attribute symbols.
621 622 623 |
# File 'lib/racc/grammar.rb', line 621 def symbols @symbols end |
#target ⇒ Object
Returns the value of attribute target.
620 621 622 |
# File 'lib/racc/grammar.rb', line 620 def target @target end |
Instance Method Details
#==(other) ⇒ Object
684 685 686 |
# File 'lib/racc/grammar.rb', line 684 def ==(other) other.kind_of?(Rule) and @ident == other.ident end |
#[](idx) ⇒ Object
688 689 690 |
# File 'lib/racc/grammar.rb', line 688 def [](idx) @symbols[idx] end |
#accept? ⇒ Boolean
704 705 706 707 708 709 710 |
# File 'lib/racc/grammar.rb', line 704 def accept? if tok = @symbols[-1] tok.anchor? else false end end |
#each(&block) ⇒ Object
712 713 714 |
# File 'lib/racc/grammar.rb', line 712 def each(&block) @symbols.each(&block) end |
#each_rule {|_self| ... } ⇒ Object
633 634 635 636 |
# File 'lib/racc/grammar.rb', line 633 def each_rule(&block) yield self @alternatives.each(&block) end |
#empty? ⇒ Boolean
696 697 698 |
# File 'lib/racc/grammar.rb', line 696 def empty? @symbols.empty? end |
#inspect ⇒ Object
680 681 682 |
# File 'lib/racc/grammar.rb', line 680 def inspect "#<Racc::Rule id=#{@ident} (#{@target})>" end |
#null=(n) ⇒ Object
675 |
# File 'lib/racc/grammar.rb', line 675 def null=(n) @null = n end |
#nullable? ⇒ Boolean
674 |
# File 'lib/racc/grammar.rb', line 674 def nullable?() @null end |
#prec(sym, &block) ⇒ Object
661 662 663 664 665 666 667 668 669 670 |
# File 'lib/racc/grammar.rb', line 661 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
653 654 655 |
# File 'lib/racc/grammar.rb', line 653 def precedence @specified_prec || @precedence end |
#precedence=(sym) ⇒ Object
657 658 659 |
# File 'lib/racc/grammar.rb', line 657 def precedence=(sym) @precedence ||= sym end |
#replace(src, dest) ⇒ Object
716 717 718 719 |
# File 'lib/racc/grammar.rb', line 716 def replace(src, dest) @target = dest @symbols = @symbols.map {|s| s == src ? dest : s } end |
#rule ⇒ Object
629 630 631 |
# File 'lib/racc/grammar.rb', line 629 def rule self end |
#size ⇒ Object
692 693 694 |
# File 'lib/racc/grammar.rb', line 692 def size @symbols.size end |
#to_s ⇒ Object
700 701 702 |
# File 'lib/racc/grammar.rb', line 700 def to_s "#<rule#{@ident}>" end |
#useless=(u) ⇒ Object
678 |
# File 'lib/racc/grammar.rb', line 678 def useless=(u) @useless = u end |
#useless? ⇒ Boolean
677 |
# File 'lib/racc/grammar.rb', line 677 def useless?() @useless end |
#|(x) ⇒ Object
624 625 626 627 |
# File 'lib/racc/grammar.rb', line 624 def |(x) @alternatives.push x.rule self end |