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 Container
17
18 module Abstraction
19
20 class Abstract < Unary::Abstract
21 include ::Enumerable
22
23 alias enum obj
24
25
26 def each
27 raise X::InternalSubclassResponsibility
28 end
29
30
31 def simple?
32 false
33 end
34 end
35
36
37
38 class Expressions < Abstract
39 alias exprs enum
40
41
42 def initialize(loc, exprs)
43 ASSERT.kind_of exprs, ::Array
44
45 super
46 end
47
48
49 def each
50 self.exprs.each do |expr|
51 ASSERT.kind_of expr, ASCE::Abstract
52
53 yield expr
54 end
55 end
56 end
57
58 end # Umu::AbstractSyntax::Core::Expression::Unary::Container::Abstraction
59
60 end # Umu::AbstractSyntax::Core::Expression::Unary::Container
61
62 end # Umu::AbstractSyntax::Core::Expression::Unary
63
64 end # Umu::AbstractSyntax::Core::Expression
65
66 end # Umu::AbstractSyntax::Core
67
68 end # Umu::AbstractSyntax
69
70 end # Umu