Class: Kapusta::Compiler::Normalizer

Inherits:
Object
  • Object
show all
Defined in:
lib/kapusta/compiler/normalizer.rb

Instance Method Summary collapse

Instance Method Details

#normalize(form) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/kapusta/compiler/normalizer.rb', line 10

def normalize(form)
  case form
  when List then normalize_list(form)
  when Vec then Vec.new(form.items.map { |item| normalize(item) })
  when HashLit
    HashLit.new(form.pairs.map { |key, value| [normalize_hash_key(key), normalize(value)] })
  else
    form
  end
end

#normalize_all(forms) ⇒ Object



6
7
8
# File 'lib/kapusta/compiler/normalizer.rb', line 6

def normalize_all(forms)
  forms.map { |form| normalize(form) }
end