branch: externals/yaml
commit 57254d464aa382fd09a1fabc2a4b55e0b3d6afc1
Author: Zachary Romero <[email protected]>
Commit: Zachary Romero <[email protected]>
update schema
---
grammargen.bb | 160 ++++-
yaml.el | 1794 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 1924 insertions(+), 30 deletions(-)
diff --git a/grammargen.bb b/grammargen.bb
index ece9231164..7962ac877e 100755
--- a/grammargen.bb
+++ b/grammargen.bb
@@ -19,17 +19,51 @@
(map symbol))
(list)))
-(defmulti gen-elisp-fn-arg #(.getName (class %)))
+(defn gen-elisp-lambda [f]
+ (list 'lambda (list) f))
+
+(defmulti gen-elisp-fn-arg #(if (nil? %)
+ "nil"
+ (.getName (class %))))
+
+(defmethod gen-elisp-fn-arg "nil" [_]
+ 'nil)
+(defmethod gen-elisp-fn-arg "java.lang.Integer" [n]
+ n)
(defmethod gen-elisp-fn-arg "java.lang.String" [var-name]
- (symbol var-name))
+ (cond (= "<auto-detect-indent>" var-name)
+ (list 'yaml--auto-detect-indent 'n)
+
+ (= "(match)" var-name)
+ (list 'yaml--match)
+
+ (#{"flow-out" "flow-in" "block-in" "block-out"} var-name)
+ var-name
+
+ (> (count var-name) 2)
+ (list (prefix-package-symbol var-name))
+
+ (= "m" var-name)
+ (list 'yaml--state-m)
+
+ (= "t" var-name)
+ (list 'yaml--state-t)
+
+ :else (symbol var-name)))
+
(defmethod gen-elisp-fn-arg "clojure.lang.PersistentArrayMap" [m]
(cond
(get m "(+)")
(let [[var val] (get m "(+)")]
- (list 'yaml--add (symbol var) val))
+ (list '+ (gen-elisp-fn-arg var) (gen-elisp-fn-arg val)))
(get m "(-)")
(let [[var val] (get m "(-)")]
(list 'yaml--sub (symbol var) val))
+ (get m "(len)")
+ (list 'length (gen-elisp-fn-arg (get m "(len)")))
+ (get m "(ord)")
+ (list 'yaml--ord (gen-elisp-lambda (list 'yaml--match))) ;; hack
+
:else
(let [[f args] (first m)]
(concat (list (prefix-package-symbol f))
@@ -37,24 +71,41 @@
(defmulti gen-elisp-parse-expr #(.getName (class %)))
+(defn gen-elsip-char-symbol [c]
+ (symbol (str "?\\"
+ (if (= c "N")
+ "n"
+ c))))
+
(defmethod gen-elisp-parse-expr "java.lang.String" [chr]
- (list 'yaml--chr chr))
+ (cond (= "<start-of-line>" chr)
+ (list 'yaml--start-of-line)
+ (= "<end-of-stream>" chr)
+ (list 'yaml--end-of-stream)
+ (= "<empty>" chr)
+ (list 'yaml--empty)
+ (or (= (count chr) 1) (= (first chr) \x))
+ (list 'yaml--chr (gen-elsip-char-symbol chr))
+ (= "N" chr)
+ (list (prefix-package-symbol "\n"))
+ :else
+ (list (prefix-package-symbol chr))))
(defmethod gen-elisp-parse-expr "clojure.lang.PersistentVector" [[min max]]
(list 'yaml--chr-range
- (symbol (str "?\\" min))
- (symbol (str "?\\" max))))
+ (gen-elsip-char-symbol min)
+ (gen-elsip-char-symbol max)))
(defmethod gen-elisp-parse-expr "clojure.lang.PersistentArrayMap" [m]
(cond
(get m "({n})")
- (list 'yaml--repeat-n 'n (prefix-package-symbol-quoted (get m "({n})")))
+ (list 'yaml--rep 'n 'n (prefix-package-symbol-quoted (get m "({n})")))
(get m "({2})")
- (list 'yaml--repeat-n 2 (prefix-package-symbol-quoted (get m "({2})")))
+ (list 'yaml--rep 2 2 (prefix-package-symbol-quoted (get m "({2})")))
(get m "({4})")
- (list 'yaml--repeat-n 4 (prefix-package-symbol-quoted (get m "({4})")))
+ (list 'yaml--rep 4 4 (prefix-package-symbol-quoted (get m "({4})")))
(get m "({8})")
- (list 'yaml--repeat-n 4 (prefix-package-symbol-quoted (get m "({8})")))
+ (list 'yaml--rep 8 8 (prefix-package-symbol-quoted (get m "({8})")))
(get m "(all)")
(concat (list 'yaml--all) (map gen-elisp-parse-expr (get m "(all)")))
@@ -62,32 +113,78 @@
(get m "(any)")
(concat (list 'yaml--any) (map gen-elisp-parse-expr (get m "(any)")))
+ (get m "(exclude)")
+ (concat (list 'yaml--exclude (get m "(exclude)")))
+
(get m "(flip)")
(let [flip-args (get m "(flip)")
- var (gen-elisp-fn-arg (get flip-args "var"))
- block-in (or (and (get flip-args "block-in") (gen-elisp-fn-arg (get
flip-args "block-in"))) 'f)
- block-out (or (and (get flip-args "block-out") (gen-elisp-fn-arg
(get flip-args "block-out"))) 'f)
- block-key (or (and (get flip-args "block-key") (gen-elisp-fn-arg
(get flip-args "block-key"))) 'f)
- flow-in (or (and (get flip-args "flow-in") (gen-elisp-fn-arg (get
flip-args "flow-in"))) 'f)
- flow-out (or (and (get flip-args "flow-out") (gen-elisp-fn-arg (get
flip-args "flow-out"))) 'f)
- flow-key (or (and (get flip-args "flow-key") (gen-elisp-fn-arg (get
flip-args "flow-key"))) 'f)]
- (concat (list 'yaml--flip var block-in block-out block-key flow-in
flow-out flow-key)))
+ var (symbol (get flip-args "var"))
+ flip-args (dissoc flip-args "var")]
+ (concat (list 'cond)
+ (map (fn [[from to]]
+ (list (list 'equal var from)
+ (gen-elisp-fn-arg to)))
+ flip-args)))
(get m "(<<<)")
(list 'yaml--may (gen-elisp-parse-expr (get m "(<<<)")))
(get m "(???)")
- (list 'yaml--rep 0 1 (gen-elisp-parse-expr (get m "(???)")))
+ (list 'yaml--rep 0 1 (gen-elisp-lambda (gen-elisp-parse-expr (get m
"(???)"))))
(get m "(***)")
- (list 'yaml--rep2 0 'f (gen-elisp-parse-expr (get m "(***)")))
+ (list 'yaml--rep2 0 'nil (gen-elisp-lambda (gen-elisp-parse-expr (get m
"(***)"))))
(get m "(+++)")
- (list 'yaml--rep 1 'f (gen-elisp-parse-expr (get m "(+++)")))
+ (list 'yaml--rep 1 'nil (gen-elisp-lambda (gen-elisp-parse-expr (get m
"(+++)"))))
+
+ (get m "(---)")
+ (concat (list 'yaml--but) (map gen-elisp-lambda (map gen-elisp-parse-expr
(get m "(---)"))))
+
+
(get m "(+)")
(let [[var val] (get m "(+)")]
(list 'yaml--add val (symbol var)))
+ (get m "(<)")
+ (let [[a b] (get m "(<)")]
+ (list '< (gen-elisp-fn-arg a) (gen-elisp-fn-arg b)))
+
+ (get m "(<=)")
+ (let [[a b] (get m "(<=)")]
+ (list '<= (gen-elisp-fn-arg a) (gen-elisp-fn-arg b)))
+
+ (get m "(<==)")
+ (let [expr (get m "(<==)")]
+ (list 'yaml--chk "<=" (gen-elisp-fn-arg expr)))
+
+ (get m "(===)")
+ (let [[a b] (first (get m "(===)"))]
+ (list 'yaml--chk "=" (list (first (gen-elisp-fn-arg a))
(gen-elisp-fn-arg b))))
+
+ (get m "(!==)")
+ (let [[a b] (first (get m "(!==)"))]
+ (list 'yaml--chk "!" (list (first (gen-elisp-fn-arg a))
(gen-elisp-fn-arg b))))
+
+ (get m "(max)")
+ (list 'yaml--max (get m "(max)"))
+
+ (get m "(set)")
+ (let [[var-name val] (get m "(set)")]
+ (list 'yaml--set (symbol var-name) (gen-elisp-fn-arg val)))
+
+ (get m "(case)")
+ (let [case-params (get m "(case)")
+ var-name (get case-params "var")
+ case-params (dissoc case-params "var")]
+ (concat
+ (list 'cond)
+ (map (fn [[case-name function]]
+ (list (list 'equal (symbol var-name) case-name)
+ (gen-elisp-fn-arg function)))
+ case-params)))
+
+
;; else funcall with args
:else
(let [[f args] (first m)]
@@ -96,12 +193,11 @@
(map gen-elisp-fn-arg (flatten (list args)))))))
(defn gen-elisp-defun [[name rule]]
- (let [params (extract-params rule)]
- (println "[debug]" (pr-str name) (pr-str rule))
+ (let [params (extract-params rule)
+ rule (if (map? rule) (dissoc rule "(...)") rule)]
(list 'defun (prefix-package-symbol name) params
"Documentation string."
- (list 'yaml-debug-symbol name)
- (gen-elisp-parse-expr rule))))
+ (list 'yaml--frame name (gen-elisp-parse-expr rule)))))
(def json-grammar (into {} (filter (fn [[k _]] (not (= ":" (subs k 0 1))))
(json/parse-string (slurp "./yaml-spec-1.2.json")))))
@@ -115,9 +211,15 @@
;; (println (pr-str (gen-elisp-defun ["s-indent" (get json-grammar
"s-indent")])))
;; (println (pr-str (gen-elisp-defun ["ns-esc-32-bit" (get json-grammar
"ns-esc-32-bit")])))
-;; (println (pr-str (gen-elisp-defun ["s-indent-lt" (get json-grammar
"s-indent-lt")])))
+;;(println (pr-str (gen-elisp-defun ["s-indent-lt" (get json-grammar
"s-indent-lt")])))
;; (println (pr-str (gen-elisp-defun ["s-l+block-collection" (get json-grammar
"s-l+block-collection")])))
-;; (println (pr-str (gen-elisp-defun ["in-flow" (get json-grammar
"in-flow")])))
-(println (first json-grammar))
-(gen-elisp-defun (first json-grammar))
+;;
+
+;; (println (pr-str (gen-elisp-defun ["ns-plain-safe" (get json-grammar
"ns-plain-safe")])))
+(println (pr-str *command-line-args*))
+
+(if-let [fn-name (first *command-line-args*)]
+ (println (pr-str (gen-elisp-defun [fn-name (get json-grammar fn-name)])))
+ (doall (map println (map pr-str (map gen-elisp-defun json-grammar)))))
+;;
diff --git a/yaml.el b/yaml.el
index edc0fe3efd..4c76e21615 100644
--- a/yaml.el
+++ b/yaml.el
@@ -30,7 +30,1799 @@
;;; Code:
-(message "Hello World!")
+(defconst yaml-tracing-ignore '("s-space"
+ "s-tab"
+ "s-white"
+ "l-comment"
+ "b-break"
+ "b-line-feed"
+ "b-carriage-return"
+ "s-b-comment"
+ "b-comment"
+ "l-comment"
+ "ns-char"
+ "nb-char"
+ "b-char"
+ "c-printable"
+ "b-as-space"))
+
+(defvar yaml-parsing-input "ABC")
+(defvar yaml-parsing-position 0)
+(defvar yaml-states nil)
+
+(cl-defstruct (yaml-state (:constructor yaml-state-create)
+ (:copier nil))
+ doc tt m name lvl beg end)
+
+(defmacro yaml-parse (data &rest forms)
+ "Parse DATA according to FORMS."
+ (declare (indent defun))
+ `(progn (setq yaml-parsing-input ,data)
+ (setq yaml-parsing-position 0)
+ (yaml--initialize-state)
+ ,@forms))
+
+
+(defun yaml--state-curr ()
+ "Return the current state."
+ (or (car yaml-states)
+ (yaml-state-create
+ :name nil :doc nil :lvl 0 :beg 0 :end 0 :m nil :tt nil)))
+
+(defun yaml-state-set-m (val)
+ "Set the current value of m to VAL."
+ (let* ((top-state (yaml--state-curr)))
+ (setcar yaml-states
+ (yaml-state-create :doc (yaml-state-doc top-state)
+ :tt (yaml-state-tt top-state)
+ :m val
+ :name (yaml-state-m top-state)
+ :lvl (yaml-state-lvl top-state)
+ :beg (yaml-state-beg top-state)
+ :end (yaml-state-end top-state)))))
+(defun yaml-state-set-t (val)
+ "Set the current value of t to VAL."
+ (let* ((top-state (yaml--state-curr)))
+ (setcar yaml-states
+ (yaml-state-create :doc (yaml-state-doc top-state)
+ :tt val
+ :m (yaml-state-m top-state)
+ :name (yaml-state-m top-state)
+ :lvl (yaml-state-lvl top-state)
+ :beg (yaml-state-beg top-state)
+ :end (yaml-state-end top-state)))))
+
+(defun yaml--state-doc ()
+ "Return the doc property of current state."
+ (yaml-state-doc (yaml--state-curr)))
+
+(defun yaml--state-t ()
+ "Return the doc property of current state."
+ (yaml-state-tt (yaml--state-curr)))
+
+(defun yaml--state-m ()
+ "Return the doc property of current state."
+ (yaml-state-m (yaml--state-curr)))
+
+(defun yaml--state-end ()
+ "Return the doc property of current state."
+ (yaml-state-end (yaml--state-curr)))
+
+(defun yaml--push-state (name)
+ "Add a new state frame with NAME."
+ (let* ((curr-state (yaml--state-curr))
+ (new-state (yaml-state-create
+ :doc (yaml--state-doc)
+ :tt (yaml--state-t)
+ :m (yaml--state-m)
+ :name name
+ :lvl (1+ (yaml-state-lvl curr-state))
+ :beg yaml-parsing-position
+ :end nil)))
+ (push new-state yaml-states)))
+
+(defun yaml--pop-state ()
+ "Pop the current state."
+ (let ((popped-state (car yaml-states)))
+ (setq yaml-states (cdr yaml-states))
+ (let ((top-state (car yaml-states)))
+ (setcar yaml-states
+ (yaml-state-create :doc (yaml-state-doc top-state)
+ :tt (yaml-state-tt top-state)
+ :m (yaml-state-m top-state)
+ :name (yaml-state-m top-state)
+ :lvl (yaml-state-lvl top-state)
+ :beg (yaml-state-beg popped-state)
+ :end yaml-parsing-position)))))
+
+(defun yaml--initialize-state ()
+ "Initialize the yaml state for parsing."
+ (setq yaml-states
+ (list (yaml-state-create :doc nil
+ :tt nil
+ :m nil
+ :name nil
+ :lvl 0
+ :beg nil
+ :end nil))))
+
+(defmacro yaml--frame (name rule)
+ "Add a new state frame of NAME for RULE."
+ (declare (indent defun))
+ `(progn
+ ;(message "%2d: %s" (length yaml-states) ,name)
+ (yaml--push-state ,name)
+ (when (not (member ,name yaml-tracing-ignore))
+ (message "|%s>%s %30s \"%s\""
+ (make-string (length yaml-states) ?-)
+ (make-string (- 30 (length yaml-states)) ?\s)
+ ,name
+ (replace-regexp-in-string
+ "\n"
+ "\\n"
+ (substring yaml-parsing-input yaml-parsing-position)
+ nil
+ 'literal)))
+ (let ((beg yaml-parsing-position)
+ (res ,rule))
+ (when (and res (not (member ,name yaml-tracing-ignore)))
+ (message "<%s|%s %30s \"%s\""
+ (make-string (length yaml-states) ?-)
+ (make-string (- 30 (length yaml-states)) ?\s)
+ ,name
+ (replace-regexp-in-string
+ "\n"
+ "\\n"
+ (substring yaml-parsing-input beg yaml-parsing-position)
+ nil
+ 'literal)))
+ (yaml--pop-state)
+ res)))
+
+(defun yaml--end-of-stream ()
+ ""
+ (>= yaml-parsing-position (length yaml-parsing-input)))
+
+(defun yaml--char-at-pos (pos)
+ "Return the character at POS."
+ (aref yaml-parsing-input pos))
+
+(defun yaml--slice (pos)
+ "Return the character at POS."
+ (substring yaml-parsing-input pos))
+
+(defun yaml--at-char ()
+ "Return the current character."
+ (yaml--char-at-pos yaml-parsing-position))
+
+(defun yaml--char-match (at &rest chars)
+ "Return non-nil if AT match any of CHARS."
+ (if (not chars)
+ nil
+ (or (equal at (car chars))
+ (apply #'yaml--char-match (cons at (cdr chars))))))
+
+(defun yaml--chr (c)
+ "Try to match the character C."
+ (if (or (yaml--end-of-stream) (not (equal (yaml--at-char) c)))
+ nil
+ (setq yaml-parsing-position (1+ yaml-parsing-position))
+ t))
+
+(defun yaml--chr-range (min max)
+ "Return non-nil if the current character is between MIN and MAX."
+ (if (or (yaml--end-of-stream) (not (<= min (yaml--at-char) max)))
+ nil
+ (setq yaml-parsing-position (1+ yaml-parsing-position))
+ t))
+
+(defmacro yaml--all (&rest forms)
+ "Pass if all of FORMS pass."
+ (if (= 1 (length forms))
+ (car forms)
+ (let ((idx-sym (make-symbol "idx")))
+ `(let ((,idx-sym ,(car forms)))
+ (and ,idx-sym (yaml--all ,@(cdr forms)))))))
+
+
+(defmacro yaml--any (&rest forms)
+ "Pass if any of FORMS pass."
+ (if (= 1 (length forms))
+ (car forms)
+ (let ((idx-sym (make-symbol "idx"))
+ (start-pos-sym (make-symbol "idx")))
+ `(let ((,start-pos-sym yaml-parsing-position)
+ (,idx-sym ,(car forms)))
+ (or ,idx-sym
+ (progn (setq yaml-parsing-position ,start-pos-sym)
+ (yaml--any ,@(cdr forms))))))))
+
+(defmacro yaml--may (action)
+ action)
+
+(defmacro yaml--exclude (_)
+ "Return non-nil."
+ 't)
+
+(defmacro yaml--max (_)
+ "Return non-nil."
+ t)
+
+(defun yaml--empty ()
+ "Return non-nil."
+ t)
+
+(defun yaml--match ()
+ ""
+ (let* ((states yaml-states)
+ (res nil))
+ (while (and states (not res))
+ (let ((top-state (car states)))
+ (if (yaml-state-end top-state)
+ (let ((beg (yaml-state-beg top-state))
+ (end (yaml-state-end top-state)))
+ (setq res (substring yaml-parsing-input beg end)))
+ (setq states (cdr states)))))))
+
+(defun yaml--auto-detect-indent (n)
+ "Detect the indentation given N."
+ (let* ((pos yaml-parsing-position)
+ (in-seq (and (> pos 0)
+ (yaml--char-match (yaml--char-at-pos (1- pos)) ?\- ?\?
?\:)))
+ (slice (yaml--slice pos))
+ (_ (string-match
+ "^\\(\\(?: *\\(?:#.*\\)?\n\\)*\\)\\( *\\)"
+ slice))
+ (pre (match-string 1 slice))
+ (m (length (match-string 2 slice))))
+ (if (and in-seq (not pre))
+ (when (= n -1)
+ (setq m (1+ m)))
+ (setq m (- m n)))
+ (when (< m 0)
+ (setq m 0))
+ m))
+
+(defun yaml--the-end ()
+ "Return non-nil if at the end of input (?)."
+ (or (>= yaml-parsing-position (length yaml-parsing-input))
+ (and (yaml--state-doc)
+ (yaml--start-of-line)
+ ;; TODO Test this Regex
+ (string-match "\\^g(?:---|\\.\\.\\.\\)\\([[:blank:]]\\|$\\)"
(substring yaml-parsing-input yaml-parsing-position)))))
+
+(defun yaml--ord (f)
+ (let ((res (funcall f)))
+ (- (aref res 0) 48)))
+
+(defun yaml--but (&rest fs)
+ "Match the first FS but none of the others."
+ (if (yaml--the-end)
+ nil
+ (let ((pos1 yaml-parsing-position))
+ (if (not (funcall (car fs)))
+ nil
+ (let ((pos2 yaml-parsing-position))
+ (setq yaml-parsing-position pos1)
+ (if (equal ':error (catch 'break
+ (dolist (f (cdr fs))
+ (if (funcall f)
+ (progn
+ (setq yaml-parsing-position pos1)
+ (throw 'break ':error))))))
+ nil
+ (setq yaml-parsing-position pos2)
+ t))))))
+
+(defun yaml--rep (min max func)
+ "Repeat FUNC between MIN and MAX times."
+ (yaml--rep2 min max func))
+
+(defun yaml--rep2 (min max func)
+ "Repeat FUNC between MIN and MAX times."
+ (if (and max (< max 0))
+ nil
+ (let* ((count 0)
+ (pos yaml-parsing-position)
+ (pos-start pos))
+ (catch 'break
+ (while (or (not max) (< count max))
+ (let ((res (funcall func)))
+ (when (or (not res)
+ (= yaml-parsing-position pos))
+ (throw 'break nil))
+ (setq count (1+ count))
+ (setq pos yaml-parsing-position))))
+ (if (and (>= count min)
+ (or (not max) (<= count max)))
+ (progn
+ (setq yaml-parsing-position pos)
+ t)
+ (setq yaml-parsing-position pos-start)
+ nil))))
+
+(defun yaml--start-of-line ()
+ "Return non-nil if start of line."
+ (or (= yaml-parsing-position 0)
+ (>= yaml-parsing-position (length yaml-parsing-input))
+ (equal (yaml--char-at-pos (1- yaml-parsing-position)) ?\n)))
+
+(defun yaml--top ()
+ "Perform top level YAML parsing rule."
+ (yaml-l-yaml-stream))
+
+(defmacro yaml--set (variable value)
+ "Set the current state of VARIABLE to VALUE"
+ (let ((res-sym (make-symbol "res")))
+ `(let ((,res-sym ,value))
+ (when ,res-sym
+ (,(cond ((equal "m" (symbol-name variable)) 'yaml-state-set-m)
+ ((equal "t" (symbol-name variable)) 'yaml-state-set-t))
+ ,res-sym)
+ ,res-sym))))
+
+(defmacro yaml--chk (type expr)
+ (let ((start-symbol (make-symbol "start"))
+ (ok-symbol (make-symbol "ok")))
+ `(let ((,start-symbol yaml-parsing-position))
+ (when (equal ,type "<=")
+ (setq yaml-parsing-position (1- yaml-parsing-position)))
+ (let ((ok (and (>= yaml-parsing-position 0) ,expr)))
+ (setq yaml-parsing-position ,start-symbol)
+ (if (equal ,type "!")
+ (not ok)
+ ok)))))
+
+(defun yaml-parse-string (str)
+ "Parse STR as YAML."
+ (let ((res (yaml-parse str
+ (yaml--top))))
+ (when (< yaml-parsing-position (length yaml-parsing-input))
+ (error (format "parser finished before end of input %s/%s"
+ yaml-parsing-position
+ (length yaml-parsing-input)) ))
+ res))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+(defun yaml-c-flow-sequence (n c)
+ "Documentation string."
+ (yaml--frame "c-flow-sequence"
+ (yaml--all (yaml--chr ?\[)
+ (yaml--rep 0 1 (lambda () (yaml-s-separate n c)))
+ (yaml--rep 0 1 (lambda ()
(yaml-ns-s-flow-seq-entries n (yaml-in-flow c))))
+ (yaml--chr ?\]))))
+
+(defun yaml-c-indentation-indicator (m)
+ "Documentation string."
+ (yaml--frame "c-indentation-indicator"
+ (yaml--any
+ (yaml--set m (yaml--ord (lambda () (yaml--match))))
+ (yaml--set m (yaml-auto-detect)))))
+
+(defun yaml-ns-reserved-directive ()
+ "Documentation string."
+ (yaml--frame "ns-reserved-directive"
+ (yaml--all (yaml-ns-directive-name)
+ (yaml--rep2 0 nil (lambda () (yaml--all
(yaml-s-separate-in-line) (yaml-ns-directive-parameter)))))))
+
+(defun yaml-ns-flow-map-implicit-entry (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-map-implicit-entry"
+ (yaml--any (yaml-ns-flow-map-yaml-key-entry n c)
+ (yaml-c-ns-flow-map-empty-key-entry n c)
+ (yaml-c-ns-flow-map-json-key-entry n c))))
+
+(defun yaml-ns-esc-double-quote ()
+ "Documentation string."
+ (yaml--frame "ns-esc-double-quote"
+ (yaml--chr ?\")))
+
+(defun yaml-c-mapping-start ()
+ "Documentation string."
+ (yaml--frame "c-mapping-start"
+ (yaml--chr ?\{)))
+
+(defun yaml-ns-flow-seq-entry (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-seq-entry"
+ (yaml--any (yaml-ns-flow-pair n c)
+ (yaml-ns-flow-node n c))))
+
+(defun yaml-l-empty (n c)
+ "Documentation string."
+ (yaml--frame "l-empty"
+ (yaml--all (yaml--any (yaml-s-line-prefix n c)
+ (yaml-s-indent-lt n))
+ (yaml-b-as-line-feed))))
+
+(defun yaml-c-primary-tag-handle ()
+ "Documentation string."
+ (yaml--frame "c-primary-tag-handle"
+ (yaml--chr ?\!)))
+
+(defun yaml-ns-plain-safe-out ()
+ "Documentation string."
+ (yaml--frame "ns-plain-safe-out"
+ (yaml-ns-char)))
+
+(defun yaml-c-ns-shorthand-tag ()
+ "Documentation string."
+ (yaml--frame "c-ns-shorthand-tag"
+ (yaml--all (yaml-c-tag-handle)
+ (yaml--rep 1 nil (lambda () (yaml-ns-tag-char))))))
+
+(defun yaml-nb-ns-single-in-line ()
+ "Documentation string."
+ (yaml--frame "nb-ns-single-in-line"
+ (yaml--rep2 0 nil (lambda () (yaml--all (yaml--rep2 0 nil
(lambda () (yaml-s-white))) (yaml-ns-single-char))))))
+
+(defun yaml-l-strip-empty (n)
+ "Documentation string."
+ (yaml--frame "l-strip-empty"
+ (yaml--all (yaml--rep2 0 nil (lambda () (yaml--all
(yaml-s-indent-le n)
+
(yaml-b-non-content))))
+ (yaml--rep 0 1 (lambda () (yaml-l-trail-comments
n))))))
+
+(defun yaml-c-indicator ()
+ "Documentation string."
+ (yaml--frame "c-indicator"
+ (yaml--any (yaml--chr ?\-)
+ (yaml--chr ?\?)
+ (yaml--chr ?\:)
+ (yaml--chr ?\,)
+ (yaml--chr ?\[)
+ (yaml--chr ?\])
+ (yaml--chr ?\{)
+ (yaml--chr ?\})
+ (yaml--chr ?\#)
+ (yaml--chr ?\&)
+ (yaml--chr ?\*)
+ (yaml--chr ?\!)
+ (yaml--chr ?\|)
+ (yaml--chr ?\>)
+ (yaml--chr ?\')
+ (yaml--chr ?\")
+ (yaml--chr ?\%)
+ (yaml--chr ?\@)
+ (yaml--chr ?\`))))
+
+(defun yaml-c-l+literal (n)
+ "Documentation string."
+ (yaml--frame "c-l+literal" (yaml--all (yaml--chr ?\|)
+ (yaml-c-b-block-header (yaml--state-m)
(yaml--state-t))
+ (yaml-l-literal-content (+ n
(yaml--state-m)) (yaml--state-t)))))
+
+(defun yaml-c-single-quoted (n c)
+ "Documentation string."
+ (yaml--frame "c-single-quoted" (yaml--all (yaml--chr ?\')
+ (yaml-nb-single-text n c)
+ (yaml--chr ?\'))))
+
+(defun yaml-c-forbidden ()
+ "Documentation string."
+ (yaml--frame "c-forbidden" (yaml--all (yaml--start-of-line)
+ (yaml--any (yaml-c-directives-end)
+ (yaml-c-document-end))
+ (yaml--any (yaml-b-char)
+ (yaml-s-white)
+ (yaml--end-of-stream)))))
+
+(defun yaml-c-ns-alias-node ()
+ "Documentation string."
+ (yaml--frame "c-ns-alias-node"
+ (yaml--all (yaml--chr ?\*)
+ (yaml-ns-anchor-name))))
+
+(defun yaml-c-secondary-tag-handle ()
+ "Documentation string."
+ (yaml--frame "c-secondary-tag-handle"
+ (yaml--all (yaml--chr ?\!)
+ (yaml--chr ?\!))))
+
+(defun yaml-ns-esc-next-line ()
+ "Documentation string."
+ (yaml--frame "ns-esc-next-line"
+ (yaml--chr ?N)))
+
+(defun yaml-l-nb-same-lines (n)
+ "Documentation string."
+ (yaml--frame "l-nb-same-lines"
+ (yaml--all (yaml--rep2 0 nil (lambda () (yaml-l-empty n
"block-in")))
+ (yaml--any (yaml-l-nb-folded-lines n)
+ (yaml-l-nb-spaced-lines n)))))
+
+(defun yaml-c-alias ()
+ "Documentation string."
+ (yaml--frame "c-alias" (yaml--chr ?\*)))
+
+(defun yaml-ns-single-char ()
+ "Documentation string."
+ (yaml--frame "ns-single-char"
+ (yaml--but (lambda () (yaml-nb-single-char))
+ (lambda () (yaml-s-white)))))
+
+(defun yaml-c-l-block-map-implicit-value (n)
+ "Documentation string."
+ (yaml--frame "c-l-block-map-implicit-value"
+ (yaml--all (yaml--chr ?\:)
+ (yaml--any (yaml-s-l+block-node n "block-out")
+ (yaml--all (yaml-e-node)
(yaml-s-l-comments))))))
+
+(defun yaml-ns-uri-char ()
+ "Documentation string."
+ (yaml--frame "ns-uri-char"
+ (yaml--any (yaml--all (yaml--chr ?\%) (yaml-ns-hex-digit)
(yaml-ns-hex-digit))
+ (yaml-ns-word-char)
+ (yaml--chr ?\#)
+ (yaml--chr ?\;)
+ (yaml--chr ?\/)
+ (yaml--chr ?\?)
+ (yaml--chr ?\:)
+ (yaml--chr ?\@)
+ (yaml--chr ?\&)
+ (yaml--chr ?\=)
+ (yaml--chr ?\+)
+ (yaml--chr ?\$)
+ (yaml--chr ?\,)
+ (yaml--chr ?\_)
+ (yaml--chr ?\.)
+ (yaml--chr ?\!)
+ (yaml--chr ?\~)
+ (yaml--chr ?\*)
+ (yaml--chr ?\')
+ (yaml--chr ?\()
+ (yaml--chr ?\))
+ (yaml--chr ?\[)
+ (yaml--chr ?\]))))
+
+(defun yaml-ns-esc-16-bit ()
+ "Documentation string."
+ (yaml--frame "ns-esc-16-bit"
+ (yaml--all (yaml--chr ?u)
+ (yaml--rep 4 4 #'yaml-ns-hex-digit))))
+
+(defun yaml-l-nb-spaced-lines (n)
+ "Documentation string."
+ (yaml--frame "l-nb-spaced-lines"
+ (yaml--all (yaml-s-nb-spaced-text n)
+ (yaml--rep2 0 nil (lambda () (yaml--all
(yaml-b-l-spaced n)
+
(yaml-s-nb-spaced-text n)))))))
+
+(defun yaml-ns-plain (n c)
+ "Documentation string."
+ (yaml--frame "ns-plain"
+ (cond ((equal c "block-key") (yaml-ns-plain-one-line c))
+ ((equal c "flow-in") (yaml-ns-plain-multi-line n c))
+ ((equal c "flow-key") (yaml-ns-plain-one-line c))
+ ((equal c "flow-out") (yaml-ns-plain-multi-line n c)))))
+
+(defun yaml-c-printable ()
+ "Documentation string."
+ (yaml--frame "c-printable"
+ (yaml--any (yaml--chr ?\x09)
+ (yaml--chr ?\x0A)
+ (yaml--chr ?\x0D)
+ (yaml--chr-range ?\x20 ?\x7E)
+ (yaml--chr ?\x85)
+ (yaml--chr-range ?\xA0 ?\xD7FF)
+ (yaml--chr-range ?\xE000 ?\xFFFD)
+ (yaml--chr-range ?\x010000 ?\x10FFFF))))
+
+(defun yaml-c-mapping-value ()
+ "Documentation string."
+ (yaml--frame "c-mapping-value" (yaml--chr ?\:)))
+
+(defun yaml-l-nb-literal-text (n)
+ "Documentation string."
+ (yaml--frame "l-nb-literal-text"
+ (yaml--all (yaml--rep2 0 nil (lambda () (yaml-l-empty n
"block-in")))
+ (yaml-s-indent n)
+ (yaml--rep 1 nil (lambda () (yaml-nb-char))))))
+
+(defun yaml-ns-plain-char (c)
+ "Documentation string."
+ (yaml--frame "ns-plain-char"
+ (yaml--any (yaml--but (lambda () (yaml-ns-plain-safe c))
+ (lambda () (yaml--chr ?\:))
+ (lambda () (yaml--chr ?\#)))
+ (yaml--all (yaml--chk "<=" (yaml-ns-char))
+ (yaml--chr ?\#))
+ (yaml--all (yaml--chr ?\:)
+ (yaml--chk "=" (yaml-ns-plain-safe c))))))
+
+(defun yaml-ns-anchor-char ()
+ "Documentation string."
+ (yaml--frame "ns-anchor-char"
+ (yaml--but (lambda () (yaml-ns-char))
+ (lambda () (yaml-c-flow-indicator)))))
+
+(defun yaml-s-l+block-scalar (n c)
+ "Documentation string."
+ (yaml--frame "s-l+block-scalar"
+ (yaml--all (yaml-s-separate (+ n 1) c)
+ (yaml--rep 0 1 (lambda () (yaml--all
(yaml-c-ns-properties (+ n 1) c)
+
(yaml-s-separate (+ n 1) c))))
+ (yaml--any (yaml-c-l+literal n)
+ (yaml-c-l+folded n)))))
+
+(defun yaml-ns-plain-safe-in ()
+ "Documentation string."
+ (yaml--frame "ns-plain-safe-in"
+ (yaml--but (lambda () (yaml-ns-char))
+ (lambda () (yaml-c-flow-indicator)))))
+
+(defun yaml-nb-single-text (n c)
+ "Documentation string."
+ (yaml--frame "nb-single-text"
+ (cond ((equal c "block-key") (yaml-nb-single-one-line))
+ ((equal c "flow-in") (yaml-nb-single-multi-line n))
+ ((equal c "flow-key") (yaml-nb-single-one-line))
+ ((equal c "flow-out") (yaml-nb-single-multi-line n)))))
+
+(defun yaml-s-indent-le (n)
+ "Documentation string."
+ (yaml--frame "s-indent-le"
+ (yaml--may (yaml--all (yaml--rep2 0 nil (lambda ()
(yaml-s-space)))
+ (<= (length (yaml--match)) n)))))
+
+(defun yaml-ns-esc-carriage-return ()
+ "Documentation string."
+ (yaml--frame "ns-esc-carriage-return" (yaml--chr ?\r)))
+
+(defun yaml-l-chomped-empty (n t)
+ "Documentation string."
+ (yaml--frame "l-chomped-empty"
+ (cond ((equal t "clip") (yaml-l-strip-empty n))
+ ((equal t "keep") (yaml-l-keep-empty n))
+ ((equal t "strip") (yaml-l-strip-empty n)))))
+
+(defun yaml-c-s-implicit-json-key (c)
+ "Documentation string."
+ (yaml--frame "c-s-implicit-json-key"
+ (yaml--all (yaml--max 1024)
+ (yaml-c-flow-json-node nil c)
+ (yaml--rep 0 1 (lambda ()
(yaml-s-separate-in-line))))))
+
+(defun yaml-b-as-space ()
+ "Documentation string."
+ (yaml--frame "b-as-space" (yaml-b-break)))
+
+(defun yaml-ns-s-flow-seq-entries (n c)
+ "Documentation string."
+ (yaml--frame "ns-s-flow-seq-entries"
+ (yaml--all (yaml-ns-flow-seq-entry n c)
+ (yaml--rep 0 1 (lambda () (yaml-s-separate n c)))
+ (yaml--rep 0 1 (lambda () (yaml--all (yaml--chr ?\,)
+ (yaml--rep 0 1
(lambda () (yaml-s-separate n c)))
+ (yaml--rep 0 1
(lambda () (yaml-ns-s-flow-seq-entries n c)))))))))
+
+(defun yaml-l-block-map-explicit-value (n)
+ "Documentation string."
+ (yaml--frame "l-block-map-explicit-value"
+ (yaml--all (yaml-s-indent n)
+ (yaml--chr ?\:)
+ (yaml-s-l+block-indented n "block-out"))))
+
+(defun yaml-c-ns-flow-map-json-key-entry (n c)
+ "Documentation string."
+ (yaml--frame "c-ns-flow-map-json-key-entry"
+ (yaml--all (yaml-c-flow-json-node n c)
+ (yaml--any (yaml--all (yaml--rep 0 1 (lambda ()
(yaml-s-separate n c)))
+
(yaml-c-ns-flow-map-adjacent-value n c))
+ (yaml-e-node)))))
+
+(defun yaml-c-sequence-entry ()
+ "Documentation string."
+ (yaml--frame "c-sequence-entry"
+ (yaml--chr ?\-)))
+
+(defun yaml-l-bare-document ()
+ "Documentation string."
+ (yaml--frame "l-bare-document"
+ (yaml--all (yaml--exclude "c-forbidden")
+ (yaml-s-l+block-node -1 "block-in"))))
+
+(defun yaml-b-chomped-last (t)
+ "Documentation string."
+ (yaml--frame "b-chomped-last"
+ (cond ((equal t "clip") (yaml--any (yaml-b-as-line-feed)
(yaml--end-of-stream)))
+ ((equal t "keep") (yaml--any (yaml-b-as-line-feed)
(yaml--end-of-stream)))
+ ((equal t "strip") (yaml--any (yaml-b-non-content)
(yaml--end-of-stream))))))
+
+(defun yaml-b-chomped-last (t)
+ "Documentation string."
+ (yaml--frame "b-chomped-last"
+ (cond ((equal t "clip") (yaml--any (yaml-b-as-line-feed)
(yaml--end-of-stream)))
+ ((equal t "keep") (yaml--any (yaml-b-as-line-feed)
(yaml--end-of-stream)))
+ ((equal t "strip") (yaml--any (yaml-b-non-content)
(yaml--end-of-stream))))))
+
+(defun yaml-l-trail-comments (n)
+ "Documentation string."
+ (yaml--frame "l-trail-comments"
+ (yaml--all (yaml-s-indent-lt n)
+ (yaml-c-nb-comment-text)
+ (yaml-b-comment)
+ (yaml--rep2 0 nil (lambda () (yaml-l-comment))))))
+
+(defun yaml-ns-flow-map-yaml-key-entry (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-map-yaml-key-entry"
+ (yaml--all (yaml-ns-flow-yaml-node n c)
+ (yaml--any (yaml--all (yaml--rep 0 1 (lambda ()
(yaml-s-separate n c)))
+
(yaml-c-ns-flow-map-separate-value n c))
+ (yaml-e-node)))))
+
+(defun yaml-s-indent (n)
+ "Documentation string."
+ (yaml--frame "s-indent" (yaml--rep n n #'yaml-s-space)))
+
+(defun yaml-ns-esc-line-separator ()
+ "Documentation string."
+ (yaml--frame "ns-esc-line-separator" (yaml--chr ?\L)))
+
+(defun yaml-ns-flow-yaml-content (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-yaml-content"
+ (yaml-ns-plain n c)))
+
+(defun yaml-ns-flow-yaml-node (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-yaml-node"
+ (yaml--any (yaml-c-ns-alias-node)
+ (yaml-ns-flow-yaml-content n c)
+ (yaml--all (yaml-c-ns-properties n c)
+ (yaml--any (yaml--all (yaml-s-separate n
c) (yaml-ns-flow-yaml-content n c)) (yaml-e-scalar))))))
+
+(defun yaml-ns-yaml-version ()
+ "Documentation string."
+ (yaml--frame "ns-yaml-version"
+ (yaml--all (yaml--rep 1 nil (lambda () (yaml-ns-dec-digit)))
+ (yaml--chr ?\.)
+ (yaml--rep 1 nil (lambda () (yaml-ns-dec-digit))))))
+
+(defun yaml-c-folded ()
+ "Documentation string."
+ (yaml--frame "c-folded" (yaml--chr ?\>)))
+
+(defun yaml-c-directives-end ()
+ "Documentation string."
+ (yaml--frame "c-directives-end"
+ (yaml--all (yaml--chr ?\-)
+ (yaml--chr ?\-)
+ (yaml--chr ?\-))))
+
+(defun yaml-s-double-break (n)
+ "Documentation string."
+ (yaml--frame "s-double-break"
+ (yaml--any (yaml-s-double-escaped n)
+ (yaml-s-flow-folded n))))
+
+(defun yaml-s-nb-spaced-text (n)
+ "Documentation string."
+ (yaml--frame "s-nb-spaced-text"
+ (yaml--all (yaml-s-indent n)
+ (yaml-s-white)
+ (yaml--rep2 0 nil (lambda () (yaml-nb-char))))))
+
+(defun yaml-l-folded-content (n t)
+ "Documentation string."
+ (yaml--frame "l-folded-content"
+ (yaml--all (yaml--rep 0 1 (lambda () (yaml--all
(yaml-l-nb-diff-lines n)
+
(yaml-b-chomped-last (yaml--state-t)))))
+ (yaml-l-chomped-empty n (yaml--state-t)))))
+
+(defun yaml-nb-ns-plain-in-line (c)
+ "Documentation string."
+ (yaml--frame "nb-ns-plain-in-line"
+ (yaml--rep2 0 nil (lambda ()
+ (yaml--all (yaml--rep2 0 nil (lambda ()
(yaml-s-white)))
+ (yaml-ns-plain-char c))))))
+
+(defun yaml-nb-single-multi-line (n)
+ "Documentation string."
+ (yaml--frame "nb-single-multi-line"
+ (yaml--all (yaml-nb-ns-single-in-line)
+ (yaml--any (yaml-s-single-next-line n)
+ (yaml--rep2 0 nil (lambda ()
(yaml-s-white)))))))
+
+(defun yaml-l-document-suffix ()
+ "Documentation string."
+ (yaml--frame "l-document-suffix"
+ (yaml--all (yaml-c-document-end)
+ (yaml-s-l-comments))))
+
+(defun yaml-c-sequence-start ()
+ "Documentation string."
+ (yaml--frame "c-sequence-start"
+ (yaml--chr ?\[)))
+
+(defun yaml-ns-l-block-map-entry (n)
+ "Documentation string."
+ (yaml--frame "ns-l-block-map-entry"
+ (yaml--any (yaml-c-l-block-map-explicit-entry n)
+ (yaml-ns-l-block-map-implicit-entry n))))
+
+(defun yaml-ns-l-compact-mapping (n)
+ "Documentation string."
+ (yaml--frame "ns-l-compact-mapping"
+ (yaml--all (yaml-ns-l-block-map-entry n)
+ (yaml--rep2 0 nil (lambda () (yaml--all
(yaml-s-indent n)
+
(yaml-ns-l-block-map-entry n)))))))
+
+(defun yaml-ns-esc-space ()
+ "Documentation string."
+ (yaml--frame "ns-esc-space"
+ (yaml--chr ?\x20)))
+
+(defun yaml-ns-esc-vertical-tab ()
+ "Documentation string."
+ (yaml--frame "ns-esc-vertical-tab"
+ (yaml--chr ?v)))
+
+(defun yaml-ns-s-implicit-yaml-key (c)
+ "Documentation string."
+ (yaml--frame "ns-s-implicit-yaml-key"
+ (yaml--all (yaml--max 1024)
+ (yaml-ns-flow-yaml-node nil c)
+ (yaml--rep 0 1 (lambda ()
(yaml-s-separate-in-line))))))
+
+(defun yaml-b-l-folded (n c)
+ "Documentation string."
+ (yaml--frame "b-l-folded"
+ (yaml--any (yaml-b-l-trimmed n c)
+ (yaml-b-as-space))))
+
+(defun yaml-s-l+block-collection (n c)
+ "Documentation string."
+ (yaml--frame "s-l+block-collection"
+ (yaml--all (yaml--rep 0 1 (lambda () (yaml--all (yaml-s-separate (+ n 1) c)
+ (yaml-c-ns-properties (+ n
1) c))))
+ (yaml-s-l-comments)
+ (yaml--any (yaml-l+block-sequence (yaml-seq-spaces n c))
+ (yaml-l+block-mapping n)))))
+
+(defun yaml-c-quoted-quote ()
+ "Documentation string."
+ (yaml--frame "c-quoted-quote"
+ (yaml--all (yaml--chr ?\')
+ (yaml--chr ?\'))))
+
+(defun yaml-l+block-sequence (n)
+ "Documentation string."
+ (yaml--frame "l+block-sequence"
+ (yaml--all (yaml--set m (yaml--auto-detect-indent n))
+ (yaml--rep 1 nil (lambda () (yaml--all
(yaml-s-indent (+ n (yaml--state-m)))
+
(yaml-c-l-block-seq-entry (+ n (yaml--state-m)))))))))
+
+(defun yaml-c-double-quote ()
+ "Documentation string."
+ (yaml--frame "c-double-quote" (yaml--chr ?\")))
+
+(defun yaml-ns-esc-backspace ()
+ "Documentation string."
+ (yaml--frame "ns-esc-backspace" (yaml--chr ?b)))
+
+(defun yaml-c-flow-json-content (n c)
+ "Documentation string."
+ (yaml--frame "c-flow-json-content"
+ (yaml--any (yaml-c-flow-sequence n c)
+ (yaml-c-flow-mapping n c)
+ (yaml-c-single-quoted n c)
+ (yaml-c-double-quoted n c))))
+
+(defun yaml-c-mapping-end ()
+ "Documentation string."
+ (yaml--frame "c-mapping-end" (yaml--chr ?\})))
+
+(defun yaml-nb-single-char ()
+ "Documentation string."
+ (yaml--frame "nb-single-char"
+ (yaml--any (yaml-c-quoted-quote)
+ (yaml--but (lambda () (yaml-nb-json)) (lambda ()
(yaml--chr ?\'))))))
+
+(defun yaml-ns-flow-node (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-node"
+ (yaml--any (yaml-c-ns-alias-node)
+ (yaml-ns-flow-content n c)
+ (yaml--all (yaml-c-ns-properties n c)
+ (yaml--any (yaml--all (yaml-s-separate n
c) (yaml-ns-flow-content n c))
+ (yaml-e-scalar))))))
+
+(defun yaml-c-non-specific-tag ()
+ "Documentation string."
+ (yaml--frame "c-non-specific-tag"
+ (yaml--chr ?\!)))
+
+(defun yaml-l-directive-document ()
+ "Documentation string."
+ (yaml--frame "l-directive-document"
+ (yaml--all (yaml--rep 1 nil (lambda () (yaml-l-directive)))
+ (yaml-l-explicit-document))))
+
+(defun yaml-c-l-block-map-explicit-entry (n)
+ "Documentation string."
+ (yaml--frame "c-l-block-map-explicit-entry"
+ (yaml--all (yaml-c-l-block-map-explicit-key n)
+ (yaml--any (yaml-l-block-map-explicit-value n)
+ (yaml-e-node)))))
+
+(defun yaml-e-node ()
+ "Documentation string."
+ (yaml--frame "e-node" (yaml-e-scalar)))
+
+(defun yaml-seq-spaces (n c)
+ "Documentation string."
+ (yaml--frame "seq-spaces"
+ (cond ((equal c "block-in") n)
+ ((equal c "block-out") (yaml--sub n 1)))))
+
+
+(defun yaml-l-yaml-stream ()
+ "Documentation string."
+ (yaml--frame "l-yaml-stream"
+ (yaml--all (yaml--rep2 0 nil (lambda ()
(yaml-l-document-prefix)))
+ (yaml--rep 0 1 (lambda () (yaml-l-any-document)))
+ (yaml--rep2 0 nil (lambda ()
+ (yaml--any (yaml--all (yaml--rep
1 nil (lambda () (yaml-l-document-suffix)))
+
(yaml--rep2 0 nil (lambda () (yaml-l-document-prefix)))
+ (yaml--rep
0 1 (lambda () (yaml-l-any-document))))
+ (yaml--all
(yaml--rep2 0 nil (lambda () (yaml-l-document-prefix)))
+ (yaml--rep
0 1 (lambda () (yaml-l-explicit-document))))))))))
+
+(defun yaml-nb-double-one-line ()
+ "Documentation string."
+ (yaml--frame "nb-double-one-line"
+ (yaml--rep2 0 nil (lambda () (yaml-nb-double-char)))))
+
+(defun yaml-s-l-comments ()
+ "Documentation string."
+ (yaml--frame "s-l-comments" (yaml--all (yaml--any (yaml-s-b-comment)
+ (yaml--start-of-line))
+ (yaml--rep2 0 nil (lambda ()
(yaml-l-comment))))))
+
+(defun yaml-nb-char ()
+ "Documentation string."
+ (yaml--frame "nb-char"
+ (yaml--but (lambda () (yaml-c-printable))
+ (lambda () (yaml-b-char))
+ (lambda () (yaml-c-byte-order-mark)))))
+
+(defun yaml-ns-plain-first (c)
+ "Documentation string."
+ (yaml--frame "ns-plain-first"
+ (yaml--any (yaml--but (lambda () (yaml-ns-char))
+ (lambda () (yaml-c-indicator)))
+ (yaml--all (yaml--any (yaml--chr ?\?)
+ (yaml--chr ?\:)
+ (yaml--chr ?\-))
+ (yaml--chk "=" (yaml-ns-plain-safe c))))))
+
+(defun yaml-c-ns-esc-char ()
+ "Documentation string."
+ (yaml--frame "c-ns-esc-char"
+ (yaml--all (yaml--chr ?\\)
+ (yaml--any (yaml-ns-esc-null)
+ (yaml-ns-esc-bell)
+ (yaml-ns-esc-backspace)
+ (yaml-ns-esc-horizontal-tab)
+ (yaml-ns-esc-line-feed)
+ (yaml-ns-esc-vertical-tab)
+ (yaml-ns-esc-form-feed)
+ (yaml-ns-esc-carriage-return)
+ (yaml-ns-esc-escape)
+ (yaml-ns-esc-space)
+ (yaml-ns-esc-double-quote)
+ (yaml-ns-esc-slash)
+ (yaml-ns-esc-backslash)
+ (yaml-ns-esc-next-line)
+ (yaml-ns-esc-non-breaking-space)
+ (yaml-ns-esc-line-separator)
+ (yaml-ns-esc-paragraph-separator)
+ (yaml-ns-esc-8-bit)
+ (yaml-ns-esc-16-bit)
+ (yaml-ns-esc-32-bit)))))
+
+(defun yaml-ns-flow-map-entry (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-map-entry"
+ (yaml--any (yaml--all (yaml--chr ?\?)
+ (yaml-s-separate n c)
+ (yaml-ns-flow-map-explicit-entry n c))
+ (yaml-ns-flow-map-implicit-entry n c))))
+
+(defun yaml-l-explicit-document ()
+ "Documentation string."
+ (yaml--frame "l-explicit-document"
+ (yaml--all (yaml-c-directives-end)
+ (yaml--any (yaml-l-bare-document)
+ (yaml--all (yaml-e-node)
+ (yaml-s-l-comments))))))
+
+(defun yaml-s-white ()
+ "Documentation string."
+ (yaml--frame "s-white"
+ (yaml--any (yaml-s-space)
+ (yaml-s-tab))))
+
+(defun yaml-l-keep-empty (n)
+ "Documentation string."
+ (yaml--frame "l-keep-empty"
+ (yaml--all (yaml--rep2 0 nil (lambda () (yaml-l-empty n "block-in")))
+ (yaml--rep 0 1 (lambda () (yaml-l-trail-comments n))))))
+
+(defun yaml-ns-tag-prefix ()
+ "Documentation string."
+ (yaml--frame "ns-tag-prefix"
+ (yaml--any (yaml-c-ns-local-tag-prefix)
+ (yaml-ns-global-tag-prefix))))
+
+(defun yaml-c-l+folded (n)
+ "Documentation string."
+ (yaml--frame "c-l+folded"
+ (yaml--all (yaml--chr ?\>) (yaml-c-b-block-header (yaml--state-m)
(yaml--state-t))
+ (yaml-l-folded-content (+ n (yaml--state-m)) (yaml--state-t)))))
+
+(defun yaml-ns-directive-name ()
+ "Documentation string."
+ (yaml--frame "ns-directive-name"
+ (yaml--rep 1 nil (lambda () (yaml-ns-char)))))
+
+(defun yaml-b-char ()
+ "Documentation string."
+ (yaml--frame "b-char"
+ (yaml--any (yaml-b-line-feed)
+ (yaml-b-carriage-return))))
+
+(defun yaml-ns-plain-multi-line (n c)
+ "Documentation string."
+ (yaml--frame "ns-plain-multi-line"
+ (yaml--all (yaml-ns-plain-one-line c)
+ (yaml--rep2 0 nil (lambda () (yaml-s-ns-plain-next-line n
c))))))
+
+(defun yaml-ns-char ()
+ "Documentation string."
+ (yaml--frame "ns-char"
+ (yaml--but (lambda () (yaml-nb-char))
+ (lambda () (yaml-s-white)))))
+
+(defun yaml-s-space ()
+ "Documentation string."
+ (yaml--frame "s-space" (yaml--chr ?\x20)))
+
+(defun yaml-c-l-block-seq-entry (n)
+ "Documentation string."
+ (yaml--frame "c-l-block-seq-entry"
+ (yaml--all (yaml--chr ?\-)
+ (yaml--chk "!" (yaml-ns-char))
+ (yaml-s-l+block-indented n "block-in"))))
+
+(defun yaml-c-ns-properties (n c)
+ "Documentation string."
+ (yaml--frame "c-ns-properties"
+ (yaml--any (yaml--all (yaml-c-ns-tag-property)
+ (yaml--rep 0 1 (lambda () (yaml--all
(yaml-s-separate n c)
+
(yaml-c-ns-anchor-property)))))
+ (yaml--all (yaml-c-ns-anchor-property)
+ (yaml--rep 0 1 (lambda () (yaml--all
(yaml-s-separate n c)
+
(yaml-c-ns-tag-property))))))))
+
+(defun yaml-ns-directive-parameter ()
+ "Documentation string."
+ (yaml--frame "ns-directive-parameter"
+ (yaml--rep 1 nil (lambda () (yaml-ns-char)))))
+
+(defun yaml-c-chomping-indicator (t)
+ "Documentation string."
+ (yaml--frame "c-chomping-indicator"
+ (yaml--any (yaml--set t (yaml-strip))
+ (yaml--set t (yaml-keep))
+ (yaml--set t (yaml-clip)))))
+
+(defun yaml-ns-global-tag-prefix ()
+ "Documentation string."
+ (yaml--frame "ns-global-tag-prefix"
+ (yaml--all (yaml-ns-tag-char)
+ (yaml--rep2 0 nil (lambda () (yaml-ns-uri-char))))))
+
+(defun yaml-c-ns-flow-pair-json-key-entry (n c)
+ "Documentation string."
+ (yaml--frame "c-ns-flow-pair-json-key-entry"
+ (yaml--all (yaml-c-s-implicit-json-key (yaml-flow-key))
+ (yaml-c-ns-flow-map-adjacent-value n c))))
+
+(defun yaml-l-literal-content (n t)
+ "Documentation string."
+ (yaml--frame "l-literal-content"
+ (yaml--all (yaml--rep 0 1 (lambda () (yaml--all (yaml-l-nb-literal-text n)
(yaml--rep2 0 nil (lambda () (yaml-b-nb-literal-next n))) (yaml-b-chomped-last
(yaml--state-t)))))
+ (yaml-l-chomped-empty n (yaml--state-t)))))
+
+(defun yaml-c-document-end ()
+ "Documentation string."
+ (yaml--frame "c-document-end"
+ (yaml--all (yaml--chr ?\.) (yaml--chr ?\.) (yaml--chr ?\.))))
+
+(defun yaml-nb-double-text (n c)
+ "Documentation string."
+ (yaml--frame "nb-double-text"
+ (cond ((equal c "block-key") (yaml-nb-double-one-line))
+ ((equal c "flow-in") (yaml-nb-double-multi-line n))
+ ((equal c "flow-key") (yaml-nb-double-one-line))
+ ((equal c "flow-out") (yaml-nb-double-multi-line n)))))
+
+(defun yaml-s-b-comment ()
+ "Documentation string."
+ (yaml--frame "s-b-comment"
+ (yaml--all (yaml--rep 0 1 (lambda () (yaml--all (yaml-s-separate-in-line)
+ (yaml--rep 0 1 (lambda ()
(yaml-c-nb-comment-text))))))
+ (yaml-b-comment))))
+
+(defun yaml-s-block-line-prefix (n)
+ "Documentation string."
+ (yaml--frame "s-block-line-prefix"
+ (yaml-s-indent n)))
+
+(defun yaml-c-tag-handle ()
+ "Documentation string."
+ (yaml--frame "c-tag-handle"
+ (yaml--any (yaml-c-named-tag-handle)
+ (yaml-c-secondary-tag-handle)
+ (yaml-c-primary-tag-handle))))
+
+(defun yaml-ns-plain-one-line (c)
+ "Documentation string."
+ (yaml--frame "ns-plain-one-line"
+ (yaml--all (yaml-ns-plain-first c)
+ (yaml-nb-ns-plain-in-line c))))
+
+(defun yaml-nb-json ()
+ "Documentation string."
+ (yaml--frame "nb-json"
+ (yaml--any (yaml--chr ?\x09) (yaml--chr-range ?\x20 ?\x10FFFF))))
+
+(defun yaml-s-ns-plain-next-line (n c)
+ "Documentation string."
+ (yaml--frame "s-ns-plain-next-line"
+ (yaml--all (yaml-s-flow-folded n)
+ (yaml-ns-plain-char c)
+ (yaml-nb-ns-plain-in-line c))))
+
+(defun yaml-c-reserved ()
+ "Documentation string."
+ (yaml--frame "c-reserved"
+ (yaml--any (yaml--chr ?\@) (yaml--chr ?\`))))
+
+(defun yaml-b-l-trimmed (n c)
+ "Documentation string."
+ (yaml--frame "b-l-trimmed"
+ (yaml--all (yaml-b-non-content)
+ (yaml--rep 1 nil (lambda () (yaml-l-empty n c))))))
+
+(defun yaml-l-document-prefix ()
+ "Documentation string."
+ (yaml--frame "l-document-prefix"
+ (yaml--all (yaml--rep 0 1 (lambda () (yaml-c-byte-order-mark)))
+ (yaml--rep2 0 nil (lambda () (yaml-l-comment))))))
+
+(defun yaml-c-byte-order-mark ()
+ "Documentation string."
+ (yaml--frame "c-byte-order-mark"
+ (yaml--chr ?\xFEFF)))
+
+(defun yaml-c-anchor ()
+ "Documentation string."
+ (yaml--frame "c-anchor"
+ (yaml--chr ?\&)))
+
+(defun yaml-s-double-escaped (n)
+ "Documentation string."
+ (yaml--frame "s-double-escaped"
+ (yaml--all (yaml--rep2 0 nil (lambda () (yaml-s-white)))
+ (yaml--chr ?\\)
+ (yaml-b-non-content)
+ (yaml--rep2 0 nil (lambda () (yaml-l-empty n "flow-in")))
+ (yaml-s-flow-line-prefix n))))
+
+(defun yaml-ns-esc-32-bit ()
+ "Documentation string."
+ (yaml--frame "ns-esc-32-bit"
+ (yaml--all
+ (yaml--chr ?U)
+ (yaml--rep 8 8 #'yaml-ns-hex-digit))))
+
+(defun yaml-b-non-content ()
+ "Documentation string."
+ (yaml--frame "b-non-content" (yaml-b-break)))
+
+(defun yaml-ns-tag-char ()
+ "Documentation string."
+ (yaml--frame "ns-tag-char"
+ (yaml--but (lambda () (yaml-ns-uri-char))
+ (lambda () (yaml--chr ?\!))
+ (lambda () (yaml-c-flow-indicator)))))
+
+(defun yaml-b-carriage-return ()
+ "Documentation string."
+ (yaml--frame "b-carriage-return"
+ (yaml--chr ?\x0D)))
+
+(defun yaml-s-double-next-line (n)
+ "Documentation string."
+ (yaml--frame "s-double-next-line"
+ (yaml--all (yaml-s-double-break n)
+ (yaml--rep 0 1 (lambda () (yaml--all (yaml-ns-double-char)
+ (yaml-nb-ns-double-in-line)
+ (yaml--any
(yaml-s-double-next-line n)
+ (yaml--rep2 0
nil (lambda () (yaml-s-white))))))))))
+
+(defun yaml-ns-esc-non-breaking-space ()
+ "Documentation string."
+ (yaml--frame "ns-esc-non-breaking-space"
+ (yaml--chr ?\_)))
+
+(defun yaml-l-nb-diff-lines (n)
+ "Documentation string."
+ (yaml--frame "l-nb-diff-lines"
+ (yaml--all (yaml-l-nb-same-lines )
+ (yaml--rep2 0 nil (lambda () (yaml--all (yaml-b-as-line-feed)
(yaml-l-nb-same-lines n)))))))
+
+(defun yaml-s-flow-folded (n)
+ "Documentation string."
+ (yaml--frame "s-flow-folded"
+ (yaml--all (yaml--rep 0 1 (lambda () (yaml-s-separate-in-line)))
+ (yaml-b-l-folded n "flow-in")
+ (yaml-s-flow-line-prefix n))))
+
+(defun yaml-ns-flow-map-explicit-entry (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-map-explicit-entry"
+ (yaml--any (yaml-ns-flow-map-implicit-entry n c)
+ (yaml--all (yaml-e-node) (yaml-e-node)))))
+
+(defun yaml-ns-l-block-map-implicit-entry (n)
+ "Documentation string."
+ (yaml--frame "ns-l-block-map-implicit-entry"
+ (yaml--all (yaml--any (yaml-ns-s-block-map-implicit-key)
+ (yaml-e-node))
+ (yaml-c-l-block-map-implicit-value n))))
+
+(defun yaml-l-nb-folded-lines (n)
+ "Documentation string."
+ (yaml--frame "l-nb-folded-lines"
+ (yaml--all (yaml-s-nb-folded-text n)
+ (yaml--rep2 0 nil (lambda () (yaml--all (yaml-b-l-folded n
"block-in")
+ (yaml-s-nb-folded-text
n)))))))
+
+(defun yaml-c-l-block-map-explicit-key (n)
+ "Documentation string."
+ (yaml--frame "c-l-block-map-explicit-key"
+ (yaml--all (yaml--chr ?\?)
+ (yaml-s-l+block-indented n "block-out"))))
+
+(defun yaml-s-separate (n c)
+ "Documentation string."
+ (yaml--frame "s-separate"
+ (cond ((equal c "block-in") (yaml-s-separate-lines n))
+ ((equal c "block-key") (yaml-s-separate-in-line))
+ ((equal c "block-out") (yaml-s-separate-lines n))
+ ((equal c "flow-in") (yaml-s-separate-lines n))
+ ((equal c "flow-key") (yaml-s-separate-in-line))
+ ((equal c "flow-out") (yaml-s-separate-lines n)))))
+
+(defun yaml-ns-flow-pair-entry (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-pair-entry"
+ (yaml--any (yaml-ns-flow-pair-yaml-key-entry n c)
+ (yaml-c-ns-flow-map-empty-key-entry n c)
+ (yaml-c-ns-flow-pair-json-key-entry n c))))
+
+(defun yaml-c-flow-indicator ()
+ "Documentation string."
+ (yaml--frame "c-flow-indicator"
+ (yaml--any (yaml--chr ?\,)
+ (yaml--chr ?\[)
+ (yaml--chr ?\])
+ (yaml--chr ?\{)
+ (yaml--chr ?\}))))
+
+(defun yaml-ns-flow-pair-yaml-key-entry (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-pair-yaml-key-entry"
+ (yaml--all (yaml-ns-s-implicit-yaml-key (yaml-flow-key))
+ (yaml-c-ns-flow-map-separate-value n c))))
+
+(defun yaml-e-scalar ()
+ "Documentation string."
+ (yaml--frame "e-scalar"
+ (yaml--empty)))
+
+(defun yaml-s-indent-lt (n)
+ "Documentation string."
+ (yaml--frame "s-indent-lt"
+ (yaml--may (yaml--all (yaml--rep2 0 nil (lambda () (yaml-s-space)))
+ (< (length (yaml--match)) n)))))
+
+(defun yaml-nb-single-one-line ()
+ "Documentation string."
+ (yaml--frame "nb-single-one-line"
+ (yaml--rep2 0 nil (lambda () (yaml-nb-single-char)))))
+
+(defun yaml-c-collect-entry ()
+ "Documentation string."
+ (yaml--frame "c-collect-entry" (yaml--chr ?\,)))
+
+(defun yaml-ns-l-compact-sequence (n)
+ "Documentation string."
+ (yaml--frame "ns-l-compact-sequence"
+ (yaml--all (yaml-c-l-block-seq-entry n)
+ (yaml--rep2 0 nil (lambda () (yaml--all (yaml-s-indent n)
+
(yaml-c-l-block-seq-entry n)))))))
+
+(defun yaml-c-comment ()
+ "Documentation string."
+ (yaml--frame "c-comment" (yaml--chr ?\#)))
+
+(defun yaml-s-line-prefix (n c)
+ "Documentation string."
+ (yaml--frame "s-line-prefix"
+ (cond ((equal c "block-in") (yaml-s-block-line-prefix n))
+ ((equal c "block-out") (yaml-s-block-line-prefix n))
+ ((equal c "flow-in") (yaml-s-flow-line-prefix n))
+ ((equal c "flow-out") (yaml-s-flow-line-prefix n)))))
+
+(defun yaml-s-tab ()
+ "Documentation string."
+ (yaml--frame "s-tab" (yaml--chr ?\x09)))
+
+(defun yaml-c-directive ()
+ "Documentation string."
+ (yaml--frame "c-directive" (yaml--chr ?\%)))
+
+(defun yaml-ns-flow-pair (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-pair"
+ (yaml--any (yaml--all (yaml--chr ?\?)
+ (yaml-s-separate n c)
+ (yaml-ns-flow-map-explicit-entry n c))
+ (yaml-ns-flow-pair-entry n c))))
+
+(defun yaml-s-l+block-indented (n c)
+ "Documentation string."
+ (yaml--frame "s-l+block-indented"
+ (yaml--any (yaml--all (yaml-s-indent (yaml--state-m))
+ (yaml--any (yaml-ns-l-compact-sequence (+ n (+ 1
(yaml--state-m))))
+ (yaml-ns-l-compact-mapping (+ n (+ 1
(yaml--state-m))))))
+ (yaml-s-l+block-node n c)
+ (yaml--all (yaml-e-node)
+ (yaml-s-l-comments)))))
+
+(defun yaml-c-single-quote ()
+ "Documentation string."
+ (yaml--frame "c-single-quote"
+ (yaml--chr ?\')))
+
+(defun yaml-s-flow-line-prefix (n)
+ "Documentation string."
+ (yaml--frame "s-flow-line-prefix"
+ (yaml--all (yaml-s-indent n)
+ (yaml--rep 0 1 (lambda () (yaml-s-separate-in-line))))))
+
+(defun yaml-nb-double-char ()
+ "Documentation string."
+ (yaml--frame "nb-double-char"
+ (yaml--any (yaml-c-ns-esc-char)
+ (yaml--but (lambda () (yaml-nb-json))
+ (lambda () (yaml--chr ?\\))
+ (lambda () (yaml--chr ?\"))))))
+
+(defun yaml-l-comment ()
+ "Documentation string."
+ (yaml--frame "l-comment"
+ (yaml--all (yaml-s-separate-in-line)
+ (yaml--rep 0 1 (lambda () (yaml-c-nb-comment-text)))
+ (yaml-b-comment))))
+
+(defun yaml-ns-hex-digit ()
+ "Documentation string."
+ (yaml--frame "ns-hex-digit"
+ (yaml--any (yaml-ns-dec-digit)
+ (yaml--chr-range ?\x41 ?\x46)
+ (yaml--chr-range ?\x61 ?\x66))))
+
+(defun yaml-s-l+flow-in-block (n)
+ "Documentation string."
+ (yaml--frame "s-l+flow-in-block"
+ (yaml--all (yaml-s-separate (+ n 1) "flow-out")
+ (yaml-ns-flow-node (+ n 1) "flow-out")
+ (yaml-s-l-comments))))
+
+(defun yaml-s-l+flow-in-block (n)
+ "Documentation string."
+ (yaml--frame "s-l+flow-in-block"
+ (yaml--all (yaml-s-separate (+ n 1) "flow-out")
+ (yaml-ns-flow-node (+ n 1) "flow-out")
+ (yaml-s-l-comments))))
+
+(defun yaml-c-flow-json-node (n c)
+ "Documentation string."
+ (yaml--frame "c-flow-json-node"
+ (yaml--all (yaml--rep 0 1 (lambda () (yaml--all (yaml-c-ns-properties n c)
(yaml-s-separate n c))))
+ (yaml-c-flow-json-content n c))))
+
+(defun yaml-c-b-block-header (m t)
+ "Documentation string."
+ (yaml--frame "c-b-block-header"
+ (yaml--all (yaml--any (yaml--all (yaml-c-indentation-indicator
(yaml--state-m))
+ (yaml-c-chomping-indicator
(yaml--state-t)))
+ (yaml--all (yaml-c-chomping-indicator
(yaml--state-t))
+ (yaml-c-indentation-indicator
(yaml--state-m))))
+ (yaml-s-b-comment))))
+
+(defun yaml-ns-esc-8-bit ()
+ "Documentation string."
+ (yaml--frame "ns-esc-8-bit"
+ (yaml--all (yaml--chr ?x)
+ (yaml--rep 2 2 #'yaml-ns-hex-digit))))
+
+(defun yaml-ns-anchor-name ()
+ "Documentation string."
+ (yaml--frame "ns-anchor-name"
+ (yaml--rep 1 nil (lambda () (yaml-ns-anchor-char)))))
+
+(defun yaml-ns-esc-slash ()
+ "Documentation string."
+ (yaml--frame "ns-esc-slash" (yaml--chr ?\/)))
+
+(defun yaml-s-nb-folded-text (n)
+ "Documentation string."
+ (yaml--frame "s-nb-folded-text"
+ (yaml--all (yaml-s-indent n)
+ (yaml-ns-char)
+ (yaml--rep2 0 nil (lambda () (yaml-nb-char))))))
+
+(defun yaml-ns-word-char ()
+ "Documentation string."
+ (yaml--frame "ns-word-char"
+ (yaml--any (yaml-ns-dec-digit)
+ (yaml-ns-ascii-letter)
+ (yaml--chr ?\-))))
+
+(defun yaml-ns-esc-form-feed ()
+ "Documentation string."
+ (yaml--frame "ns-esc-form-feed" (yaml--chr ?\f)))
+
+(defun yaml-ns-s-block-map-implicit-key ()
+ "Documentation string."
+ (yaml--frame "ns-s-block-map-implicit-key"
+ (yaml--any (yaml-c-s-implicit-json-key "block-key")
+ (yaml-ns-s-implicit-yaml-key "block-key"))))
+
+(defun yaml-ns-esc-null ()
+ "Documentation string."
+ (yaml--frame "ns-esc-null" (yaml--chr ?0)))
+
+(defun yaml-c-ns-tag-property ()
+ "Documentation string."
+ (yaml--frame "c-ns-tag-property"
+ (yaml--any (yaml-c-verbatim-tag)
+ (yaml-c-ns-shorthand-tag)
+ (yaml-c-non-specific-tag))))
+
+(defun yaml-c-ns-local-tag-prefix ()
+ "Documentation string."
+ (yaml--frame "c-ns-local-tag-prefix"
+ (yaml--all
+ (yaml--chr ?\!)
+ (yaml--rep2 0 nil (lambda () (yaml-ns-uri-char))))))
+
+(defun yaml-ns-tag-directive ()
+ "Documentation string."
+ (yaml--frame "ns-tag-directive"
+ (yaml--all (yaml--chr ?T)
+ (yaml--chr ?A)
+ (yaml--chr ?G)
+ (yaml-s-separate-in-line)
+ (yaml-c-tag-handle)
+ (yaml-s-separate-in-line)
+ (yaml-ns-tag-prefix))))
+
+(defun yaml-c-flow-mapping (n c)
+ "Documentation string."
+ (yaml--frame "c-flow-mapping"
+ (yaml--all (yaml--chr ?\{)
+ (yaml--rep 0 1 (lambda () (yaml-s-separate n c)))
+ (yaml--rep 0 1 (lambda () (yaml-ns-s-flow-map-entries n
(yaml-in-flow c))))
+ (yaml--chr ?\}))))
+
+(defun yaml-ns-double-char ()
+ "Documentation string."
+ (yaml--frame "ns-double-char"
+ (yaml--but (lambda () (yaml-nb-double-char))
+ (lambda () (yaml-s-white)))))
+
+(defun yaml-ns-ascii-letter ()
+ "Documentation string."
+ (yaml--frame "ns-ascii-letter"
+ (yaml--any (yaml--chr-range ?\x41 ?\x5A)
+ (yaml--chr-range ?\x61 ?\x7A))))
+
+(defun yaml-b-break ()
+ "Documentation string."
+ (yaml--frame "b-break"
+ (yaml--any
+ (yaml--all (yaml-b-carriage-return)
+ (yaml-b-line-feed))
+ (yaml-b-carriage-return)
+ (yaml-b-line-feed))))
+
+(defun yaml-nb-ns-double-in-line ()
+ "Documentation string."
+ (yaml--frame "nb-ns-double-in-line"
+ (yaml--rep2 0 nil (lambda () (yaml--all (yaml--rep2 0 nil (lambda ()
(yaml-s-white)))
+ (yaml-ns-double-char))))))
+
+(defun yaml-s-l+block-node (n c)
+ "Documentation string."
+ (yaml--frame "s-l+block-node"
+ (yaml--any (yaml-s-l+block-in-block n c)
+ (yaml-s-l+flow-in-block n))))
+
+(defun yaml-ns-esc-bell ()
+ "Documentation string."
+ (yaml--frame "ns-esc-bell" (yaml--chr ?a)))
+
+(defun yaml-c-named-tag-handle ()
+ "Documentation string."
+ (yaml--frame "c-named-tag-handle"
+ (yaml--all (yaml--chr ?\!)
+ (yaml--rep 1 nil (lambda () (yaml-ns-word-char)))
+ (yaml--chr ?\!))))
+
+(defun yaml-s-separate-lines (n)
+ "Documentation string."
+ (yaml--frame "s-separate-lines"
+ (yaml--any (yaml--all (yaml-s-l-comments)
+ (yaml-s-flow-line-prefix n))
+ (yaml-s-separate-in-line))))
+
+(defun yaml-l-directive ()
+ "Documentation string."
+ (yaml--frame "l-directive"
+ (yaml--all (yaml--chr ?\%)
+ (yaml--any (yaml-ns-yaml-directive)
+ (yaml-ns-tag-directive)
+ (yaml-ns-reserved-directive))
+ (yaml-s-l-comments))))
+
+(defun yaml-ns-esc-escape ()
+ "Documentation string."
+ (yaml--frame "ns-esc-escape"
+ (yaml--chr ?e)))
+
+(defun yaml-b-nb-literal-next (n)
+ "Documentation string."
+ (yaml--frame "b-nb-literal-next"
+ (yaml--all (yaml-b-as-line-feed)
+ (yaml-l-nb-literal-text n))))
+
+(defun yaml-ns-s-flow-map-entries (n c)
+ "Documentation string."
+ (yaml--frame "ns-s-flow-map-entries"
+ (yaml--all (yaml-ns-flow-map-entry n c)
+ (yaml--rep 0 1 (lambda () (yaml-s-separate n c)))
+ (yaml--rep 0 1 (lambda () (yaml--all (yaml--chr ?\,)
+ (yaml--rep 0 1 (lambda ()
(yaml-s-separate n c)))
+ (yaml--rep 0 1 (lambda ()
(yaml-ns-s-flow-map-entries n c)))))))))
+
+(defun yaml-c-nb-comment-text ()
+ "Documentation string."
+ (yaml--frame "c-nb-comment-text"
+ (yaml--all (yaml--chr ?\#)
+ (yaml--rep2 0 nil (lambda () (yaml-nb-char))))))
+
+(defun yaml-ns-dec-digit ()
+ "Documentation string."
+ (yaml--frame "ns-dec-digit"
+ (yaml--chr-range ?\x30 ?\x39)))
+
+(defun yaml-ns-yaml-directive ()
+ "Documentation string."
+ (yaml--frame "ns-yaml-directive"
+ (yaml--all (yaml--chr ?Y)
+ (yaml--chr ?A)
+ (yaml--chr ?M)
+ (yaml--chr ?L)
+ (yaml-s-separate-in-line)
+ (yaml-ns-yaml-version))))
+
+(defun yaml-c-mapping-key ()
+ "Documentation string."
+ (yaml--frame "c-mapping-key"
+ (yaml--chr ?\?)))
+
+(defun yaml-b-as-line-feed ()
+ "Documentation string."
+ (yaml--frame "b-as-line-feed"
+ (yaml-b-break)))
+
+(defun yaml-s-l+block-in-block (n c)
+ "Documentation string."
+ (yaml--frame "s-l+block-in-block"
+ (yaml--any (yaml-s-l+block-scalar n c)
+ (yaml-s-l+block-collection n c))))
+
+(defun yaml-ns-esc-paragraph-separator ()
+ "Documentation string."
+ (yaml--frame "ns-esc-paragraph-separator"
+ (yaml--chr ?\P)))
+
+(defun yaml-c-double-quoted (n c)
+ "Documentation string."
+ (yaml--frame "c-double-quoted"
+ (yaml--all (yaml--chr ?\")
+ (yaml-nb-double-text n c)
+ (yaml--chr ?\"))))
+
+(defun yaml-b-line-feed ()
+ "Documentation string."
+ (yaml--frame "b-line-feed"
+ (yaml--chr ?\x0A)))
+
+(defun yaml-ns-esc-horizontal-tab ()
+ "Documentation string."
+ (yaml--frame "ns-esc-horizontal-tab"
+ (yaml--any (yaml--chr ?t)
+ (yaml--chr ?\x09))))
+
+(defun yaml-c-ns-flow-map-empty-key-entry (n c)
+ "Documentation string."
+ (yaml--frame "c-ns-flow-map-empty-key-entry"
+ (yaml--all (yaml-e-node)
+ (yaml-c-ns-flow-map-separate-value n c))))
+
+(defun yaml-l-any-document ()
+ "Documentation string."
+ (yaml--frame "l-any-document"
+ (yaml--any (yaml-l-directive-document)
+ (yaml-l-explicit-document)
+ (yaml-l-bare-document))))
+
+(defun yaml-c-tag ()
+ "Documentation string."
+ (yaml--frame "c-tag"
+ (yaml--chr ?\!)))
+
+(defun yaml-c-escape ()
+ "Documentation string."
+ (yaml--frame "c-escape"
+ (yaml--chr ?\\)))
+
+(defun yaml-c-sequence-end ()
+ "Documentation string."
+ (yaml--frame "c-sequence-end"
+ (yaml--chr ?\])))
+
+(defun yaml-l+block-mapping (n)
+ "Documentation string."
+ (yaml--frame "l+block-mapping"
+ (yaml--all (yaml--set m (yaml--auto-detect-indent n))
+ (yaml--rep 1 nil (lambda () (yaml--all (yaml-s-indent (+ n
(yaml--state-m)))
+
(yaml-ns-l-block-map-entry (+ n (yaml--state-m)))))))))
+
+(defun yaml-c-ns-flow-map-adjacent-value (n c)
+ "Documentation string."
+ (yaml--frame "c-ns-flow-map-adjacent-value"
+ (yaml--all (yaml--chr ?\:)
+ (yaml--any (yaml--all (yaml--rep 0 1 (lambda ()
(yaml-s-separate n c)))
+ (yaml-ns-flow-node n c))
+ (yaml-e-node)))))
+
+(defun yaml-s-single-next-line (n)
+ "Documentation string."
+ (yaml--frame "s-single-next-line"
+ (yaml--all (yaml-s-flow-folded n)
+ (yaml--rep 0 1 (lambda () (yaml--all (yaml-ns-single-char)
+ (yaml-nb-ns-single-in-line)
+ (yaml--any
(yaml-s-single-next-line n)
+ (yaml--rep2 0
nil (lambda () (yaml-s-white))))))))))
+
+(defun yaml-s-separate-in-line ()
+ "Documentation string."
+ (yaml--frame "s-separate-in-line"
+ (yaml--any (yaml--rep 1 nil (lambda () (yaml-s-white)))
+ (yaml--start-of-line))))
+
+(defun yaml-b-comment ()
+ "Documentation string."
+ (yaml--frame "b-comment"
+ (yaml--any (yaml-b-non-content)
+ (yaml--end-of-stream))))
+
+(defun yaml-ns-esc-backslash ()
+ "Documentation string."
+ (yaml--frame "ns-esc-backslash"
+ (yaml--chr ?\\)))
+
+(defun yaml-c-ns-anchor-property ()
+ "Documentation string."
+ (yaml--frame "c-ns-anchor-property"
+ (yaml--all (yaml--chr ?\&)
+ (yaml-ns-anchor-name))))
+
+(defun yaml-ns-plain-safe (c)
+ "Documentation string."
+ (yaml--frame "ns-plain-safe"
+ (cond ((equal c "block-key") (yaml-ns-plain-safe-out))
+ ((equal c "flow-in") (yaml-ns-plain-safe-in))
+ ((equal c "flow-key") (yaml-ns-plain-safe-in))
+ ((equal c "flow-out") (yaml-ns-plain-safe-out)))))
+
+(defun yaml-ns-flow-content (n c)
+ "Documentation string."
+ (yaml--frame "ns-flow-content"
+ (yaml--any (yaml-ns-flow-yaml-content n c)
+ (yaml-c-flow-json-content n c))))
+
+
+(defun yaml-c-ns-flow-map-separate-value (n c)
+ "Documentation string."
+ (yaml--frame "c-ns-flow-map-separate-value"
+ (yaml--all (yaml--chr ?\:)
+ (yaml--chk "!" ((yaml-ns-plain-safe) c))
+ (yaml--any (yaml--all (yaml-s-separate n c) (yaml-ns-flow-node
n c)) (yaml-e-node)))))
+
+(defun yaml-c-ns-flow-map-separate-value
+ (n c)
+ "Documentation string."
+ (yaml--frame "c-ns-flow-map-separate-value"
+ (yaml--all (yaml--chr ?\:)
+ (yaml--chk "!" (yaml-ns-plain-safe c))
+ (yaml--any (yaml--all (yaml-s-separate n c)
+ (yaml-ns-flow-node n c))
+ (yaml-e-node)))))
+
+(defun yaml-in-flow (c)
+ "Documentation string."
+ (yaml--frame "in-flow"
+ (cond ((equal c "block-key") "flow-key")
+ ((equal c "flow-in") "flow-in")
+ ((equal c "flow-key") "flow-key")
+ ((equal c "flow-out") "flow-in"))))
+
+(defun yaml-c-verbatim-tag ()
+ "Documentation string."
+ (yaml--frame "c-verbatim-tag"
+ (yaml--all (yaml--chr ?\!)
+ (yaml--chr ?\<)
+ (yaml--rep 1 nil (lambda () (yaml-ns-uri-char)))
+ (yaml--chr ?\>))))
+
+(defun yaml-c-literal ()
+ "Documentation string."
+ (yaml--frame "c-literal" (yaml--chr ?\|)))
+
+(defun yaml-ns-esc-line-feed ()
+ "Documentation string."
+ (yaml--frame "ns-esc-line-feed"
+ (yaml--chr ?n)))
+
+(defun yaml-nb-double-multi-line (n)
+ "Documentation string."
+ (yaml--frame "nb-double-multi-line"
+ (yaml--all (yaml-nb-ns-double-in-line)
+ (yaml--any (yaml-s-double-next-line n)
+ (yaml--rep2 0 nil (lambda () (yaml-s-white)))))))
+
+(defun yaml-b-l-spaced (n)
+ "Documentation string."
+ (yaml--frame "b-l-spaced"
+ (yaml--all (yaml-b-as-line-feed)
+ (yaml--rep2 0 nil (lambda () (yaml-l-empty n "block-in"))))))
(provide 'yaml)