    # File lib/yard/parser/ruby/legacy/ruby_lex.rb, line 289
          def RubyToken.def_token(token_n, super_token = Token, reading = nil, *opts)
            token_n = token_n.id2name unless token_n.kind_of?(String)
            if RubyToken.const_defined?(token_n)
              # IRB.fail AlreadyDefinedToken, token_n
            end

            token_c =  Class.new super_token
            RubyToken.const_set token_n, token_c
            # token_c.inspect

            if reading
              if TkReading2Token[reading]
                IRB.fail TkReading2TokenDuplicateError, token_n, reading
              end
              if opts.empty?
                TkReading2Token[reading] = [token_c]
              else
                TkReading2Token[reading] = [token_c].concat(opts)
              end
            end
            TkSymbol2Token[token_n.intern] = token_c

            if token_c <= TkOp
              token_c.class_eval %{
                def self.op_name; "#{reading}"; end
              }
            end
          end