1 # coding: utf-8
2 # frozen_string_literal: true
3
4
5
6 module Umu
7
8 module AbstractSyntax
9
10 module Core
11
12 module Expression
13
14 module Unary
15
16 module Atom
17
18 class Bool < Abstract
19 def initialize(loc, obj)
20 ASSERT.bool obj
21
22 super
23 end
24
25
26 def to_s
27 if self.obj
28 'TRUE'
29 else
30 'FALSE'
31 end
32 end
33
34
35 def __evaluate__(_env, _event)
36 VC.make_bool self.obj
37 end
38 end
39
40 end # Umu::AbstractSyntax::Core::Expression::Unary::Atom
41
42 end # Umu::AbstractSyntax::Core::Expression::Unary
43
44
45 module_function
46
47 def make_bool(loc, obj)
48 ASSERT.kind_of loc, LOC::Entry
49 ASSERT.bool obj
50
51 Unary::Atom::Bool.new(loc, obj).freeze
52 end
53
54 end # Umu::AbstractSyntax::Core::Expression
55
56 end # Umu::AbstractSyntax::Core
57
58 end # Umu::AbstractSyntax
59
60 end # Umu