Module: Finitio::Syntax::System

Includes:
Node
Defined in:
lib/finitio/syntax/system.rb

Instance Method Summary collapse

Methods included from Node

included, #metadata, #resolve_ruby_const, #unique_names!

Instance Method Details

#compile(system) ⇒ Object



8
9
10
11
12
13
# File 'lib/finitio/syntax/system.rb', line 8

def compile(system)
  imports.compile(system) if imports
  definitions.compile(system)
  main_type.compile(system) if main_type
  system
end

#to_astObject



15
16
17
18
19
20
21
22
# File 'lib/finitio/syntax/system.rb', line 15

def to_ast
  ast = [ :system ]
  imports_ast = imports.to_ast
  ast << imports_ast unless imports_ast.size == 1
  ast += definitions.to_ast
  ast << main_type.to_ast if main_type
  ast
end