Module: Kapusta

Defined in:
lib/kapusta.rb,
lib/kapusta/ast.rb,
lib/kapusta/cli.rb,
lib/kapusta/env.rb,
lib/kapusta/reader.rb,
lib/kapusta/support.rb,
lib/kapusta/version.rb,
lib/kapusta/compiler.rb,
lib/kapusta/formatter.rb,
lib/kapusta/compiler/emitter.rb,
lib/kapusta/compiler/runtime.rb,
lib/kapusta/compiler/normalizer.rb,
lib/kapusta/compiler/emitter/interop.rb,
lib/kapusta/compiler/emitter/support.rb,
lib/kapusta/compiler/emitter/bindings.rb,
lib/kapusta/compiler/emitter/patterns.rb,
lib/kapusta/compiler/emitter/collections.rb,
lib/kapusta/compiler/emitter/expressions.rb,
lib/kapusta/compiler/emitter/control_flow.rb

Defined Under Namespace

Modules: Compiler Classes: CLI, Comment, Env, Formatter, HashLit, List, Reader, Sym, Vec

Constant Summary collapse

VERSION =
'0.1.1'

Class Method Summary collapse

Class Method Details

.compile(source, path: '(eval)', **_opts) ⇒ Object



20
21
22
# File 'lib/kapusta.rb', line 20

def self.compile(source, path: '(eval)', **_opts)
  Compiler.compile(source, path:)
end

.dofile(path, **_opts) ⇒ Object



15
16
17
18
# File 'lib/kapusta.rb', line 15

def self.dofile(path, **_opts)
  source = File.read(path)
  self.eval(source, path:)
end

.eval(source, path: '(eval)', **_opts) ⇒ Object



11
12
13
# File 'lib/kapusta.rb', line 11

def self.eval(source, path: '(eval)', **_opts)
  Compiler.run(source, path:)
end

.install!Object



24
25
26
27
28
29
# File 'lib/kapusta.rb', line 24

def self.install!
  @install ||= begin
    require 'rubygems'
    true
  end
end

.kebab_to_snake(name) ⇒ Object



4
5
6
# File 'lib/kapusta/support.rb', line 4

def self.kebab_to_snake(name)
  name.tr('-', '_')
end