git.fiddlerwoaroof.com
src/yaml.lisp
e792d5f3
 (in-package :cl-user)
cc00a144
 (defpackage cl-yaml
e792d5f3
   (:use :cl)
cc00a144
   (:nicknames :yaml)
90e18416
   (:import-from :yaml.parser
                 :register-scalar-converter
                 :register-sequence-converter
                 :register-mapping-converter)
   (:import-from :yaml.emitter
                 :emit-object
                 :print-scalar)
fe998b64
   (:import-from :yaml.scalar
                 :*yaml-11-integers*)
edf58d51
   (:export :parse
90e18416
            :emit
            :emit-to-string
            :register-scalar-converter
            :register-sequence-converter
            :register-mapping-converter
            :emit-object
fe998b64
            :print-scalar
            :*yaml-11-integers*)
e792d5f3
   (:documentation "The main YAML interface."))
 (in-package :yaml)
 
979ef6ab
 (defgeneric parse (input &key multi-document-p)
e792d5f3
   (:documentation "Parse a YAML string or a pathname to a YAML file into Lisp
  data."))
 
979ef6ab
 (defmethod parse ((input string) &key multi-document-p)
25882f04
   (let ((parsed (yaml.parser:parse-string input)))
979ef6ab
     (if multi-document-p
         parsed
         (second parsed))))
e792d5f3
 
979ef6ab
 (defmethod parse ((input pathname) &key multi-document-p)
1961b415
   (parse (uiop:read-file-string input)
979ef6ab
          :multi-document-p multi-document-p))
00c7cf8c
 
90e18416
 (defun emit (value stream)
   (yaml.emitter:emit value stream))
00c7cf8c
 
90e18416
 (defun emit-to-string (value)
   (yaml.emitter:emit-to-string value))