File: concrete-syntax/core/pattern/abstract.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Umu#6
  module: ConcreteSyntax#8
  module: Core#10
  module: Pattern#12
  class: Abstract#14
inherits from
  Model ( Umu::Abstraction )
has properties
method: pretty_print / 1 #15
method: exported_vars #20
method: desugar_value / 2 #25
method: desugar_lambda / 2 #39
method: __desugar_value__ / 3 #55
method: __desugar_lambda__ / 3 #60

Code

   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 Pattern
  13 
  14  class Abstract < Abstraction::Model
  15      def pretty_print(q)
  16          q.text self.to_s
  17      end
  18 
  19 
  20      def exported_vars
  21          raise X::InternalSubclassResponsibility
  22      end
  23 
  24 
  25      def desugar_value(expr, env)
  26          E::Tracer.trace(
  27                      env.pref,
  28                      env.trace_stack.count,
  29                      'Desu(Val)',
  30                      self.class,
  31                      self.loc,
  32                      self.to_s
  33                  ) { |event|
  34                      __desugar_value__ expr, env, event
  35                  }
  36      end
  37 
  38 
  39      def desugar_lambda(seq_num, env)
  40          E::Tracer.trace(
  41                      env.pref,
  42                      env.trace_stack.count,
  43                      'Desu(Lam)',
  44                      self.class,
  45                      self.loc,
  46                      self.to_s
  47                  ) { |event|
  48                      __desugar_lambda__ seq_num, env, event
  49                  }
  50      end
  51 
  52 
  53  private
  54 
  55      def __desugar_value__(_expr, _env, _event)
  56          raise X::InternalSubclassResponsibility
  57      end
  58 
  59 
  60      def __desugar_lambda__(_seq_num, _env, _event)
  61          raise X::InternalSubclassResponsibility
  62      end
  63  end
  64 
  65  end # Umu::ConcreteSyntax::Core::Pattern
  66 
  67  end # Umu::ConcreteSyntax::Core
  68 
  69  end # Umu::ConcreteSyntax
  70 
  71  end # Umu