File: abstract-syntax/core/expression/unary/class.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Umu#6
  module: AbstractSyntax#8
  module: Core#10
  module: Expression#12
has properties
function: make_class / 2 #47
  module: Unary#14
  class: Class#16
inherits from
  Abstract ( Umu::AbstractSyntax::Core::Expression::Unary )
has properties
alias: class_sym obj #17
method: initialize / 2 #20
method: to_s #27
method: __evaluate__ / 2 #34

Code

   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  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 __evaluate__(env, _event)
  35          class_signat = env.ty_lookup self.class_sym, self.loc
  36          ASSERT.kind_of class_signat, ECTSC::Base
  37 
  38          VC.make_class class_signat
  39      end
  40  end
  41 
  42  end # Umu::AbstractSyntax::Core::Expression::Unary
  43 
  44 
  45  module_function
  46 
  47      def make_class(loc, class_sym)
  48          ASSERT.kind_of loc,         LOC::Entry
  49          ASSERT.kind_of class_sym,   ::Symbol
  50 
  51          Unary::Class.new(loc, class_sym).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