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