1 # coding: utf-8
2 # frozen_string_literal: true
3
4
5
6 module Umu
7
8 module ConcreteSyntax
9
10 module Core
11
12 module Expression
13
14 module Unary
15
16 class Class < Abstract
17 alias class_sym obj
18
19
20 def initialize(loc, class_sym)
21 ASSERT.kind_of class_sym, ::Symbol
22
23 super
24 end
25
26
27 def to_s
28 format "&%s", self.class_sym
29 end
30
31
32 private
33
34 def __desugar__(_env, _event)
35 ASCE.make_class self.loc, self.class_sym
36 end
37 end
38
39 end # Umu::ConcreteSyntax::Core::Expression::Unary
40
41
42
43 module_function
44
45 def make_class(loc, class_sym)
46 ASSERT.kind_of loc, LOC::Entry
47 ASSERT.kind_of class_sym, ::Symbol
48
49 Unary::Class.new(loc, class_sym).freeze
50 end
51
52 end # Umu::ConcreteSyntax::Core::Expression
53
54 end # Umu::ConcreteSyntax::Core
55
56 end # Umu::ConcreteSyntax
57
58 end # Umu