1 # coding: utf-8
2 # frozen_string_literal: true
3
4
5
6 module Umu
7
8 module Value
9
10 module Core
11
12 class Class < Top
13 attr_reader :class_signat
14
15
16 def initialize(class_signat)
17 ASSERT.kind_of class_signat, ECTSC::Base
18
19 super()
20
21 @class_signat = class_signat
22 end
23
24
25 def to_s
26 format "&%s", self.class_signat.to_sym
27 end
28
29
30 private
31
32 def __invoke__(meth_sym, loc, env, event, arg_values)
33 ASSERT.kind_of meth_sym, ::Symbol
34 ASSERT.kind_of loc, LOC::Entry
35 ASSERT.kind_of env, E::Entry
36 ASSERT.kind_of event, E::Tracer::Event
37 ASSERT.kind_of arg_values, ::Array
38
39 self.class_signat.klass.send meth_sym, loc, env, event, *arg_values
40 end
41 end
42
43
44 module_function
45
46 def make_class(class_signat)
47 ASSERT.kind_of class_signat, ECTSC::Base
48
49 Class.new(class_signat).freeze
50 end
51
52 end # Umu::Core
53
54 end # Umu::Value
55
56 end # Umu