Module: Finitio::Syntax::UnionType

Includes:
Node
Defined in:
lib/finitio/syntax/type/union_type.rb

Instance Method Summary collapse

Methods included from Node

included, #metadata, #resolve_ruby_const, #unique_names!

Instance Method Details

#compile(factory) ⇒ Object



6
7
8
9
# File 'lib/finitio/syntax/type/union_type.rb', line 6

def compile(factory)
  cds = captures[:sub_type].map{|x| x.compile(factory) }
  cds.size == 1 ? cds.first : factory.union(cds)
end

#to_astObject



11
12
13
14
# File 'lib/finitio/syntax/type/union_type.rb', line 11

def to_ast
  cds = captures[:sub_type].map(&:to_ast)
  cds.size == 1 ? cds.first : cds.unshift(:union_type)
end