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 Nary
15
16 module Branch
17
18 module Rule
19
20 module Case
21
22 class Entry < Abstraction::HasHead
23 def desugar_poly_rule(env)
24 self.body_expr.desugar env
25 end
26 end
27
28 end # Umu::ConcreteSyntax::Core::Expression::Nary::Branch::Rule::Case
29
30 end # Umu::ConcreteSyntax::Core::Expression::Nary::Branch::Rule
31
32 end # Umu::ConcreteSyntax::Core::Expression::Nary::Branch
33
34 end # Umu::ConcreteSyntax::Core::Expression::Nary
35
36
37 module_function
38
39 def make_case_rule(loc, head, body_expr)
40 ASSERT.kind_of loc, LOC::Entry
41 ASSERT.kind_of head, CSCEN::Branch::Rule::Case::Abstract
42 ASSERT.kind_of body_expr, CSCE::Abstract
43
44 Nary::Branch::Rule::Case::Entry.new(loc, head, body_expr).freeze
45 end
46
47 end # Umu::ConcreteSyntax::Core::Expression
48
49 end # Umu::ConcreteSyntax::Core
50
51 end # Umu::ConcreteSyntax
52
53 end # Umu