branch: externals/yaml
commit 837e3e308006c940fdf2d917e10aa62d86b7cfaf
Author: Zachary Romero <zacrom...@posteo.net>
Commit: Zachary Romero <zacrom...@posteo.net>

    Format grammar code
---
 yaml.el | 886 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 750 insertions(+), 136 deletions(-)

diff --git a/yaml.el b/yaml.el
index 1c1f221b0f..128069aa5f 100644
--- a/yaml.el
+++ b/yaml.el
@@ -1290,7 +1290,8 @@ Rules for this function are defined by the yaml-spec JSON 
file."
                                          (yaml--parse-from-grammar 
'c-ns-flow-map-adjacent-value n c))
                               (yaml--parse-from-grammar 'e-node))))))
 
-   ((eq state 'c-sequence-entry) (yaml--frame "c-sequence-entry" (yaml--chr 
?\-)))
+   ((eq state 'c-sequence-entry)
+    (yaml--frame "c-sequence-entry" (yaml--chr ?\-)))
 
    ((eq state 'l-bare-document)
     (yaml--frame "l-bare-document"
@@ -1312,8 +1313,21 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                (yaml--any (yaml--parse-from-grammar 'b-non-content)
                           (yaml--end-of-stream)))))))
 
-   ((eq state 'l-trail-comments) (let ((n (nth 0 args))) (yaml--frame 
"l-trail-comments" (yaml--all (yaml--parse-from-grammar 's-indent-lt n) 
(yaml--parse-from-grammar 'c-nb-comment-text) (yaml--parse-from-grammar 
'b-comment) (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'l-comment)))))))
-   ((eq state 'ns-flow-map-yaml-key-entry) (let ((n (nth 0 args)) (c (nth 1 
args))) (yaml--frame "ns-flow-map-yaml-key-entry" (yaml--all 
(yaml--parse-from-grammar 'ns-flow-yaml-node n c) (yaml--any (yaml--all 
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 's-separate n c))) 
(yaml--parse-from-grammar 'c-ns-flow-map-separate-value n c)) 
(yaml--parse-from-grammar 'e-node))))))
+   ((eq state 'l-trail-comments)
+    (let ((n (nth 0 args)))
+      (yaml--frame "l-trail-comments"
+        (yaml--all (yaml--parse-from-grammar 's-indent-lt n)
+                   (yaml--parse-from-grammar 'c-nb-comment-text)
+                   (yaml--parse-from-grammar 'b-comment)
+                   (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'l-comment)))))))
+
+   ((eq state 'ns-flow-map-yaml-key-entry)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-flow-map-yaml-key-entry"
+        (yaml--all (yaml--parse-from-grammar 'ns-flow-yaml-node n c)
+                   (yaml--any (yaml--all (yaml--rep 0 1 (lambda () 
(yaml--parse-from-grammar 's-separate n c)))
+                                         (yaml--parse-from-grammar 
'c-ns-flow-map-separate-value n c))
+                              (yaml--parse-from-grammar 'e-node))))))
 
    ((eq state 's-indent)
     (let ((n (nth 0 args)))
@@ -1321,7 +1335,9 @@ Rules for this function are defined by the yaml-spec JSON 
file."
       (yaml--frame "s-indent"
         (yaml--rep n n (lambda () (yaml--parse-from-grammar 's-space))))))
 
-   ((eq state 'ns-esc-line-separator) (yaml--frame "ns-esc-line-separator" 
(yaml--chr ?\L)))
+   ((eq state 'ns-esc-line-separator)
+    (yaml--frame "ns-esc-line-separator" (yaml--chr ?\L)))
+
    ((eq state 'ns-flow-yaml-node)
     (let ((n (nth 0 args)) (c (nth 1 args)))
       (yaml--frame "ns-flow-yaml-node"
@@ -1332,11 +1348,32 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                                                     (yaml--parse-from-grammar 
'ns-flow-yaml-content n c))
                                          (yaml--parse-from-grammar 
'e-scalar)))))))
 
-   ((eq state 'ns-yaml-version) (yaml--frame "ns-yaml-version" (yaml--all 
(yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 'ns-dec-digit))) 
(yaml--chr ?\.) (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
'ns-dec-digit))))))
-   ((eq state 'c-folded) (yaml--frame "c-folded" (yaml--chr ?\>)))
-   ((eq state 'c-directives-end) (yaml--frame "c-directives-end" (yaml--all 
(yaml--chr ?\-) (yaml--chr ?\-) (yaml--chr ?\-))))
-   ((eq state 's-double-break) (let ((n (nth 0 args))) (yaml--frame 
"s-double-break" (yaml--any (yaml--parse-from-grammar 's-double-escaped n) 
(yaml--parse-from-grammar 's-flow-folded n)))))
-   ((eq state 's-nb-spaced-text) (let ((n (nth 0 args))) (yaml--frame 
"s-nb-spaced-text" (yaml--all (yaml--parse-from-grammar 's-indent n) 
(yaml--parse-from-grammar 's-white) (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 'nb-char)))))))
+   ((eq state 'ns-yaml-version)
+    (yaml--frame "ns-yaml-version"
+      (yaml--all (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
'ns-dec-digit)))
+                 (yaml--chr ?\.)
+                 (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
'ns-dec-digit))))))
+
+   ((eq state 'c-folded)
+    (yaml--frame "c-folded" (yaml--chr ?\>)))
+
+   ((eq state 'c-directives-end)
+    (yaml--frame "c-directives-end"
+      (yaml--all (yaml--chr ?\-) (yaml--chr ?\-) (yaml--chr ?\-))))
+
+   ((eq state 's-double-break)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-double-break"
+        (yaml--any (yaml--parse-from-grammar 's-double-escaped n)
+                   (yaml--parse-from-grammar 's-flow-folded n)))))
+
+   ((eq state 's-nb-spaced-text)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-nb-spaced-text"
+        (yaml--all (yaml--parse-from-grammar 's-indent n)
+                   (yaml--parse-from-grammar 's-white)
+                   (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'nb-char)))))))
+
    ((eq state 'l-folded-content)
     (let ((n (nth 0 args))
           (tt (nth 1 args)))
@@ -1345,10 +1382,30 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                                     (yaml--all (yaml--parse-from-grammar 
'l-nb-diff-lines n)
                                                (yaml--parse-from-grammar 
'b-chomped-last tt))))
                    (yaml--parse-from-grammar 'l-chomped-empty n tt))))) ;; 
TODO: don't use yaml--state-t here
-   ((eq state 'nb-ns-plain-in-line) (let ((c (nth 0 args))) (yaml--frame 
"nb-ns-plain-in-line" (yaml--rep2 0 nil (lambda () (yaml--all (yaml--rep2 0 nil 
(lambda () (yaml--parse-from-grammar 's-white))) (yaml--parse-from-grammar 
'ns-plain-char c)))))))
-   ((eq state 'nb-single-multi-line) (let ((n (nth 0 args))) (yaml--frame 
"nb-single-multi-line" (yaml--all (yaml--parse-from-grammar 
'nb-ns-single-in-line) (yaml--any (yaml--parse-from-grammar 's-single-next-line 
n) (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 's-white))))))))
-   ((eq state 'l-document-suffix) (yaml--frame "l-document-suffix" (yaml--all 
(yaml--parse-from-grammar 'c-document-end) (yaml--parse-from-grammar 
's-l-comments))))
-   ((eq state 'c-sequence-start) (yaml--frame "c-sequence-start" (yaml--chr 
?\[)))
+
+   ((eq state 'nb-ns-plain-in-line)
+    (let ((c (nth 0 args)))
+      (yaml--frame "nb-ns-plain-in-line"
+        (yaml--rep2 0 nil
+                    (lambda () (yaml--all
+                                (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 's-white)))
+                                (yaml--parse-from-grammar 'ns-plain-char 
c)))))))
+
+   ((eq state 'nb-single-multi-line)
+    (let ((n (nth 0 args)))
+      (yaml--frame "nb-single-multi-line"
+        (yaml--all (yaml--parse-from-grammar 'nb-ns-single-in-line)
+                   (yaml--any (yaml--parse-from-grammar 's-single-next-line n)
+                              (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 's-white))))))))
+
+   ((eq state 'l-document-suffix)
+    (yaml--frame "l-document-suffix"
+      (yaml--all (yaml--parse-from-grammar 'c-document-end)
+                 (yaml--parse-from-grammar 's-l-comments))))
+
+   ((eq state 'c-sequence-start)
+    (yaml--frame "c-sequence-start"
+      (yaml--chr ?\[)))
 
    ((eq state 'ns-l-block-map-entry)
     (yaml--frame "ns-l-block-map-entry"
@@ -1362,8 +1419,10 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                                         (lambda () (yaml--all 
(yaml--parse-from-grammar 's-indent (nth 0 args))
                                                               
(yaml--parse-from-grammar 'ns-l-block-map-entry (nth 0 args))))))))
 
-   ((eq state 'ns-esc-space) (yaml--frame "ns-esc-space" (yaml--chr ?\x20)))
-   ((eq state 'ns-esc-vertical-tab) (yaml--frame "ns-esc-vertical-tab" 
(yaml--chr ?\v)))
+   ((eq state 'ns-esc-space)
+    (yaml--frame "ns-esc-space" (yaml--chr ?\x20)))
+   ((eq state 'ns-esc-vertical-tab)
+    (yaml--frame "ns-esc-vertical-tab" (yaml--chr ?\v)))
 
    ((eq state 'ns-s-implicit-yaml-key)
     (let ((c (nth 0 args)))
@@ -1372,19 +1431,26 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                    (yaml--parse-from-grammar 'ns-flow-yaml-node nil c)
                    (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
's-separate-in-line)))))))
 
-   ((eq state 'b-l-folded) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "b-l-folded" (yaml--any (yaml--parse-from-grammar 'b-l-trimmed n 
c) (yaml--parse-from-grammar 'b-as-space)))))
+   ((eq state 'b-l-folded)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "b-l-folded"
+        (yaml--any (yaml--parse-from-grammar 'b-l-trimmed n c)
+                   (yaml--parse-from-grammar 'b-as-space)))))
 
    ((eq state 's-l+block-collection)
     (yaml--frame "s-l+block-collection"
                  (yaml--all
                   (yaml--rep 0 1
-                             (lambda () (yaml--all (yaml--parse-from-grammar 
's-separate (+ (nth 0 args) 1) (nth 1 args))
-                                                   (yaml--parse-from-grammar 
'c-ns-properties (+ (nth 0 args) 1) (nth 1 args)))))
+                             (lambda () (yaml--all
+                                         (yaml--parse-from-grammar 's-separate 
(+ (nth 0 args) 1) (nth 1 args))
+                                         (yaml--parse-from-grammar 
'c-ns-properties (+ (nth 0 args) 1) (nth 1 args)))))
                   (yaml--parse-from-grammar 's-l-comments)
-                  (yaml--any (yaml--parse-from-grammar 'l+block-sequence 
(yaml--parse-from-grammar 'seq-spaces (nth 0 args) (nth 1 args)))
-                             (yaml--parse-from-grammar 'l+block-mapping (nth 0 
args))))))
+                  (yaml--any
+                   (yaml--parse-from-grammar 'l+block-sequence 
(yaml--parse-from-grammar 'seq-spaces (nth 0 args) (nth 1 args)))
+                   (yaml--parse-from-grammar 'l+block-mapping (nth 0 args))))))
 
-   ((eq state 'c-quoted-quote) (yaml--frame "c-quoted-quote" (yaml--all 
(yaml--chr ?\') (yaml--chr ?\'))))
+   ((eq state 'c-quoted-quote)
+    (yaml--frame "c-quoted-quote" (yaml--all (yaml--chr ?\') (yaml--chr ?\'))))
 
    ((eq state 'l+block-sequence)
     (yaml--frame "l+block-sequence"
@@ -1399,34 +1465,166 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                                  (yaml--parse-from-grammar 's-indent (+ (nth 0 
args) new-m))
                                  (yaml--parse-from-grammar 
'c-l-block-seq-entry (+ (nth 0 args) new-m)))))))))
 
-   ((eq state 'c-double-quote) (yaml--frame "c-double-quote" (yaml--chr ?\")))
-   ((eq state 'ns-esc-backspace) (yaml--frame "ns-esc-backspace" (yaml--chr 
?\b)))
-   ((eq state 'c-flow-json-content) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "c-flow-json-content" (yaml--any (yaml--parse-from-grammar 
'c-flow-sequence n c) (yaml--parse-from-grammar 'c-flow-mapping n c) 
(yaml--parse-from-grammar 'c-single-quoted n c) (yaml--parse-from-grammar 
'c-double-quoted n c)))))
-   ((eq state 'c-mapping-end) (yaml--frame "c-mapping-end" (yaml--chr ?\})))
-   ((eq state 'nb-single-char) (yaml--frame "nb-single-char" (yaml--any 
(yaml--parse-from-grammar 'c-quoted-quote) (yaml--but (lambda () 
(yaml--parse-from-grammar 'nb-json)) (lambda () (yaml--chr ?\'))))))
-   ((eq state 'ns-flow-node) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "ns-flow-node" (yaml--any (yaml--parse-from-grammar 
'c-ns-alias-node) (yaml--parse-from-grammar 'ns-flow-content n c) (yaml--all 
(yaml--parse-from-grammar 'c-ns-properties n c) (yaml--any (yaml--all 
(yaml--parse-from-grammar 's-separate n c) (yaml--parse-from-grammar 
'ns-flow-content n c)) (yaml--parse-from-grammar 'e-scalar)))))))
-   ((eq state 'c-non-specific-tag) (yaml--frame "c-non-specific-tag" 
(yaml--chr ?\!)))
-   ((eq state 'l-directive-document) (yaml--frame "l-directive-document" 
(yaml--all (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
'l-directive))) (yaml--parse-from-grammar 'l-explicit-document))))
-   ((eq state 'c-l-block-map-explicit-entry) (let ((n (nth 0 args))) 
(yaml--frame "c-l-block-map-explicit-entry" (yaml--all 
(yaml--parse-from-grammar 'c-l-block-map-explicit-key n) (yaml--any 
(yaml--parse-from-grammar 'l-block-map-explicit-value n) 
(yaml--parse-from-grammar 'e-node))))))
+   ((eq state 'c-double-quote)
+    (yaml--frame "c-double-quote"
+      (yaml--chr ?\")))
+
+   ((eq state 'ns-esc-backspace)
+    (yaml--frame "ns-esc-backspace"
+      (yaml--chr ?\b)))
+
+   ((eq state 'c-flow-json-content)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "c-flow-json-content"
+        (yaml--any (yaml--parse-from-grammar 'c-flow-sequence n c)
+                   (yaml--parse-from-grammar 'c-flow-mapping n c)
+                   (yaml--parse-from-grammar 'c-single-quoted n c)
+                   (yaml--parse-from-grammar 'c-double-quoted n c)))))
+
+   ((eq state 'c-mapping-end)
+    (yaml--frame "c-mapping-end" (yaml--chr ?\})))
+
+   ((eq state 'nb-single-char)
+    (yaml--frame "nb-single-char"
+      (yaml--any (yaml--parse-from-grammar 'c-quoted-quote)
+                 (yaml--but (lambda () (yaml--parse-from-grammar 'nb-json))
+                            (lambda () (yaml--chr ?\'))))))
+
+   ((eq state 'ns-flow-node)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-flow-node"
+        (yaml--any (yaml--parse-from-grammar 'c-ns-alias-node)
+                   (yaml--parse-from-grammar 'ns-flow-content n c)
+                   (yaml--all (yaml--parse-from-grammar 'c-ns-properties n c)
+                              (yaml--any (yaml--all (yaml--parse-from-grammar 
's-separate n c)
+                                                    (yaml--parse-from-grammar 
'ns-flow-content n c))
+                                         (yaml--parse-from-grammar 
'e-scalar)))))))
+
+   ((eq state 'c-non-specific-tag)
+    (yaml--frame "c-non-specific-tag" (yaml--chr ?\!)))
+
+   ((eq state 'l-directive-document)
+    (yaml--frame "l-directive-document"
+      (yaml--all (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
'l-directive)))
+                 (yaml--parse-from-grammar 'l-explicit-document))))
+
+   ((eq state 'c-l-block-map-explicit-entry)
+    (let ((n (nth 0 args)))
+      (yaml--frame "c-l-block-map-explicit-entry"
+        (yaml--all (yaml--parse-from-grammar 'c-l-block-map-explicit-key n)
+                   (yaml--any (yaml--parse-from-grammar 
'l-block-map-explicit-value n)
+                              (yaml--parse-from-grammar 'e-node))))))
+
    ((eq state 'e-node)
     (yaml--frame "e-node"
       (yaml--parse-from-grammar 'e-scalar)))
+
    ((eq state 'seq-spaces)
     (let ((n (nth 0 args)) (c (nth 1 args)))
       (yaml--frame "seq-spaces"
         (cond ((equal c "block-in") n)
               ((equal c "block-out") (yaml--sub n 1))))))
-   ((eq state 'l-yaml-stream) (yaml--frame "l-yaml-stream" (yaml--all 
(yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 'l-document-prefix))) 
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 'l-any-document))) 
(yaml--rep2 0 nil (lambda () (yaml--any (yaml--all (yaml--rep 1 nil (lambda () 
(yaml--parse-from-grammar 'l-document-suffix))) (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 'l-document-prefix))) (yaml--rep 0 1 (lambda () 
(yaml--parse-from-grammar 'l-any-document))) [...]
-   ((eq state 'nb-double-one-line) (yaml--frame "nb-double-one-line" 
(yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 'nb-double-char)))))
-   ((eq state 's-l-comments) (yaml--frame "s-l-comments" (yaml--all (yaml--any 
(yaml--parse-from-grammar 's-b-comment) (yaml--start-of-line)) (yaml--rep2 0 
nil (lambda () (yaml--parse-from-grammar 'l-comment))))))
-   ((eq state 'nb-char) (yaml--frame "nb-char" (yaml--but (lambda () 
(yaml--parse-from-grammar 'c-printable)) (lambda () (yaml--parse-from-grammar 
'b-char)) (lambda () (yaml--parse-from-grammar 'c-byte-order-mark)))))
-   ((eq state 'ns-plain-first) (let ((c (nth 0 args))) (yaml--frame 
"ns-plain-first" (yaml--any (yaml--but (lambda () (yaml--parse-from-grammar 
'ns-char)) (lambda () (yaml--parse-from-grammar 'c-indicator))) (yaml--all 
(yaml--any (yaml--chr ?\?) (yaml--chr ?\:) (yaml--chr ?\-)) (yaml--chk "=" 
(yaml--parse-from-grammar 'ns-plain-safe c)))))))
-   ((eq state 'c-ns-esc-char) (yaml--frame "c-ns-esc-char" (yaml--all 
(yaml--chr ?\\) (yaml--any (yaml--parse-from-grammar 'ns-esc-null) 
(yaml--parse-from-grammar 'ns-esc-bell) (yaml--parse-from-grammar 
'ns-esc-backspace) (yaml--parse-from-grammar 'ns-esc-horizontal-tab) 
(yaml--parse-from-grammar 'ns-esc-line-feed) (yaml--parse-from-grammar 
'ns-esc-vertical-tab) (yaml--parse-from-grammar 'ns-esc-form-feed) 
(yaml--parse-from-grammar 'ns-esc-carriage-return) (yaml--parse-from-grammar 
'ns-e [...]
-   ((eq state 'ns-flow-map-entry) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "ns-flow-map-entry" (yaml--any (yaml--all (yaml--chr ?\?) 
(yaml--parse-from-grammar 's-separate n c) (yaml--parse-from-grammar 
'ns-flow-map-explicit-entry n c)) (yaml--parse-from-grammar 
'ns-flow-map-implicit-entry n c)))))
-   ((eq state 'l-explicit-document) (yaml--frame "l-explicit-document" 
(yaml--all (yaml--parse-from-grammar 'c-directives-end) (yaml--any 
(yaml--parse-from-grammar 'l-bare-document) (yaml--all 
(yaml--parse-from-grammar 'e-node) (yaml--parse-from-grammar 's-l-comments))))))
-   ((eq state 's-white) (yaml--frame "s-white" (yaml--any 
(yaml--parse-from-grammar 's-space) (yaml--parse-from-grammar 's-tab))))
-   ((eq state 'l-keep-empty) (let ((n (nth 0 args))) (yaml--frame 
"l-keep-empty" (yaml--all (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 'l-empty n "block-in"))) (yaml--rep 0 1 (lambda () 
(yaml--parse-from-grammar 'l-trail-comments n)))))))
-   ((eq state 'ns-tag-prefix) (yaml--frame "ns-tag-prefix" (yaml--any 
(yaml--parse-from-grammar 'c-ns-local-tag-prefix) (yaml--parse-from-grammar 
'ns-global-tag-prefix))))
+
+   ((eq state 'l-yaml-stream)
+    (yaml--frame "l-yaml-stream"
+      (yaml--all
+       (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'l-document-prefix)))
+       (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 'l-any-document)))
+       (yaml--rep2 0 nil
+                   (lambda ()
+                     (yaml--any (yaml--all
+                                 (yaml--rep 1 nil
+                                            (lambda () 
(yaml--parse-from-grammar 'l-document-suffix)))
+                                 (yaml--rep2 0 nil
+                                             (lambda () 
(yaml--parse-from-grammar 'l-document-prefix)))
+                                 (yaml--rep 0 1
+                                            (lambda () 
(yaml--parse-from-grammar 'l-any-document))))
+                                (yaml--all
+                                 (yaml--rep2 0 nil
+                                             (lambda () 
(yaml--parse-from-grammar 'l-document-prefix)))
+                                 (yaml--rep 0 1
+                                            (lambda () 
(yaml--parse-from-grammar 'l-explicit-document))))))))))
+
+   ((eq state 'nb-double-one-line)
+    (yaml--frame "nb-double-one-line"
+      (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'nb-double-char)))))
+
+   ((eq state 's-l-comments)
+    (yaml--frame "s-l-comments"
+      (yaml--all (yaml--any (yaml--parse-from-grammar 's-b-comment)
+                            (yaml--start-of-line))
+                 (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'l-comment))))))
+
+   ((eq state 'nb-char)
+    (yaml--frame "nb-char"
+      (yaml--but (lambda () (yaml--parse-from-grammar 'c-printable))
+                 (lambda () (yaml--parse-from-grammar 'b-char))
+                 (lambda () (yaml--parse-from-grammar 'c-byte-order-mark)))))
+
+   ((eq state 'ns-plain-first)
+    (let ((c (nth 0 args)))
+      (yaml--frame "ns-plain-first"
+        (yaml--any (yaml--but (lambda () (yaml--parse-from-grammar 'ns-char))
+                              (lambda () (yaml--parse-from-grammar 
'c-indicator)))
+                   (yaml--all (yaml--any (yaml--chr ?\?)
+                                         (yaml--chr ?\:)
+                                         (yaml--chr ?\-))
+                              (yaml--chk "=" (yaml--parse-from-grammar 
'ns-plain-safe c)))))))
+
+   ((eq state 'c-ns-esc-char)
+    (yaml--frame "c-ns-esc-char"
+      (yaml--all (yaml--chr ?\\)
+                 (yaml--any (yaml--parse-from-grammar 'ns-esc-null)
+                            (yaml--parse-from-grammar 'ns-esc-bell)
+                            (yaml--parse-from-grammar 'ns-esc-backspace)
+                            (yaml--parse-from-grammar 'ns-esc-horizontal-tab)
+                            (yaml--parse-from-grammar 'ns-esc-line-feed)
+                            (yaml--parse-from-grammar 'ns-esc-vertical-tab)
+                            (yaml--parse-from-grammar 'ns-esc-form-feed)
+                            (yaml--parse-from-grammar 'ns-esc-carriage-return)
+                            (yaml--parse-from-grammar 'ns-esc-escape)
+                            (yaml--parse-from-grammar 'ns-esc-space)
+                            (yaml--parse-from-grammar 'ns-esc-double-quote)
+                            (yaml--parse-from-grammar 'ns-esc-slash)
+                            (yaml--parse-from-grammar 'ns-esc-backslash)
+                            (yaml--parse-from-grammar 'ns-esc-next-line)
+                            (yaml--parse-from-grammar 
'ns-esc-non-breaking-space)
+                            (yaml--parse-from-grammar 'ns-esc-line-separator)
+                            (yaml--parse-from-grammar 
'ns-esc-paragraph-separator)
+                            (yaml--parse-from-grammar 'ns-esc-8-bit)
+                            (yaml--parse-from-grammar 'ns-esc-16-bit)
+                            (yaml--parse-from-grammar 'ns-esc-32-bit)))))
+
+   ((eq state 'ns-flow-map-entry)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-flow-map-entry"
+        (yaml--any (yaml--all (yaml--chr ?\?)
+                              (yaml--parse-from-grammar 's-separate n c)
+                              (yaml--parse-from-grammar 
'ns-flow-map-explicit-entry n c))
+                   (yaml--parse-from-grammar 'ns-flow-map-implicit-entry n 
c)))))
+
+   ((eq state 'l-explicit-document)
+    (yaml--frame "l-explicit-document"
+      (yaml--all (yaml--parse-from-grammar 'c-directives-end)
+                 (yaml--any (yaml--parse-from-grammar 'l-bare-document)
+                            (yaml--all (yaml--parse-from-grammar 'e-node)
+                                       (yaml--parse-from-grammar 
's-l-comments))))))
+
+   ((eq state 's-white)
+    (yaml--frame "s-white"
+      (yaml--any (yaml--parse-from-grammar 's-space)
+                 (yaml--parse-from-grammar 's-tab))))
+
+   ((eq state 'l-keep-empty)
+    (let ((n (nth 0 args)))
+      (yaml--frame "l-keep-empty"
+        (yaml--all (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'l-empty n "block-in")))
+                   (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
'l-trail-comments n)))))))
+
+   ((eq state 'ns-tag-prefix)
+    (yaml--frame "ns-tag-prefix"
+      (yaml--any (yaml--parse-from-grammar 'c-ns-local-tag-prefix)
+                 (yaml--parse-from-grammar 'ns-global-tag-prefix))))
 
    ((eq state 'c-l+folded)
     (let ((n (nth 0 args)))
@@ -1437,18 +1635,28 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                                              (max (+ n (yaml--state-curr-m)) 1)
                                              (yaml--state-curr-t))))))
 
-   ;; BOOKMARK: c-l+folded l-folded-content should be at least 1; trom off 
l-trail-comments
+   ((eq state 'ns-directive-name)
+    (yaml--frame "ns-directive-name"
+      (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 'ns-char)))))
+
+   ((eq state 'b-char)
+    (yaml--frame "b-char"
+      (yaml--any (yaml--parse-from-grammar 'b-line-feed)
+                 (yaml--parse-from-grammar 'b-carriage-return))))
 
-   ((eq state 'ns-directive-name) (yaml--frame "ns-directive-name" (yaml--rep 
1 nil (lambda () (yaml--parse-from-grammar 'ns-char)))))
-   ((eq state 'b-char) (yaml--frame "b-char" (yaml--any 
(yaml--parse-from-grammar 'b-line-feed) (yaml--parse-from-grammar 
'b-carriage-return))))
-   ((eq state 'ns-plain-multi-line) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "ns-plain-multi-line" (yaml--all (yaml--parse-from-grammar 
'ns-plain-one-line c) (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
's-ns-plain-next-line n c)))))))
+   ((eq state 'ns-plain-multi-line)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-plain-multi-line"
+        (yaml--all (yaml--parse-from-grammar 'ns-plain-one-line c)
+                   (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
's-ns-plain-next-line n c)))))))
 
    ((eq state 'ns-char)
     (yaml--frame "ns-char"
       (yaml--but (lambda () (yaml--parse-from-grammar 'nb-char))
                  (lambda () (yaml--parse-from-grammar 's-white)))))
 
-   ((eq state 's-space) (yaml--frame "s-space" (yaml--chr ?\x20)))
+   ((eq state 's-space)
+    (yaml--frame "s-space" (yaml--chr ?\x20)))
 
    ((eq state 'c-l-block-seq-entry)
     (yaml--frame "c-l-block-seq-entry"
@@ -1456,8 +1664,19 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                             (yaml--chk "!" (yaml--parse-from-grammar 'ns-char))
                             (yaml--parse-from-grammar 's-l+block-indented (nth 
0 args) "block-in"))))
 
-   ((eq state 'c-ns-properties) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "c-ns-properties" (yaml--any (yaml--all (yaml--parse-from-grammar 
'c-ns-tag-property) (yaml--rep 0 1 (lambda () (yaml--all 
(yaml--parse-from-grammar 's-separate n c) (yaml--parse-from-grammar 
'c-ns-anchor-property))))) (yaml--all (yaml--parse-from-grammar 
'c-ns-anchor-property) (yaml--rep 0 1 (lambda () (yaml--all 
(yaml--parse-from-grammar 's-separate n c) (yaml--parse-from-grammar 
'c-ns-tag-property)))))))))
-   ((eq state 'ns-directive-parameter) (yaml--frame "ns-directive-parameter" 
(yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 'ns-char)))))
+   ((eq state 'c-ns-properties)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "c-ns-properties"
+        (yaml--any (yaml--all (yaml--parse-from-grammar 'c-ns-tag-property)
+                              (yaml--rep 0 1 (lambda () (yaml--all 
(yaml--parse-from-grammar 's-separate n c) (yaml--parse-from-grammar 
'c-ns-anchor-property)))))
+                   (yaml--all (yaml--parse-from-grammar 'c-ns-anchor-property)
+                              (yaml--rep 0 1 (lambda () (yaml--all
+                                                         
(yaml--parse-from-grammar 's-separate n c)
+                                                         
(yaml--parse-from-grammar 'c-ns-tag-property)))))))))
+
+   ((eq state 'ns-directive-parameter)
+    (yaml--frame "ns-directive-parameter"
+      (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 'ns-char)))))
 
    ((eq state 'c-chomping-indicator)
     (yaml--frame "c-chomping-indicator"
@@ -1467,8 +1686,16 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                      (when (yaml--empty) (yaml--set t "clip") t))
         (message "c-chomping-indicator: %s" (yaml--state-curr-t)))))
 
-   ((eq state 'ns-global-tag-prefix) (yaml--frame "ns-global-tag-prefix" 
(yaml--all (yaml--parse-from-grammar 'ns-tag-char) (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 'ns-uri-char))))))
-   ((eq state 'c-ns-flow-pair-json-key-entry) (let ((n (nth 0 args)) (c (nth 1 
args))) (yaml--frame "c-ns-flow-pair-json-key-entry" (yaml--all 
(yaml--parse-from-grammar 'c-s-implicit-json-key "flow-key") 
(yaml--parse-from-grammar 'c-ns-flow-map-adjacent-value n c)))))
+   ((eq state 'ns-global-tag-prefix)
+    (yaml--frame "ns-global-tag-prefix"
+      (yaml--all (yaml--parse-from-grammar 'ns-tag-char)
+                 (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'ns-uri-char))))))
+
+   ((eq state 'c-ns-flow-pair-json-key-entry)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "c-ns-flow-pair-json-key-entry"
+        (yaml--all (yaml--parse-from-grammar 'c-s-implicit-json-key "flow-key")
+                   (yaml--parse-from-grammar 'c-ns-flow-map-adjacent-value n 
c)))))
 
    ((eq state 'l-literal-content)
     (let ((n (nth 0 args))
@@ -1480,39 +1707,137 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                                                     (yaml--parse-from-grammar 
'b-chomped-last tt))))
                    (yaml--parse-from-grammar 'l-chomped-empty n tt)))))
 
-   ((eq state 'c-document-end) (yaml--frame "c-document-end" (yaml--all 
(yaml--chr ?\.) (yaml--chr ?\.) (yaml--chr ?\.))))
-   ((eq state 'nb-double-text) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "nb-double-text" (cond ((equal c "block-key") 
(yaml--parse-from-grammar 'nb-double-one-line)) ((equal c "flow-in") 
(yaml--parse-from-grammar 'nb-double-multi-line n)) ((equal c "flow-key") 
(yaml--parse-from-grammar 'nb-double-one-line)) ((equal c "flow-out") 
(yaml--parse-from-grammar 'nb-double-multi-line n))))))
-   ((eq state 's-b-comment) (yaml--frame "s-b-comment" (yaml--all (yaml--rep 0 
1 (lambda () (yaml--all (yaml--parse-from-grammar 's-separate-in-line) 
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 'c-nb-comment-text)))))) 
(yaml--parse-from-grammar 'b-comment))))
-   ((eq state 's-block-line-prefix) (let ((n (nth 0 args))) (yaml--frame 
"s-block-line-prefix" (yaml--parse-from-grammar 's-indent n))))
-   ((eq state 'c-tag-handle) (yaml--frame "c-tag-handle" (yaml--any 
(yaml--parse-from-grammar 'c-named-tag-handle) (yaml--parse-from-grammar 
'c-secondary-tag-handle) (yaml--parse-from-grammar 'c-primary-tag-handle))))
+   ((eq state 'c-document-end)
+    (yaml--frame "c-document-end"
+      (yaml--all (yaml--chr ?\.)
+                 (yaml--chr ?\.)
+                 (yaml--chr ?\.))))
+
+   ((eq state 'nb-double-text)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "nb-double-text"
+        (cond ((equal c "block-key") (yaml--parse-from-grammar 
'nb-double-one-line))
+              ((equal c "flow-in") (yaml--parse-from-grammar 
'nb-double-multi-line n))
+              ((equal c "flow-key") (yaml--parse-from-grammar 
'nb-double-one-line))
+              ((equal c "flow-out") (yaml--parse-from-grammar 
'nb-double-multi-line n))))))
+
+   ((eq state 's-b-comment)
+    (yaml--frame "s-b-comment"
+      (yaml--all (yaml--rep 0 1 (lambda () (yaml--all 
(yaml--parse-from-grammar 's-separate-in-line)
+                                                      (yaml--rep 0 1 (lambda 
() (yaml--parse-from-grammar 'c-nb-comment-text))))))
+                 (yaml--parse-from-grammar 'b-comment))))
+
+   ((eq state 's-block-line-prefix)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-block-line-prefix"
+        (yaml--parse-from-grammar 's-indent n))))
+
+   ((eq state 'c-tag-handle)
+    (yaml--frame "c-tag-handle"
+      (yaml--any (yaml--parse-from-grammar 'c-named-tag-handle)
+                 (yaml--parse-from-grammar 'c-secondary-tag-handle)
+                 (yaml--parse-from-grammar 'c-primary-tag-handle))))
+
    ((eq state 'ns-plain-one-line)
     (let ((c (nth 0 args)))
       (yaml--frame "ns-plain-one-line"
         (yaml--all (yaml--parse-from-grammar 'ns-plain-first c)
                    (yaml--parse-from-grammar 'nb-ns-plain-in-line c)))))
 
-   ((eq state 'nb-json) (yaml--frame "nb-json" (yaml--any (yaml--chr ?\x09) 
(yaml--chr-range ?\x20 ?\x10FFFF))))
-   ((eq state 's-ns-plain-next-line) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "s-ns-plain-next-line" (yaml--all (yaml--parse-from-grammar 
's-flow-folded n) (yaml--parse-from-grammar 'ns-plain-char c) 
(yaml--parse-from-grammar 'nb-ns-plain-in-line c)))))
-   ((eq state 'c-reserved) (yaml--frame "c-reserved" (yaml--any (yaml--chr 
?\@) (yaml--chr ?\`))))
-   ((eq state 'b-l-trimmed) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "b-l-trimmed" (yaml--all (yaml--parse-from-grammar 'b-non-content) 
(yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 'l-empty n c)))))))
-   ((eq state 'l-document-prefix) (yaml--frame "l-document-prefix" (yaml--all 
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 'c-byte-order-mark))) 
(yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 'l-comment))))))
-   ((eq state 'c-byte-order-mark) (yaml--frame "c-byte-order-mark" (yaml--chr 
?\xFEFF)))
-   ((eq state 'c-anchor) (yaml--frame "c-anchor" (yaml--chr ?\&)))
-   ((eq state 's-double-escaped) (let ((n (nth 0 args))) (yaml--frame 
"s-double-escaped" (yaml--all (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 's-white))) (yaml--chr ?\\) (yaml--parse-from-grammar 
'b-non-content) (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 'l-empty 
n "flow-in"))) (yaml--parse-from-grammar 's-flow-line-prefix n)))))
+   ((eq state 'nb-json)
+    (yaml--frame "nb-json"
+      (yaml--any (yaml--chr ?\x09)
+                 (yaml--chr-range ?\x20 ?\x10FFFF))))
+
+   ((eq state 's-ns-plain-next-line)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "s-ns-plain-next-line"
+        (yaml--all (yaml--parse-from-grammar 's-flow-folded n)
+                   (yaml--parse-from-grammar 'ns-plain-char c)
+                   (yaml--parse-from-grammar 'nb-ns-plain-in-line c)))))
+
+   ((eq state 'c-reserved)
+    (yaml--frame "c-reserved"
+      (yaml--any (yaml--chr ?\@) (yaml--chr ?\`))))
+
+   ((eq state 'b-l-trimmed)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "b-l-trimmed"
+        (yaml--all (yaml--parse-from-grammar 'b-non-content)
+                   (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
'l-empty n c)))))))
+
+   ((eq state 'l-document-prefix)
+    (yaml--frame "l-document-prefix"
+      (yaml--all (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
'c-byte-order-mark)))
+                 (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'l-comment))))))
+
+   ((eq state 'c-byte-order-mark)
+    (yaml--frame "c-byte-order-mark" (yaml--chr ?\xFEFF)))
+
+   ((eq state 'c-anchor)
+    (yaml--frame "c-anchor" (yaml--chr ?\&)))
+
+   ((eq state 's-double-escaped)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-double-escaped"
+        (yaml--all (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
's-white)))
+                   (yaml--chr ?\\)
+                   (yaml--parse-from-grammar 'b-non-content)
+                   (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'l-empty n "flow-in")))
+                   (yaml--parse-from-grammar 's-flow-line-prefix n)))))
 
    ((eq state 'ns-esc-32-bit)
     (yaml--frame "ns-esc-32-bit"
       (yaml--all (yaml--chr ?U)
                  (yaml--rep 8 8 (lambda () (yaml--parse-from-grammar 
'ns-hex-digit))))))
 
-   ((eq state 'b-non-content) (yaml--frame "b-non-content" 
(yaml--parse-from-grammar 'b-break)))
-   ((eq state 'ns-tag-char) (yaml--frame "ns-tag-char" (yaml--but (lambda () 
(yaml--parse-from-grammar 'ns-uri-char)) (lambda () (yaml--chr ?\!)) (lambda () 
(yaml--parse-from-grammar 'c-flow-indicator)))))
-   ((eq state 'b-carriage-return) (yaml--frame "b-carriage-return" (yaml--chr 
?\x0D)))
-   ((eq state 's-double-next-line) (let ((n (nth 0 args))) (yaml--frame 
"s-double-next-line" (yaml--all (yaml--parse-from-grammar 's-double-break n) 
(yaml--rep 0 1 (lambda () (yaml--all (yaml--parse-from-grammar 'ns-double-char) 
(yaml--parse-from-grammar 'nb-ns-double-in-line) (yaml--any 
(yaml--parse-from-grammar 's-double-next-line n) (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 's-white)))))))))))
-   ((eq state 'ns-esc-non-breaking-space) (yaml--frame 
"ns-esc-non-breaking-space" (yaml--chr ?\_)))
-   ((eq state 'l-nb-diff-lines) (let ((n (nth 0 args))) (yaml--frame 
"l-nb-diff-lines" (yaml--all (yaml--parse-from-grammar 'l-nb-same-lines n) 
(yaml--rep2 0 nil (lambda () (yaml--all (yaml--parse-from-grammar 
'b-as-line-feed) (yaml--parse-from-grammar 'l-nb-same-lines n))))))))
-   ((eq state 's-flow-folded) (let ((n (nth 0 args))) (yaml--frame 
"s-flow-folded" (yaml--all (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
's-separate-in-line))) (yaml--parse-from-grammar 'b-l-folded n "flow-in") 
(yaml--parse-from-grammar 's-flow-line-prefix n)))))
-   ((eq state 'ns-flow-map-explicit-entry) (let ((n (nth 0 args)) (c (nth 1 
args))) (yaml--frame "ns-flow-map-explicit-entry" (yaml--any 
(yaml--parse-from-grammar 'ns-flow-map-implicit-entry n c) (yaml--all 
(yaml--parse-from-grammar 'e-node) (yaml--parse-from-grammar 'e-node))))))
+
+   ((eq state 'b-non-content)
+    (yaml--frame "b-non-content" (yaml--parse-from-grammar 'b-break)))
+
+   ((eq state 'ns-tag-char)
+    (yaml--frame "ns-tag-char"
+      (yaml--but (lambda () (yaml--parse-from-grammar 'ns-uri-char))
+                 (lambda () (yaml--chr ?\!))
+                 (lambda () (yaml--parse-from-grammar 'c-flow-indicator)))))
+
+   ((eq state 'b-carriage-return)
+    (yaml--frame "b-carriage-return" (yaml--chr ?\x0D)))
+
+   ((eq state 's-double-next-line)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-double-next-line"
+        (yaml--all (yaml--parse-from-grammar 's-double-break n)
+                   (yaml--rep 0 1
+                              (lambda ()
+                                (yaml--all (yaml--parse-from-grammar 
'ns-double-char)
+                                           (yaml--parse-from-grammar 
'nb-ns-double-in-line)
+                                           (yaml--any 
(yaml--parse-from-grammar 's-double-next-line n)
+                                                      (yaml--rep2 0 nil 
(lambda () (yaml--parse-from-grammar 's-white)))))))))))
+
+   ((eq state 'ns-esc-non-breaking-space)
+    (yaml--frame "ns-esc-non-breaking-space" (yaml--chr ?\_)))
+
+   ((eq state 'l-nb-diff-lines)
+    (let ((n (nth 0 args)))
+      (yaml--frame "l-nb-diff-lines"
+        (yaml--all (yaml--parse-from-grammar 'l-nb-same-lines n)
+                   (yaml--rep2 0 nil (lambda ()
+                                       (yaml--all (yaml--parse-from-grammar 
'b-as-line-feed)
+                                                  (yaml--parse-from-grammar 
'l-nb-same-lines n))))))))
+
+   ((eq state 's-flow-folded)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-flow-folded"
+        (yaml--all (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
's-separate-in-line)))
+                   (yaml--parse-from-grammar 'b-l-folded n "flow-in")
+                   (yaml--parse-from-grammar 's-flow-line-prefix n)))))
+
+   ((eq state 'ns-flow-map-explicit-entry)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-flow-map-explicit-entry"
+        (yaml--any (yaml--parse-from-grammar 'ns-flow-map-implicit-entry n c)
+                   (yaml--all (yaml--parse-from-grammar 'e-node) 
(yaml--parse-from-grammar 'e-node))))))
 
    ((eq state 'ns-l-block-map-implicit-entry)
     (yaml--frame "ns-l-block-map-implicit-entry"
@@ -1527,7 +1852,11 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                    (yaml--rep2 0 nil (lambda () (yaml--all 
(yaml--parse-from-grammar 'b-l-folded n "block-in")
                                                            
(yaml--parse-from-grammar 's-nb-folded-text n))))))))
 
-   ((eq state 'c-l-block-map-explicit-key) (let ((n (nth 0 args))) 
(yaml--frame "c-l-block-map-explicit-key" (yaml--all (yaml--chr ?\?) 
(yaml--parse-from-grammar 's-l+block-indented n "block-out")))))
+   ((eq state 'c-l-block-map-explicit-key)
+    (let ((n (nth 0 args)))
+      (yaml--frame "c-l-block-map-explicit-key"
+        (yaml--all (yaml--chr ?\?)
+                   (yaml--parse-from-grammar 's-l+block-indented n 
"block-out")))))
 
    ((eq state 's-separate)
     (let ((n (nth 0 args))
@@ -1540,19 +1869,72 @@ Rules for this function are defined by the yaml-spec 
JSON file."
               ((equal c "flow-key") (yaml--parse-from-grammar 
's-separate-in-line))
               ((equal c "flow-out") (yaml--parse-from-grammar 
's-separate-lines n))))))
 
-   ((eq state 'ns-flow-pair-entry) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "ns-flow-pair-entry" (yaml--any (yaml--parse-from-grammar 
'ns-flow-pair-yaml-key-entry n c) (yaml--parse-from-grammar 
'c-ns-flow-map-empty-key-entry n c) (yaml--parse-from-grammar 
'c-ns-flow-pair-json-key-entry n c)))))
-   ((eq state 'c-flow-indicator) (yaml--frame "c-flow-indicator" (yaml--any 
(yaml--chr ?\,) (yaml--chr ?\[) (yaml--chr ?\]) (yaml--chr ?\{) (yaml--chr 
?\}))))
-   ((eq state 'ns-flow-pair-yaml-key-entry) (let ((n (nth 0 args)) (c (nth 1 
args))) (yaml--frame "ns-flow-pair-yaml-key-entry" (yaml--all 
(yaml--parse-from-grammar 'ns-s-implicit-yaml-key "flow-key") 
(yaml--parse-from-grammar 'c-ns-flow-map-separate-value n c)))))
-   ((eq state 'e-scalar) (yaml--frame "e-scalar" (yaml--empty)))
-   ((eq state 's-indent-lt) (let ((n (nth 0 args))) (yaml--frame "s-indent-lt" 
(yaml--may (yaml--all (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
's-space))) (< (length (yaml--match)) n))))))
-   ((eq state 'nb-single-one-line) (yaml--frame "nb-single-one-line" 
(yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 'nb-single-char)))))
-   ((eq state 'c-collect-entry) (yaml--frame "c-collect-entry" (yaml--chr 
?\,)))
-   ((eq state 'ns-l-compact-sequence) (let ((n (nth 0 args))) (yaml--frame 
"ns-l-compact-sequence" (yaml--all (yaml--parse-from-grammar 
'c-l-block-seq-entry n) (yaml--rep2 0 nil (lambda () (yaml--all 
(yaml--parse-from-grammar 's-indent n) (yaml--parse-from-grammar 
'c-l-block-seq-entry n))))))))
-   ((eq state 'c-comment) (yaml--frame "c-comment" (yaml--chr ?\#)))
-   ((eq state 's-line-prefix) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "s-line-prefix" (cond ((equal c "block-in") 
(yaml--parse-from-grammar 's-block-line-prefix n)) ((equal c "block-out") 
(yaml--parse-from-grammar 's-block-line-prefix n)) ((equal c "flow-in") 
(yaml--parse-from-grammar 's-flow-line-prefix n)) ((equal c "flow-out") 
(yaml--parse-from-grammar 's-flow-line-prefix n))))))
-   ((eq state 's-tab) (yaml--frame "s-tab" (yaml--chr ?\x09)))
-   ((eq state 'c-directive) (yaml--frame "c-directive" (yaml--chr ?\%)))
-   ((eq state 'ns-flow-pair) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "ns-flow-pair" (yaml--any (yaml--all (yaml--chr ?\?) 
(yaml--parse-from-grammar 's-separate n c) (yaml--parse-from-grammar 
'ns-flow-map-explicit-entry n c)) (yaml--parse-from-grammar 'ns-flow-pair-entry 
n c)))))
+   ((eq state 'ns-flow-pair-entry)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-flow-pair-entry"
+        (yaml--any (yaml--parse-from-grammar 'ns-flow-pair-yaml-key-entry n c)
+                   (yaml--parse-from-grammar 'c-ns-flow-map-empty-key-entry n 
c)
+                   (yaml--parse-from-grammar 'c-ns-flow-pair-json-key-entry n 
c)))))
+
+   ((eq state 'c-flow-indicator)
+    (yaml--frame "c-flow-indicator"
+      (yaml--any (yaml--chr ?\,)
+                 (yaml--chr ?\[)
+                 (yaml--chr ?\])
+                 (yaml--chr ?\{)
+                 (yaml--chr ?\}))))
+
+   ((eq state 'ns-flow-pair-yaml-key-entry)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-flow-pair-yaml-key-entry"
+        (yaml--all (yaml--parse-from-grammar 'ns-s-implicit-yaml-key 
"flow-key")
+                   (yaml--parse-from-grammar 'c-ns-flow-map-separate-value n 
c)))))
+
+   ((eq state 'e-scalar)
+    (yaml--frame "e-scalar" (yaml--empty)))
+
+   ((eq state 's-indent-lt)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-indent-lt"
+        (yaml--may (yaml--all (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 's-space)))
+                              (< (length (yaml--match)) n))))))
+   ((eq state 'nb-single-one-line)
+    (yaml--frame "nb-single-one-line"
+      (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'nb-single-char)))))
+
+   ((eq state 'c-collect-entry)
+    (yaml--frame "c-collect-entry" (yaml--chr ?\,)))
+
+   ((eq state 'ns-l-compact-sequence)
+    (let ((n (nth 0 args)))
+      (yaml--frame "ns-l-compact-sequence"
+        (yaml--all (yaml--parse-from-grammar 'c-l-block-seq-entry n)
+                   (yaml--rep2 0 nil (lambda () (yaml--all 
(yaml--parse-from-grammar 's-indent n) (yaml--parse-from-grammar 
'c-l-block-seq-entry n))))))))
+
+   ((eq state 'c-comment)
+    (yaml--frame "c-comment" (yaml--chr ?\#)))
+
+   ((eq state 's-line-prefix)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "s-line-prefix"
+        (cond ((equal c "block-in") (yaml--parse-from-grammar 
's-block-line-prefix n))
+              ((equal c "block-out") (yaml--parse-from-grammar 
's-block-line-prefix n))
+              ((equal c "flow-in") (yaml--parse-from-grammar 
's-flow-line-prefix n))
+              ((equal c "flow-out") (yaml--parse-from-grammar 
's-flow-line-prefix n))))))
+
+   ((eq state 's-tab)
+    (yaml--frame "s-tab" (yaml--chr ?\x09)))
+
+   ((eq state 'c-directive)
+    (yaml--frame "c-directive" (yaml--chr ?\%)))
+
+   ((eq state 'ns-flow-pair)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-flow-pair"
+        (yaml--any (yaml--all (yaml--chr ?\?)
+                              (yaml--parse-from-grammar 's-separate n c)
+                              (yaml--parse-from-grammar 
'ns-flow-map-explicit-entry n c))
+                   (yaml--parse-from-grammar 'ns-flow-pair-entry n c)))))
 
    ((eq state 's-l+block-indented)
     (yaml--frame "s-l+block-indented"
@@ -1564,15 +1946,49 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                    (yaml--all (yaml--parse-from-grammar 'e-node)
                               (yaml--parse-from-grammar 's-l-comments))))))
 
-   ((eq state 'c-single-quote) (yaml--frame "c-single-quote" (yaml--chr ?\')))
-   ((eq state 's-flow-line-prefix) (let ((n (nth 0 args))) (yaml--frame 
"s-flow-line-prefix" (yaml--all (yaml--parse-from-grammar 's-indent n) 
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 's-separate-in-line)))))))
-   ((eq state 'nb-double-char) (yaml--frame "nb-double-char" (yaml--any 
(yaml--parse-from-grammar 'c-ns-esc-char) (yaml--but (lambda () 
(yaml--parse-from-grammar 'nb-json)) (lambda () (yaml--chr ?\\)) (lambda () 
(yaml--chr ?\"))))))
-   ((eq state 'l-comment) (yaml--frame "l-comment" (yaml--all 
(yaml--parse-from-grammar 's-separate-in-line) (yaml--rep 0 1 (lambda () 
(yaml--parse-from-grammar 'c-nb-comment-text))) (yaml--parse-from-grammar 
'b-comment))))
-   ((eq state 'ns-hex-digit) (yaml--frame "ns-hex-digit" (yaml--any 
(yaml--parse-from-grammar 'ns-dec-digit) (yaml--chr-range ?\x41 ?\x46) 
(yaml--chr-range ?\x61 ?\x66))))
+   ((eq state 'c-single-quote)
+    (yaml--frame "c-single-quote" (yaml--chr ?\')))
+
+   ((eq state 's-flow-line-prefix)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-flow-line-prefix"
+        (yaml--all (yaml--parse-from-grammar 's-indent n)
+                   (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
's-separate-in-line)))))))
+
+   ((eq state 'nb-double-char)
+    (yaml--frame "nb-double-char"
+      (yaml--any (yaml--parse-from-grammar 'c-ns-esc-char)
+                 (yaml--but (lambda () (yaml--parse-from-grammar 'nb-json))
+                            (lambda () (yaml--chr ?\\)) (lambda () (yaml--chr 
?\"))))))
+
+   ((eq state 'l-comment)
+    (yaml--frame "l-comment"
+      (yaml--all (yaml--parse-from-grammar 's-separate-in-line)
+                 (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
'c-nb-comment-text)))
+                 (yaml--parse-from-grammar 'b-comment))))
+
+   ((eq state 'ns-hex-digit)
+    (yaml--frame "ns-hex-digit"
+      (yaml--any (yaml--parse-from-grammar 'ns-dec-digit)
+                 (yaml--chr-range ?\x41 ?\x46)
+                 (yaml--chr-range ?\x61 ?\x66))))
+
+   ((eq state 's-l+flow-in-block)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-l+flow-in-block"
+        (yaml--all (yaml--parse-from-grammar 's-separate (+ n 1) "flow-out")
+                   (yaml--parse-from-grammar 'ns-flow-node (+ n 1) "flow-out")
+                   (yaml--parse-from-grammar 's-l-comments)))))
 
-   ((eq state 's-l+flow-in-block) (let ((n (nth 0 args))) (yaml--frame 
"s-l+flow-in-block" (yaml--all (yaml--parse-from-grammar 's-separate (+ n 1) 
"flow-out") (yaml--parse-from-grammar 'ns-flow-node (+ n 1) "flow-out") 
(yaml--parse-from-grammar 's-l-comments)))))
+   ((eq state 'c-flow-json-node)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "c-flow-json-node"
+        (yaml--all (yaml--rep 0 1
+                              (lambda ()
+                                (yaml--all (yaml--parse-from-grammar 
'c-ns-properties n c)
+                                           (yaml--parse-from-grammar 
's-separate n c))))
+                   (yaml--parse-from-grammar 'c-flow-json-content n c)))))
 
-   ((eq state 'c-flow-json-node) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "c-flow-json-node" (yaml--all (yaml--rep 0 1 (lambda () (yaml--all 
(yaml--parse-from-grammar 'c-ns-properties n c) (yaml--parse-from-grammar 
's-separate n c)))) (yaml--parse-from-grammar 'c-flow-json-content n c)))))
    ((eq state 'c-b-block-header)
     (let ((m (nth 0 args))
           (tt (nth 1 args)))
@@ -1586,46 +2002,145 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                      (yaml--parse-from-grammar 'c-indentation-indicator m)))
                    (yaml--parse-from-grammar 's-b-comment)))))
 
-   ((eq state 'ns-esc-8-bit) (yaml--frame "ns-esc-8-bit" (yaml--all (yaml--chr 
?\x) (yaml--rep 2 2 (lambda () (yaml--parse-from-grammar 'ns-hex-digit))))))
-   ((eq state 'ns-anchor-name) (yaml--frame "ns-anchor-name" (yaml--rep 1 nil 
(lambda () (yaml--parse-from-grammar 'ns-anchor-char)))))
-   ((eq state 'ns-esc-slash) (yaml--frame "ns-esc-slash" (yaml--chr ?\/)))
-   ((eq state 's-nb-folded-text) (let ((n (nth 0 args))) (yaml--frame 
"s-nb-folded-text" (yaml--all (yaml--parse-from-grammar 's-indent n) 
(yaml--parse-from-grammar 'ns-char) (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 'nb-char)))))))
-   ((eq state 'ns-word-char) (yaml--frame "ns-word-char" (yaml--any 
(yaml--parse-from-grammar 'ns-dec-digit) (yaml--parse-from-grammar 
'ns-ascii-letter) (yaml--chr ?\-))))
-   ((eq state 'ns-esc-form-feed) (yaml--frame "ns-esc-form-feed" (yaml--chr 
?\f)))
+   ((eq state 'ns-esc-8-bit)
+    (yaml--frame "ns-esc-8-bit"
+      (yaml--all (yaml--chr ?\x)
+                 (yaml--rep 2 2 (lambda () (yaml--parse-from-grammar 
'ns-hex-digit))))))
+
+   ((eq state 'ns-anchor-name)
+    (yaml--frame "ns-anchor-name"
+      (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
'ns-anchor-char)))))
+
+   ((eq state 'ns-esc-slash)
+    (yaml--frame "ns-esc-slash" (yaml--chr ?\/)))
+
+   ((eq state 's-nb-folded-text)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-nb-folded-text"
+        (yaml--all (yaml--parse-from-grammar 's-indent n)
+                   (yaml--parse-from-grammar 'ns-char)
+                   (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'nb-char)))))))
+
+   ((eq state 'ns-word-char)
+    (yaml--frame "ns-word-char"
+      (yaml--any (yaml--parse-from-grammar 'ns-dec-digit)
+                 (yaml--parse-from-grammar 'ns-ascii-letter)
+                 (yaml--chr ?\-))))
+
+   ((eq state 'ns-esc-form-feed)
+    (yaml--frame "ns-esc-form-feed" (yaml--chr ?\f)))
+
    ((eq state 'ns-s-block-map-implicit-key)
     (yaml--frame "ns-s-block-map-implicit-key"
       (yaml--any (yaml--parse-from-grammar 'c-s-implicit-json-key "block-key")
                  (yaml--parse-from-grammar 'ns-s-implicit-yaml-key 
"block-key"))))
 
    ((eq state 'ns-esc-null) (yaml--frame "ns-esc-null" (yaml--chr ?\0)))
-   ((eq state 'c-ns-tag-property) (yaml--frame "c-ns-tag-property" (yaml--any 
(yaml--parse-from-grammar 'c-verbatim-tag) (yaml--parse-from-grammar 
'c-ns-shorthand-tag) (yaml--parse-from-grammar 'c-non-specific-tag))))
-   ((eq state 'c-ns-local-tag-prefix) (yaml--frame "c-ns-local-tag-prefix" 
(yaml--all (yaml--chr ?\!) (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 'ns-uri-char))))))
+
+   ((eq state 'c-ns-tag-property)
+    (yaml--frame "c-ns-tag-property"
+      (yaml--any (yaml--parse-from-grammar 'c-verbatim-tag)
+                 (yaml--parse-from-grammar 'c-ns-shorthand-tag)
+                 (yaml--parse-from-grammar 'c-non-specific-tag))))
+
+   ((eq state 'c-ns-local-tag-prefix)
+    (yaml--frame "c-ns-local-tag-prefix"
+      (yaml--all (yaml--chr ?\!)
+                 (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'ns-uri-char))))))
 
    ((eq state 'ns-tag-directive)
     (yaml--frame "ns-tag-directive"
       (yaml--all (yaml--chr ?T) (yaml--chr ?A) (yaml--chr ?G)
                  (yaml--parse-from-grammar 's-separate-in-line) 
(yaml--parse-from-grammar 'c-tag-handle) (yaml--parse-from-grammar 
's-separate-in-line) (yaml--parse-from-grammar 'ns-tag-prefix))))
 
-   ((eq state 'c-flow-mapping) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "c-flow-mapping" (yaml--all (yaml--chr ?\{) (yaml--rep 0 1 (lambda 
() (yaml--parse-from-grammar 's-separate n c))) (yaml--rep 0 1 (lambda () 
(yaml--parse-from-grammar 'ns-s-flow-map-entries n (yaml--parse-from-grammar 
'in-flow c)))) (yaml--chr ?\})))))
-   ((eq state 'ns-double-char) (yaml--frame "ns-double-char" (yaml--but 
(lambda () (yaml--parse-from-grammar 'nb-double-char)) (lambda () 
(yaml--parse-from-grammar 's-white)))))
-   ((eq state 'ns-ascii-letter) (yaml--frame "ns-ascii-letter" (yaml--any 
(yaml--chr-range ?\x41 ?\x5A) (yaml--chr-range ?\x61 ?\x7A))))
-   ((eq state 'b-break) (yaml--frame "b-break" (yaml--any (yaml--all 
(yaml--parse-from-grammar 'b-carriage-return) (yaml--parse-from-grammar 
'b-line-feed)) (yaml--parse-from-grammar 'b-carriage-return) 
(yaml--parse-from-grammar 'b-line-feed))))
-   ((eq state 'nb-ns-double-in-line) (yaml--frame "nb-ns-double-in-line" 
(yaml--rep2 0 nil (lambda () (yaml--all (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 's-white))) (yaml--parse-from-grammar 
'ns-double-char))))))
+   ((eq state 'c-flow-mapping)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "c-flow-mapping"
+        (yaml--all (yaml--chr ?\{)
+                   (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
's-separate n c)))
+                   (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
'ns-s-flow-map-entries n (yaml--parse-from-grammar 'in-flow c))))
+                   (yaml--chr ?\})))))
+
+   ((eq state 'ns-double-char)
+    (yaml--frame "ns-double-char"
+      (yaml--but (lambda () (yaml--parse-from-grammar 'nb-double-char))
+                 (lambda () (yaml--parse-from-grammar 's-white)))))
+
+   ((eq state 'ns-ascii-letter)
+    (yaml--frame "ns-ascii-letter"
+      (yaml--any (yaml--chr-range ?\x41 ?\x5A)
+                 (yaml--chr-range ?\x61 ?\x7A))))
+
+   ((eq state 'b-break)
+    (yaml--frame "b-break"
+      (yaml--any (yaml--all (yaml--parse-from-grammar 'b-carriage-return)
+                            (yaml--parse-from-grammar 'b-line-feed))
+                 (yaml--parse-from-grammar 'b-carriage-return)
+                 (yaml--parse-from-grammar 'b-line-feed))))
+
+   ((eq state 'nb-ns-double-in-line)
+    (yaml--frame "nb-ns-double-in-line"
+      (yaml--rep2 0 nil (lambda ()
+                          (yaml--all (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 's-white)))
+                                     (yaml--parse-from-grammar 
'ns-double-char))))))
 
    ((eq state 's-l+block-node)
     (yaml--frame "s-l+block-node"
                  (yaml--any (yaml--parse-from-grammar 's-l+block-in-block (nth 
0 args) (nth 1 args))
                             (yaml--parse-from-grammar 's-l+flow-in-block (nth 
0 args)))))
 
-   ((eq state 'ns-esc-bell) (yaml--frame "ns-esc-bell" (yaml--chr ?\a)))
-   ((eq state 'c-named-tag-handle) (yaml--frame "c-named-tag-handle" 
(yaml--all (yaml--chr ?\!) (yaml--rep 1 nil (lambda () 
(yaml--parse-from-grammar 'ns-word-char))) (yaml--chr ?\!))))
-   ((eq state 's-separate-lines) (let ((n (nth 0 args))) (yaml--frame 
"s-separate-lines" (yaml--any (yaml--all (yaml--parse-from-grammar 
's-l-comments) (yaml--parse-from-grammar 's-flow-line-prefix n)) 
(yaml--parse-from-grammar 's-separate-in-line)))))
-   ((eq state 'l-directive) (yaml--frame "l-directive" (yaml--all (yaml--chr 
?\%) (yaml--any (yaml--parse-from-grammar 'ns-yaml-directive) 
(yaml--parse-from-grammar 'ns-tag-directive) (yaml--parse-from-grammar 
'ns-reserved-directive)) (yaml--parse-from-grammar 's-l-comments))))
-   ((eq state 'ns-esc-escape) (yaml--frame "ns-esc-escape" (yaml--chr ?\e)))
-   ((eq state 'b-nb-literal-next) (let ((n (nth 0 args))) (yaml--frame 
"b-nb-literal-next" (yaml--all (yaml--parse-from-grammar 'b-as-line-feed) 
(yaml--parse-from-grammar 'l-nb-literal-text n)))))
-   ((eq state 'ns-s-flow-map-entries) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "ns-s-flow-map-entries" (yaml--all (yaml--parse-from-grammar 
'ns-flow-map-entry n c) (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
's-separate n c))) (yaml--rep 0 1 (lambda () (yaml--all (yaml--chr ?\,) 
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 's-separate n c))) 
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 'ns-s-flow-map-entries n 
c))))))))))
-   ((eq state 'c-nb-comment-text) (yaml--frame "c-nb-comment-text" (yaml--all 
(yaml--chr ?\#) (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'nb-char))))))
-   ((eq state 'ns-dec-digit) (yaml--frame "ns-dec-digit" (yaml--chr-range 
?\x30 ?\x39)))
+   ((eq state 'ns-esc-bell)
+    (yaml--frame "ns-esc-bell" (yaml--chr ?\a)))
+
+   ((eq state 'c-named-tag-handle)
+    (yaml--frame "c-named-tag-handle"
+      (yaml--all (yaml--chr ?\!)
+                 (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
'ns-word-char)))
+                 (yaml--chr ?\!))))
+
+   ((eq state 's-separate-lines)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-separate-lines"
+        (yaml--any (yaml--all (yaml--parse-from-grammar 's-l-comments)
+                              (yaml--parse-from-grammar 's-flow-line-prefix n))
+                   (yaml--parse-from-grammar 's-separate-in-line)))))
+
+   ((eq state 'l-directive)
+    (yaml--frame "l-directive"
+      (yaml--all (yaml--chr ?\%)
+                 (yaml--any (yaml--parse-from-grammar 'ns-yaml-directive)
+                            (yaml--parse-from-grammar 'ns-tag-directive)
+                            (yaml--parse-from-grammar 'ns-reserved-directive))
+                 (yaml--parse-from-grammar 's-l-comments))))
+
+   ((eq state 'ns-esc-escape)
+    (yaml--frame "ns-esc-escape" (yaml--chr ?\e)))
+
+   ((eq state 'b-nb-literal-next)
+    (let ((n (nth 0 args)))
+      (yaml--frame "b-nb-literal-next"
+        (yaml--all (yaml--parse-from-grammar 'b-as-line-feed)
+                   (yaml--parse-from-grammar 'l-nb-literal-text n)))))
+
+   ((eq state 'ns-s-flow-map-entries)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-s-flow-map-entries"
+        (yaml--all (yaml--parse-from-grammar 'ns-flow-map-entry n c)
+                   (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
's-separate n c)))
+                   (yaml--rep 0 1
+                              (lambda ()
+                                (yaml--all (yaml--chr ?\,)
+                                           (yaml--rep 0 1 (lambda () 
(yaml--parse-from-grammar 's-separate n c)))
+                                           (yaml--rep 0 1 (lambda () 
(yaml--parse-from-grammar 'ns-s-flow-map-entries n c))))))))))
+
+   ((eq state 'c-nb-comment-text)
+    (yaml--frame "c-nb-comment-text"
+      (yaml--all (yaml--chr ?\#)
+                 (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'nb-char))))))
+
+   ((eq state 'ns-dec-digit)
+    (yaml--frame "ns-dec-digit"
+      (yaml--chr-range ?\x30 ?\x39)))
 
    ((eq state 'ns-yaml-directive)
     (yaml--frame "ns-yaml-directive"
@@ -1633,22 +2148,51 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                  (yaml--parse-from-grammar 's-separate-in-line)
                  (yaml--parse-from-grammar 'ns-yaml-version))))
 
-   ((eq state 'c-mapping-key) (yaml--frame "c-mapping-key" (yaml--chr ?\?)))
-   ((eq state 'b-as-line-feed) (yaml--frame "b-as-line-feed" 
(yaml--parse-from-grammar 'b-break)))
+   ((eq state 'c-mapping-key)
+    (yaml--frame "c-mapping-key" (yaml--chr ?\?)))
+
+   ((eq state 'b-as-line-feed)
+    (yaml--frame "b-as-line-feed"
+      (yaml--parse-from-grammar 'b-break)))
 
    ((eq state 's-l+block-in-block)
     (yaml--frame "s-l+block-in-block"
                  (yaml--any (yaml--parse-from-grammar 's-l+block-scalar (nth 0 
args) (nth 1 args))
                             (yaml--parse-from-grammar 's-l+block-collection 
(nth 0 args) (nth 1 args)))))
 
-   ((eq state 'ns-esc-paragraph-separator) (yaml--frame 
"ns-esc-paragraph-separator" (yaml--chr ?\P)))
-   ((eq state 'c-double-quoted) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "c-double-quoted" (yaml--all (yaml--chr ?\") 
(yaml--parse-from-grammar 'nb-double-text n c) (yaml--chr ?\")))))
-   ((eq state 'b-line-feed) (yaml--frame "b-line-feed" (yaml--chr ?\x0A)))
-   ((eq state 'ns-esc-horizontal-tab) (yaml--frame "ns-esc-horizontal-tab" 
(yaml--any (yaml--chr ?\t) (yaml--chr ?\x09))))
-   ((eq state 'c-ns-flow-map-empty-key-entry) (let ((n (nth 0 args)) (c (nth 1 
args))) (yaml--frame "c-ns-flow-map-empty-key-entry" (yaml--all 
(yaml--parse-from-grammar 'e-node) (yaml--parse-from-grammar 
'c-ns-flow-map-separate-value n c)))))
-   ((eq state 'l-any-document) (yaml--frame "l-any-document" (yaml--any 
(yaml--parse-from-grammar 'l-directive-document) (yaml--parse-from-grammar 
'l-explicit-document) (yaml--parse-from-grammar 'l-bare-document))))
+   ((eq state 'ns-esc-paragraph-separator)
+    (yaml--frame "ns-esc-paragraph-separator" (yaml--chr ?\P)))
+
+   ((eq state 'c-double-quoted)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "c-double-quoted"
+        (yaml--all (yaml--chr ?\")
+                   (yaml--parse-from-grammar 'nb-double-text n c)
+                   (yaml--chr ?\")))))
+
+   ((eq state 'b-line-feed)
+    (yaml--frame "b-line-feed" (yaml--chr ?\x0A)))
+
+   ((eq state 'ns-esc-horizontal-tab)
+    (yaml--frame "ns-esc-horizontal-tab"
+      (yaml--any (yaml--chr ?\t) (yaml--chr ?\x09))))
+
+   ((eq state 'c-ns-flow-map-empty-key-entry)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "c-ns-flow-map-empty-key-entry"
+        (yaml--all (yaml--parse-from-grammar 'e-node)
+                   (yaml--parse-from-grammar 'c-ns-flow-map-separate-value n 
c)))))
+
+   ((eq state 'l-any-document)
+    (yaml--frame "l-any-document"
+      (yaml--any (yaml--parse-from-grammar 'l-directive-document)
+                 (yaml--parse-from-grammar 'l-explicit-document)
+                 (yaml--parse-from-grammar 'l-bare-document))))
+
    ((eq state 'c-tag) (yaml--frame "c-tag" (yaml--chr ?\!)))
+
    ((eq state 'c-escape) (yaml--frame "c-escape" (yaml--chr ?\\)))
+
    ((eq state 'c-sequence-end) (yaml--frame "c-sequence-end" (yaml--chr ?\])))
 
    ((eq state 'l+block-mapping)
@@ -1663,12 +2207,42 @@ Rules for this function are defined by the yaml-spec 
JSON file."
                                    (yaml--parse-from-grammar 's-indent (+ (nth 
0 args) new-m))
                                    (yaml--parse-from-grammar 
'ns-l-block-map-entry (+ (nth 0 args) new-m))))))))))
 
-   ((eq state 'c-ns-flow-map-adjacent-value) (let ((n (nth 0 args)) (c (nth 1 
args))) (yaml--frame "c-ns-flow-map-adjacent-value" (yaml--all (yaml--chr ?\:) 
(yaml--any (yaml--all (yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 
's-separate n c))) (yaml--parse-from-grammar 'ns-flow-node n c)) 
(yaml--parse-from-grammar 'e-node))))))
-   ((eq state 's-single-next-line) (let ((n (nth 0 args))) (yaml--frame 
"s-single-next-line" (yaml--all (yaml--parse-from-grammar 's-flow-folded n) 
(yaml--rep 0 1 (lambda () (yaml--all (yaml--parse-from-grammar 'ns-single-char) 
(yaml--parse-from-grammar 'nb-ns-single-in-line) (yaml--any 
(yaml--parse-from-grammar 's-single-next-line n) (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 's-white)))))))))))
-   ((eq state 's-separate-in-line) (yaml--frame "s-separate-in-line" 
(yaml--any (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 's-white))) 
(yaml--start-of-line))))
-   ((eq state 'b-comment) (yaml--frame "b-comment" (yaml--any 
(yaml--parse-from-grammar 'b-non-content) (yaml--end-of-stream))))
-   ((eq state 'ns-esc-backslash) (yaml--frame "ns-esc-backslash" (yaml--chr 
?\\)))
-   ((eq state 'c-ns-anchor-property) (yaml--frame "c-ns-anchor-property" 
(yaml--all (yaml--chr ?\&) (yaml--parse-from-grammar 'ns-anchor-name))))
+   ((eq state 'c-ns-flow-map-adjacent-value)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "c-ns-flow-map-adjacent-value"
+        (yaml--all (yaml--chr ?\:)
+                   (yaml--any (yaml--all (yaml--rep 0 1 (lambda () 
(yaml--parse-from-grammar 's-separate n c)))
+                                         (yaml--parse-from-grammar 
'ns-flow-node n c))
+                              (yaml--parse-from-grammar 'e-node))))))
+
+   ((eq state 's-single-next-line)
+    (let ((n (nth 0 args)))
+      (yaml--frame "s-single-next-line"
+        (yaml--all (yaml--parse-from-grammar 's-flow-folded n)
+                   (yaml--rep 0 1
+                              (lambda ()
+                                (yaml--all (yaml--parse-from-grammar 
'ns-single-char)
+                                           (yaml--parse-from-grammar 
'nb-ns-single-in-line)
+                                           (yaml--any 
(yaml--parse-from-grammar 's-single-next-line n)
+                                                      (yaml--rep2 0 nil 
(lambda () (yaml--parse-from-grammar 's-white)))))))))))
+
+   ((eq state 's-separate-in-line)
+    (yaml--frame "s-separate-in-line"
+      (yaml--any (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
's-white)))
+                 (yaml--start-of-line))))
+
+   ((eq state 'b-comment)
+    (yaml--frame "b-comment"
+      (yaml--any (yaml--parse-from-grammar 'b-non-content)
+                 (yaml--end-of-stream))))
+
+   ((eq state 'ns-esc-backslash)
+    (yaml--frame "ns-esc-backslash" (yaml--chr ?\\)))
+
+   ((eq state 'c-ns-anchor-property)
+    (yaml--frame "c-ns-anchor-property"
+      (yaml--all (yaml--chr ?\&)
+                 (yaml--parse-from-grammar 'ns-anchor-name))))
 
    ((eq state 'ns-plain-safe)
     (let ((c (nth 0 args)))
@@ -1678,14 +2252,54 @@ Rules for this function are defined by the yaml-spec 
JSON file."
               ((equal c "flow-key") (yaml--parse-from-grammar 
'ns-plain-safe-in))
               ((equal c "flow-out") (yaml--parse-from-grammar 
'ns-plain-safe-out))))))
 
-   ((eq state 'ns-flow-content) (let ((n (nth 0 args)) (c (nth 1 args))) 
(yaml--frame "ns-flow-content" (yaml--any (yaml--parse-from-grammar 
'ns-flow-yaml-content n c) (yaml--parse-from-grammar 'c-flow-json-content n 
c)))))
-   ((eq state 'c-ns-flow-map-separate-value) (let ((n (nth 0 args)) (c (nth 1 
args))) (yaml--frame "c-ns-flow-map-separate-value" (yaml--all (yaml--chr ?\:) 
(yaml--chk "!" (yaml--parse-from-grammar 'ns-plain-safe c)) (yaml--any 
(yaml--all (yaml--parse-from-grammar 's-separate n c) (yaml--parse-from-grammar 
'ns-flow-node n c)) (yaml--parse-from-grammar 'e-node))))))
-   ((eq state 'in-flow) (let ((c (nth 0 args))) (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")))))
-   ((eq state 'c-verbatim-tag) (yaml--frame "c-verbatim-tag" (yaml--all 
(yaml--chr ?\!) (yaml--chr ?\<) (yaml--rep 1 nil (lambda () 
(yaml--parse-from-grammar 'ns-uri-char))) (yaml--chr ?\>))))
-   ((eq state 'c-literal) (yaml--frame "c-literal" (yaml--chr ?\|)))
-   ((eq state 'ns-esc-line-feed) (yaml--frame "ns-esc-line-feed" (yaml--chr 
?\n)))
-   ((eq state 'nb-double-multi-line) (let ((n (nth 0 args))) (yaml--frame 
"nb-double-multi-line" (yaml--all (yaml--parse-from-grammar 
'nb-ns-double-in-line) (yaml--any (yaml--parse-from-grammar 's-double-next-line 
n) (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 's-white))))))))
-   ((eq state 'b-l-spaced) (let ((n (nth 0 args))) (yaml--frame "b-l-spaced" 
(yaml--all (yaml--parse-from-grammar 'b-as-line-feed) (yaml--rep2 0 nil (lambda 
() (yaml--parse-from-grammar 'l-empty n "block-in")))))))
+   ((eq state 'ns-flow-content)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "ns-flow-content"
+        (yaml--any (yaml--parse-from-grammar 'ns-flow-yaml-content n c)
+                   (yaml--parse-from-grammar 'c-flow-json-content n c)))))
+
+   ((eq state 'c-ns-flow-map-separate-value)
+    (let ((n (nth 0 args)) (c (nth 1 args)))
+      (yaml--frame "c-ns-flow-map-separate-value"
+        (yaml--all (yaml--chr ?\:)
+                   (yaml--chk "!" (yaml--parse-from-grammar 'ns-plain-safe c))
+                   (yaml--any (yaml--all (yaml--parse-from-grammar 's-separate 
n c)
+                                         (yaml--parse-from-grammar 
'ns-flow-node n c))
+                              (yaml--parse-from-grammar 'e-node))))))
+
+   ((eq state 'in-flow)
+    (let ((c (nth 0 args)))
+      (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")))))
+
+   ((eq state 'c-verbatim-tag)
+    (yaml--frame "c-verbatim-tag"
+      (yaml--all (yaml--chr ?\!)
+                 (yaml--chr ?\<)
+                 (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 
'ns-uri-char)))
+                 (yaml--chr ?\>))))
+
+   ((eq state 'c-literal)
+    (yaml--frame "c-literal" (yaml--chr ?\|)))
+
+   ((eq state 'ns-esc-line-feed)
+    (yaml--frame "ns-esc-line-feed" (yaml--chr ?\n)))
+
+   ((eq state 'nb-double-multi-line)
+    (let ((n (nth 0 args)))
+      (yaml--frame "nb-double-multi-line"
+        (yaml--all (yaml--parse-from-grammar 'nb-ns-double-in-line)
+                   (yaml--any (yaml--parse-from-grammar 's-double-next-line n)
+                              (yaml--rep2 0 nil (lambda () 
(yaml--parse-from-grammar 's-white))))))))
+
+   ((eq state 'b-l-spaced)
+    (let ((n (nth 0 args)))
+      (yaml--frame "b-l-spaced"
+        (yaml--all (yaml--parse-from-grammar 'b-as-line-feed) (yaml--rep2 0 
nil (lambda () (yaml--parse-from-grammar 'l-empty n "block-in")))))))
+
    ((eq state 'ns-flow-yaml-content)
     (let ((n (nth 0 args)) (c (nth 1 args)))
       (yaml--frame "ns-flow-yaml-content"

Reply via email to