Sha256: 1f761cf4867551118e9e8b95f60abbd723caa63cac2a607be54d35f61ccc9f09
Contents?: true
Size: 719 Bytes
Versions: 9
Compression:
Stored size: 719 Bytes
Contents
module Finitio module Syntax module TypeDef include Node capture :type capture :type_name capture :vars 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 def to_ast [:type_def, type_name, type.to_ast] end end # module TypeDef end # module Syntax end # module Finitio
Version data entries
9 entries across 9 versions & 1 rubygems