Module: Finitio::Syntax::TypeDef
- Includes:
- Node
- Defined in:
- lib/finitio/syntax/type/type_def.rb
Instance Method Summary
collapse
Methods included from Node
included, #metadata, #resolve_ruby_const, #unique_names!
Instance Method Details
#compile(system) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/finitio/syntax/type/type_def.rb', line 10
def compile(system)
if vars
vs = vars.compile(system)
overrides = Hash[vs.map{|v|
[ v.to_s, ProxyType.new(v) ]
}]
t = type.compile(system.with_scope(overrides))
t = HighOrderType.new(vs, t)
else
t = type.compile(system)
end
n = type_name && type_name.to_str
m = metadata
system.add_type(t, n, m)
t
end
|
#to_ast ⇒ Object
27
28
29
|
# File 'lib/finitio/syntax/type/type_def.rb', line 27
def to_ast
[:type_def, type_name, type.to_ast]
end
|