Class: Kumi::Support::SNASTPrinter

Inherits:
Object
  • Object
show all
Defined in:
lib/kumi/support/snast_printer.rb

Constant Summary collapse

NAST =
Kumi::Core::NAST

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(verbosity: :default) ⇒ SNASTPrinter

Returns a new instance of SNASTPrinter.



12
13
14
# File 'lib/kumi/support/snast_printer.rb', line 12

def initialize(verbosity: :default)
  @verbosity = verbosity
end

Class Method Details



8
9
10
# File 'lib/kumi/support/snast_printer.rb', line 8

def self.print(snast_module, verbosity: :default)
  new(verbosity: verbosity).print(snast_module)
end

Instance Method Details



16
17
18
19
20
21
22
23
24
25
# File 'lib/kumi/support/snast_printer.rb', line 16

def print(snast_module)
  return "nil" unless snast_module

  output = ["(SNAST"]
  snast_module.decls.each do |_, decl|
    output << format_node(decl, 1)
  end
  output << ")"
  output.join("\n")
end