File: abstract-syntax/core/expression/unary/atom/symbol.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_symbol / 2 #45
  module: Unary#14
  module: Atom#16
  class: Symbol#18
inherits from
  Abstract ( Umu::AbstractSyntax::Core::Expression::Unary::Atom )
has properties
method: initialize / 2 #19
method: to_s #26
method: __evaluate__ / 2 #33

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  module Atom
  17 
  18  class Symbol < Abstract
  19      def initialize(loc, obj)
  20          ASSERT.kind_of obj, ::Symbol
  21 
  22          super
  23      end
  24 
  25 
  26      def to_s
  27          '@' + self.obj.to_s
  28      end
  29 
  30 
  31  private
  32 
  33      def __evaluate__(_env, _event)
  34          VC.make_symbol self.obj
  35      end
  36  end
  37 
  38  end # Umu::AbstractSyntax::Core::Expression::Unary::Atom
  39 
  40  end # Umu::AbstractSyntax::Core::Expression::Unary
  41 
  42 
  43  module_function
  44 
  45      def make_symbol(loc, obj)
  46          ASSERT.kind_of loc, LOC::Entry
  47          ASSERT.kind_of obj, ::Symbol
  48 
  49          Unary::Atom::Symbol.new(loc, obj).freeze
  50      end
  51 
  52  end # Umu::AbstractSyntax::Core::Expression
  53 
  54  end # Umu::AbstractSyntax::Core
  55 
  56  end # Umu::AbstractSyntax
  57 
  58  end # Umu