Method: ANTLR3::AST::Wizard#visit_pattern

Defined in:
lib/antlr3/tree/wizard.rb

#visit_pattern(tree, pattern, &block) ⇒ Object



403
404
405
406
407
408
409
410
411
412
413
414
# File 'lib/antlr3/tree/wizard.rb', line 403

def visit_pattern( tree, pattern, &block )
  pattern = Pattern.parse( pattern, @token_scheme )
  
  if pattern.nil? or pattern.flat_list? or pattern.is_a?( WildcardPattern )
    return( nil )
  end
  
  visit( tree, pattern.type ) do | tree, parent, child_index, labels |
    labels = match!( tree, pattern ) and
      yield( tree, parent, child_index, labels )
  end
end