File: lexical/token/token.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Umu#6
  module: Lexical#8
  module: Token#10
has properties
function: make_reserved_word / 2 #203
function: make_reserved_symbol / 2 #211
function: make_symbol / 2 #219
function: make_module_directory / 2 #227
function: make_identifier / 2 #235
function: make_label / 2 #243
function: make_label_selector / 2 #251
function: make_number_selector / 2 #259
function: make_message / 2 #267
function: make_string / 2 #275
function: make_integer / 2 #283
function: make_float / 2 #291
  class: ReservedWord#12
inherits from
  Symbol ( Umu::Lexical::Token::Abstraction )
has properties
method: initialize / 2 #13
method: to_s #20
alias: to_racc_token sym #25
  class: ReservedSymbol#30
inherits from
  Symbol ( Umu::Lexical::Token::Abstraction )
has properties
method: to_s #31
method: to_racc_token #36
  class: Symbol#43
inherits from
  Symbol ( Umu::Lexical::Token::Abstraction )
has properties
method: to_s #44
method: to_racc_token #49
  class: ModuleDirectory#56
inherits from
  Symbol ( Umu::Lexical::Token::Abstraction )
has properties
method: to_s #57
method: to_racc_token #62
  class: Identifier#69
inherits from
  Symbol ( Umu::Lexical::Token::Abstraction )
has properties
method: to_s #70
method: to_racc_token #75
  class: Label#82
inherits from
  Symbol ( Umu::Lexical::Token::Abstraction )
has properties
method: to_s #83
method: to_racc_token #88
  class: LabelSelector#95
inherits from
  Symbol ( Umu::Lexical::Token::Abstraction )
has properties
method: to_s #96
method: to_racc_token #101
  class: NumberSelector#108
inherits from
  Abstract ( Umu::Lexical::Token::Abstraction )
has properties
method: initialize / 2 #109
method: to_s #116
method: to_racc_token #121
  class: Message#128
inherits from
  Symbol ( Umu::Lexical::Token::Abstraction )
has properties
method: to_s #129
method: to_racc_token #134
  class: String#141
inherits from
  String ( Umu::Lexical::Token::Abstraction )
has properties
method: initialize / 2 #142
method: to_s #149
method: to_racc_token #154
  class: Int#161
inherits from
  Abstract ( Umu::Lexical::Token::Abstraction )
has properties
method: initialize / 2 #162
method: to_s #169
method: to_racc_token #174
  class: Float#181
inherits from
  Abstract ( Umu::Lexical::Token::Abstraction )
has properties
method: initialize / 2 #182
method: to_s #189
method: to_racc_token #194

Code

   1  # coding: utf-8
   2  # frozen_string_literal: true
   3 
   4 
   5 
   6  module Umu
   7 
   8  module Lexical
   9 
  10  module Token
  11 
  12  class ReservedWord < Abstraction::Symbol
  13      def initialize(loc, val)
  14          ASSERT.kind_of val, ::String
  15 
  16          super(loc, val.upcase)
  17      end
  18 
  19 
  20      def to_s
  21          self.sym.to_s
  22      end
  23 
  24 
  25      alias to_racc_token sym
  26  end
  27 
  28 
  29 
  30  class ReservedSymbol < Abstraction::Symbol
  31      def to_s
  32          format "'%s'", self.sym
  33      end
  34 
  35 
  36      def to_racc_token
  37          self.sym.to_s
  38      end
  39  end
  40 
  41 
  42 
  43  class Symbol < Abstraction::Symbol
  44      def to_s
  45          format "SYM(%s)", self.sym
  46      end
  47 
  48 
  49      def to_racc_token
  50          :SYMBOL
  51      end
  52  end
  53 
  54 
  55 
  56  class ModuleDirectory < Abstraction::Symbol
  57      def to_s
  58          format "DIR(%s::)", self.sym
  59      end
  60 
  61 
  62      def to_racc_token
  63          :MODULE_DIR
  64      end
  65  end
  66 
  67 
  68 
  69  class Identifier < Abstraction::Symbol
  70      def to_s
  71          format "ID(%s)", self.sym
  72      end
  73 
  74 
  75      def to_racc_token
  76          :ID
  77      end
  78  end
  79 
  80 
  81 
  82  class Label < Abstraction::Symbol
  83      def to_s
  84          format "LABEL(%s:)", self.sym
  85      end
  86 
  87 
  88      def to_racc_token
  89          :LABEL
  90      end
  91  end
  92 
  93 
  94 
  95  class LabelSelector < Abstraction::Symbol
  96      def to_s
  97          format "LSEL($%s)", self.sym
  98      end
  99 
 100 
 101      def to_racc_token
 102          :LSEL
 103      end
 104  end
 105 
 106 
 107 
 108  class NumberSelector < Abstraction::Abstract
 109      def initialize(loc, val)
 110          ASSERT.kind_of val, ::Integer
 111 
 112          super
 113      end
 114 
 115 
 116      def to_s
 117          format "NSEL($%s)", self.val.to_s
 118      end
 119 
 120 
 121      def to_racc_token
 122          :NSEL
 123      end
 124  end
 125 
 126 
 127 
 128  class Message < Abstraction::Symbol
 129      def to_s
 130          format "MSG(.%s)", self.sym
 131      end
 132 
 133 
 134      def to_racc_token
 135          :MSG
 136      end
 137  end
 138 
 139 
 140 
 141  class String < Abstraction::String
 142      def initialize(loc, val)
 143          ASSERT.kind_of val, ::String
 144 
 145          super
 146      end
 147 
 148 
 149      def to_s
 150          format "STRING(\"%s\")", Escape.unescape(self.val)
 151      end
 152 
 153 
 154      def to_racc_token
 155          :STRING
 156      end
 157  end
 158 
 159 
 160 
 161  class Int < Abstraction::Abstract
 162      def initialize(loc, val)
 163          ASSERT.kind_of val, ::Integer
 164 
 165          super
 166      end
 167 
 168 
 169      def to_s
 170          format "INT(%s)", self.val.to_s
 171      end
 172 
 173 
 174      def to_racc_token
 175          :INT
 176      end
 177  end
 178 
 179 
 180 
 181  class Float < Abstraction::Abstract
 182      def initialize(loc, val)
 183          ASSERT.kind_of val, ::Float
 184 
 185          super
 186      end
 187 
 188 
 189      def to_s
 190          format "FLOAT(%s)", self.val.to_s
 191      end
 192 
 193 
 194      def to_racc_token
 195          :FLOAT
 196      end
 197  end
 198 
 199 
 200 
 201  module_function
 202 
 203      def make_reserved_word(loc, val)
 204          ASSERT.kind_of loc, LOC::Entry
 205          ASSERT.kind_of val, ::String
 206 
 207          ReservedWord.new(loc, val.freeze).freeze
 208      end
 209 
 210 
 211      def make_reserved_symbol(loc, val)
 212          ASSERT.kind_of loc, LOC::Entry
 213          ASSERT.kind_of val, ::String
 214 
 215          ReservedSymbol.new(loc, val.freeze).freeze
 216      end
 217 
 218 
 219      def make_symbol(loc, val)
 220          ASSERT.kind_of loc, LOC::Entry
 221          ASSERT.kind_of val, ::String
 222 
 223          Symbol.new(loc, val.freeze).freeze
 224      end
 225 
 226 
 227      def make_module_directory(loc, val)
 228          ASSERT.kind_of loc, LOC::Entry
 229          ASSERT.kind_of val, ::String
 230 
 231          ModuleDirectory.new(loc, val.freeze).freeze
 232      end
 233 
 234 
 235      def make_identifier(loc, val)
 236          ASSERT.kind_of loc, LOC::Entry
 237          ASSERT.kind_of val, ::String
 238 
 239          Identifier.new(loc, val.freeze).freeze
 240      end
 241 
 242 
 243      def make_label(loc, val)
 244          ASSERT.kind_of loc, LOC::Entry
 245          ASSERT.kind_of val, ::String
 246 
 247          Label.new(loc, val.freeze).freeze
 248      end
 249 
 250 
 251      def make_label_selector(loc, val)
 252          ASSERT.kind_of loc, LOC::Entry
 253          ASSERT.kind_of val, ::String
 254 
 255          LabelSelector.new(loc, val.freeze).freeze
 256      end
 257 
 258 
 259      def make_number_selector(loc, val)
 260          ASSERT.kind_of loc, LOC::Entry
 261          ASSERT.kind_of val, ::Integer
 262 
 263          NumberSelector.new(loc, val).freeze
 264      end
 265 
 266 
 267      def make_message(loc, val)
 268          ASSERT.kind_of loc, LOC::Entry
 269          ASSERT.kind_of val, ::String
 270 
 271          Message.new(loc, val.freeze).freeze
 272      end
 273 
 274 
 275      def make_string(loc, val)
 276          ASSERT.kind_of loc, LOC::Entry
 277          ASSERT.kind_of val, ::String
 278 
 279          String.new(loc, val.freeze).freeze
 280      end
 281 
 282 
 283      def make_integer(loc, val)
 284          ASSERT.kind_of loc, LOC::Entry
 285          ASSERT.kind_of val, ::Integer
 286 
 287          Int.new(loc, val).freeze
 288      end
 289 
 290 
 291      def make_float(loc, val)
 292          ASSERT.kind_of loc, LOC::Entry
 293          ASSERT.kind_of val, ::Float
 294 
 295          Float.new(loc, val).freeze
 296      end
 297 
 298  end # Umu::Lexical::Token
 299 
 300  end # Umu::Lexical
 301 
 302  end # Umu