Module: RubyModKit::Node

Defined in:
lib/ruby_mod_kit/node.rb,
lib/ruby_mod_kit/node/wrap.rb,
lib/ruby_mod_kit/node/def_node.rb,
lib/ruby_mod_kit/node/base_node.rb,
lib/ruby_mod_kit/node/call_node.rb,
lib/ruby_mod_kit/node/begin_node.rb,
lib/ruby_mod_kit/node/symbol_node.rb,
lib/ruby_mod_kit/node/program_node.rb,
lib/ruby_mod_kit/node/untyped_node.rb,
lib/ruby_mod_kit/node/parameter_node.rb,
lib/ruby_mod_kit/node/def_parent_node.rb,
lib/ruby_mod_kit/node/statements_node.rb

Overview

The namespace of transpile node.

Defined Under Namespace

Classes: BaseNode, BeginNode, CallNode, DefNode, DefParentNode, ParameterNode, ProgramNode, StatementsNode, SymbolNode, UntypedNode

Class Method Summary collapse

Class Method Details

.wrap(prism_node, parent:, prev: nil) ⇒ Node::BaseNode

Parameters:

Returns:

rbs:

  • prism_node: Prism::Node

  • parent: Node::BaseNode

  • prev: Node::BaseNode | nil

  • return: Node::BaseNode



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/ruby_mod_kit/node/wrap.rb', line 25

def wrap(prism_node, parent:, prev: nil)
  case prism_node
  when Prism::BeginNode
    Node::BeginNode.new(prism_node, parent: parent, prev: prev)
  when Prism::CallNode
    Node::CallNode.new(prism_node, parent: parent, prev: prev)
  when Prism::DefNode
    Node::DefNode.new(prism_node, parent: parent, prev: prev)
  when Prism::ClassNode, Prism::ModuleNode
    Node::DefParentNode.new(prism_node, parent: parent, prev: prev)
  when Prism::RequiredParameterNode, Prism::OptionalKeywordParameterNode,
      Prism::OptionalParameterNode, Prism::RequiredKeywordParameterNode,
      Prism::RestParameterNode, Prism::BlockParameterNode
    Node::ParameterNode.new(prism_node, parent: parent, prev: prev)
  when Prism::StatementsNode
    Node::StatementsNode.new(prism_node, parent: parent, prev: prev)
  when Prism::SymbolNode
    Node::SymbolNode.new(prism_node, parent: parent, prev: prev)
  else
    Node::UntypedNode.new(prism_node, parent: parent, prev: prev)
  end
end