模块 Prism::Serialize

一个负责反序列化解析结果的模块。

常量

MAJOR_VERSION

我们在序列化字符串中期望找到的 prism 的主版本号。

MINOR_VERSION

我们在序列化字符串中期望找到的 prism 的次版本号。

PATCH_VERSION

我们在序列化字符串中期望找到的 prism 的补丁版本号。

TOKEN_TYPES

可以通过枚举值索引的标记类型。

公共类方法

load(input, serialized) 点击切换源码

将给定字符串表示的 AST 反序列化为解析结果。

# File prism/serialize.rb, line 28
def self.load(input, serialized)
  input = input.dup
  source = Source.for(input)

  loader = Loader.new(source, serialized)
  result = loader.load_result

  input.force_encoding(loader.encoding)

  # This is an extremely niche use-case where the file was marked as binary
  # but it contained UTF-8-encoded characters. In that case we will actually
  # put it back to UTF-8 to give the location APIs the best chance of being
  # correct.
  if !input.ascii_only? && input.encoding == Encoding::BINARY
    input.force_encoding(Encoding::UTF_8)
    input.force_encoding(Encoding::BINARY) unless input.valid_encoding?
  end

  result
end
load_tokens(source, serialized) 点击切换源码

将给定字符串表示的标记反序列化为解析结果。

# File prism/serialize.rb, line 51
def self.load_tokens(source, serialized)
  Loader.new(source, serialized).load_tokens_result
end