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.
610 611 612 613 614 615 616 617 618 619 620 621 622 623 |
# File 'lib/racc/grammar.rb', line 610 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.
627 628 629 |
# File 'lib/racc/grammar.rb', line 627 def action @action end |
#hash ⇒ Object
Returns the value of attribute hash.
645 646 647 |
# File 'lib/racc/grammar.rb', line 645 def hash @hash end |
#ident ⇒ Object
Returns the value of attribute ident.
643 644 645 |
# File 'lib/racc/grammar.rb', line 643 def ident @ident end |
#ptrs ⇒ Object (readonly)
Returns the value of attribute ptrs.
646 647 648 |
# File 'lib/racc/grammar.rb', line 646 def ptrs @ptrs end |
#specified_prec ⇒ Object
Returns the value of attribute specified_prec.
677 678 679 |
# File 'lib/racc/grammar.rb', line 677 def specified_prec @specified_prec end |
#symbols ⇒ Object (readonly)
Returns the value of attribute symbols.
626 627 628 |
# File 'lib/racc/grammar.rb', line 626 def symbols @symbols end |
#target ⇒ Object
Returns the value of attribute target.
625 626 627 |
# File 'lib/racc/grammar.rb', line 625 def target @target end |
Instance Method Details
#==(other) ⇒ Object
689 690 691 |
# File 'lib/racc/grammar.rb', line 689 def ==(other) other.kind_of?(Rule) and @ident == other.ident end |
#[](idx) ⇒ Object
693 694 695 |
# File 'lib/racc/grammar.rb', line 693 def [](idx) @symbols[idx] end |
#accept? ⇒ Boolean
709 710 711 712 713 714 715 |
# File 'lib/racc/grammar.rb', line 709 def accept? if tok = @symbols[-1] tok.anchor? else false end end |
#each(&block) ⇒ Object
717 718 719 |
# File 'lib/racc/grammar.rb', line 717 def each(&block) @symbols.each(&block) end |
#each_rule {|_self| ... } ⇒ Object
638 639 640 641 |
# File 'lib/racc/grammar.rb', line 638 def each_rule(&block) yield self @alternatives.each(&block) end |
#empty? ⇒ Boolean
701 702 703 |
# File 'lib/racc/grammar.rb', line 701 def empty? @symbols.empty? end |
#inspect ⇒ Object
685 686 687 |
# File 'lib/racc/grammar.rb', line 685 def inspect "#<Racc::Rule id=#{@ident} (#{@target})>" end |
#null=(n) ⇒ Object
680 |
# File 'lib/racc/grammar.rb', line 680 def null=(n) @null = n end |
#nullable? ⇒ Boolean
679 |
# File 'lib/racc/grammar.rb', line 679 def nullable?() @null end |
#prec(sym, &block) ⇒ Object
666 667 668 669 670 671 672 673 674 675 |
# File 'lib/racc/grammar.rb', line 666 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
658 659 660 |
# File 'lib/racc/grammar.rb', line 658 def precedence @specified_prec || @precedence end |
#precedence=(sym) ⇒ Object
662 663 664 |
# File 'lib/racc/grammar.rb', line 662 def precedence=(sym) @precedence ||= sym end |
#replace(src, dest) ⇒ Object
721 722 723 724 |
# File 'lib/racc/grammar.rb', line 721 def replace(src, dest) @target = dest @symbols = @symbols.map {|s| s == src ? dest : s } end |
#rule ⇒ Object
634 635 636 |
# File 'lib/racc/grammar.rb', line 634 def rule self end |
#size ⇒ Object
697 698 699 |
# File 'lib/racc/grammar.rb', line 697 def size @symbols.size end |
#to_s ⇒ Object
705 706 707 |
# File 'lib/racc/grammar.rb', line 705 def to_s "#<rule#{@ident}>" end |
#useless=(u) ⇒ Object
683 |
# File 'lib/racc/grammar.rb', line 683 def useless=(u) @useless = u end |
#useless? ⇒ Boolean
682 |
# File 'lib/racc/grammar.rb', line 682 def useless?() @useless end |
#|(x) ⇒ Object
629 630 631 632 |
# File 'lib/racc/grammar.rb', line 629 def |(x) @alternatives.push x.rule self end |