Class: Yoda::Typing::Tree::Base Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/yoda/typing/tree/base.rb

Overview

This class is abstract.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(node:, context:, parent: nil) ⇒ Base

Returns a new instance of Base.

Parameters:

  • node (::AST::Node)
  • context (BaseContext)
  • parent (Base, nil) (defaults to: nil)


15
16
17
18
19
# File 'lib/yoda/typing/tree/base.rb', line 15

def initialize(node:, context:, parent: nil)
  @node = node
  @context = context
  @parent = parent
end

Instance Attribute Details

#contextBaseContext (readonly)

Returns:

  • (BaseContext)


10
11
12
# File 'lib/yoda/typing/tree/base.rb', line 10

def context
  @context
end

#node::AST::Node (readonly)

Returns:

  • (::AST::Node)


7
8
9
# File 'lib/yoda/typing/tree/base.rb', line 7

def node
  @node
end

Instance Method Details

#build_child(node, context: nil) ⇒ Base

Parameters:

  • node (::AST::Node)

Returns:



40
41
42
# File 'lib/yoda/typing/tree/base.rb', line 40

def build_child(node, context: nil)
  Tree.build(node, context: context, parent: self)
end

#childrenArray<Base>

This method is abstract.

Returns:



23
24
25
# File 'lib/yoda/typing/tree/base.rb', line 23

def children
  fail NotImplementedError
end

#generatorTypes::Generator

Returns:



34
35
36
# File 'lib/yoda/typing/tree/base.rb', line 34

def generator
  @generator ||= Types::Generator.new(context.registry)
end

#typeTypes::Base

This method is abstract.

Returns:



29
30
31
# File 'lib/yoda/typing/tree/base.rb', line 29

def type
  fail NotImplementedError
end