Class: KPeg::RuleReference
Instance Attribute Summary collapse
-
#rule_name ⇒ Object
readonly
Returns the value of attribute rule_name.
Attributes inherited from Operator
Instance Method Summary collapse
- #==(obj) ⇒ Object
-
#initialize(name, grammar = nil) ⇒ RuleReference
constructor
A new instance of RuleReference.
- #inspect ⇒ Object
- #match(x) ⇒ Object
Methods inherited from Operator
#detect_tags, #inspect_type, #prune_values, #set_action, #|
Constructor Details
#initialize(name, grammar = nil) ⇒ RuleReference
Returns a new instance of RuleReference.
399 400 401 402 403 |
# File 'lib/kpeg/grammar.rb', line 399 def initialize(name, grammar=nil) super() @rule_name = name @grammar = grammar end |
Instance Attribute Details
#rule_name ⇒ Object (readonly)
Returns the value of attribute rule_name.
405 406 407 |
# File 'lib/kpeg/grammar.rb', line 405 def rule_name @rule_name end |
Instance Method Details
#==(obj) ⇒ Object
421 422 423 424 425 426 427 428 |
# File 'lib/kpeg/grammar.rb', line 421 def ==(obj) case obj when RuleReference @rule_name == obj.rule_name else super end end |
#inspect ⇒ Object
430 431 432 |
# File 'lib/kpeg/grammar.rb', line 430 def inspect inspect_type "ref", @rule_name end |
#match(x) ⇒ Object
407 408 409 410 411 412 413 414 415 416 417 418 419 |
# File 'lib/kpeg/grammar.rb', line 407 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 |