class KPeg::RuleReference
Attributes
arguments[R]
rule_name[R]
Public Class Methods
new(name, grammar=nil, args=nil)
click to toggle source
Calls superclass method
KPeg::Operator::new
# File lib/kpeg/grammar.rb, line 389 def initialize(name, grammar=nil, args=nil) super() @rule_name = name @grammar = grammar @arguments = args end
Public Instance Methods
==(obj)
click to toggle source
Calls superclass method
# File lib/kpeg/grammar.rb, line 412 def ==(obj) case obj when RuleReference @rule_name == obj.rule_name and @arguments == obj.arguments else super end end
inspect()
click to toggle source
# File lib/kpeg/grammar.rb, line 421 def inspect if @arguments body = "#{@rule_name} #{@arguments}" else body = @rule_name end inspect_type "ref", body end
match(x)
click to toggle source
# File lib/kpeg/grammar.rb, line 398 def match(x) if @grammar and @grammar != x.grammar x.switch_grammar(@grammar) do rule = @grammar.find(@rule_name) raise "Unknown rule: '#{@rule_name}'" unless rule x.apply rule end else rule = x.grammar.find(@rule_name) raise "Unknown rule: '#{@rule_name}'" unless rule x.apply rule end end