class Ameba::AST::Branchable
- Ameba::AST::Branchable
 - Reference
 - Object
 
Overview
A generic entity to represent a branchable Crystal node.
For example, Crystal::If, Crystal::Unless, Crystal::While
are branchables.
white a > 100 # Branchable A
  if b > 2    # Branchable B
    a += 1
  end
end
  Included Modules
Defined in:
ameba/ast/branchable.crConstructors
- 
        .new(node : Crystal::ASTNode, parent : Nil | Ameba::AST::Branchable = nil)
        
          
Creates a new branchable
 
Instance Method Summary
- #branches : Array(Crystal::ASTNode)
 - #end_location(*args, **options)
 - #end_location(*args, **options, &)
 - #location(*args, **options)
 - #location(*args, **options, &)
 - 
        #loop?
        
          
Returns true if this node or one of the parent branchables is a loop, false otherwise.
 - 
        #node : Crystal::ASTNode
        
          
The actual Crystal node.
 - 
        #parent : Branchable | Nil
        
          
Parent branchable (if any)
 - #to_s(*args, **options)
 - #to_s(*args, **options, &)
 
Instance methods inherited from module Ameba::AST::Util
  
  
    
      abort?(node)
    abort?, 
    
  
    
      control_exp_code(node : Crystal::ControlExpression, code_lines)
    control_exp_code, 
    
  
    
      exit?(node)
    exit?, 
    
  
    
      flow_command?(node, in_loop)
    flow_command?, 
    
  
    
      flow_expression?(node, in_loop = false)
    flow_expression?, 
    
  
    
      literal?(node)
    literal?, 
    
  
    
      loop?(node)
    loop?, 
    
  
    
      name_end_location(node)
    name_end_location, 
    
  
    
      name_location(node)
    name_location, 
    
  
    
      name_size(node)
    name_size, 
    
  
    
      node_source(node, code_lines)
    node_source, 
    
  
    
      raise?(node)
    raise?, 
    
  
    
      source_between(loc, end_loc, code_lines) : String | Nil
    source_between
    
  
    
    
  
    
    
    
  
    
    
    
  
Constructor Detail
Creates a new branchable
Branchable.new(node, parent_branchable)