Class: Atomy::Code::Pattern::QuasiQuote

Inherits:
Atomy::Code::Pattern show all
Defined in:
lib/atomy/code/pattern/quasi_quote.rb

Defined Under Namespace

Classes: AssignWalker, Constructor, Walker

Instance Attribute Summary

Attributes inherited from Atomy::Code::Pattern

#node

Instance Method Summary collapse

Methods inherited from Atomy::Code::Pattern

#splat?

Constructor Details

#initialize(node, mod) ⇒ QuasiQuote



8
9
10
11
# File 'lib/atomy/code/pattern/quasi_quote.rb', line 8

def initialize(node, mod)
  constructor = Constructor.new(mod)
  @pattern = constructor.go(node)
end

Instance Method Details

#assign(gen) ⇒ Object



22
23
24
# File 'lib/atomy/code/pattern/quasi_quote.rb', line 22

def assign(gen)
  AssignWalker.new(gen).go(@pattern.node)
end

#bytecode(gen, mod) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/atomy/code/pattern/quasi_quote.rb', line 13

def bytecode(gen, mod)
  gen.push_cpath_top
  gen.find_const(:Atomy)
  gen.find_const(:Pattern)
  gen.find_const(:QuasiQuote)
  mod.compile(gen, @pattern)
  gen.send(:new, 1)
end