class Psych::Parser

Klassen YAML Ereignis-Parser. Diese Klasse parst ein YAML-Dokument und ruft Ereignisse auf dem Handler auf, der dem Konstruktor übergeben wird. Die Ereignisse können für Dinge wie die Erstellung eines YAML AST oder die Deserialisierung von YAML-Dokumenten verwendet werden. Es kann sogar zurück an Psych::Emitter gespeist werden, um dasselbe Dokument auszugeben, das geparst wurde.

Siehe Psych::Handler für Dokumentation zu den Ereignissen, die Psych::Parser ausgibt.

Hier ist ein Beispiel, das jedes Skalar in einem YAML-Dokument ausgibt

# 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)

Hier ist ein Beispiel, das den Parser zurück an Psych::Emitter speist. Das YAML-Dokument wird von STDIN gelesen und zurück an STDERR geschrieben

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

Psych verwendet Psych::Parser in Kombination mit Psych::TreeBuilder, um einen AST des geparsten YAML-Dokuments zu erstellen.