class Psych::Parser

YAML 事件解析器类。该类解析 YAML 文档,并在传递给构造函数的处理程序上调用事件。这些事件可用于构造 YAML AST 或反序列化 YAML 文档。它甚至可以反馈给 Psych::Emitter 以发出被解析的相同文档。

有关 Psych::Parser 发出的事件的文档,请参见 Psych::Handler

这是一个打印 YAML 文档中找到的每个标量的示例

# Handler for detecting scalar values
class ScalarHandler < Psych::Handler
  def scalar value, anchor, tag, plain, quoted, style
    puts value
  end
end

parser = Psych::Parser.new(ScalarHandler.new)
parser.parse(yaml_document)

这是一个将解析器反馈给 Psych::Emitter 的示例。 YAML 文档从 STDIN 读取,并写回 STDERR

parser = Psych::Parser.new(Psych::Emitter.new($stderr))
parser.parse($stdin)

PsychPsych::ParserPsych::TreeBuilder 结合使用,以构造解析的 YAML 文档的 AST。