branch: externals/yaml
commit 9a8ae65986c2cb50d1b69be9fc82f474a537d17a
Author: Zachary Romero <[email protected]>
Commit: Zachary Romero <[email protected]>
Reduce stack usage
---
yaml.el | 722 +++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 368 insertions(+), 354 deletions(-)
diff --git a/yaml.el b/yaml.el
index 5c5c1a16ba..aada2a910c 100644
--- a/yaml.el
+++ b/yaml.el
@@ -565,47 +565,34 @@ This flag is intended for development purposes.")
"Add a new state frame of NAME for RULE."
(declare (indent defun))
(let ((res-symbol (make-symbol "res")))
- `(progn
- ;;(message "%2d: %s" (length yaml--states) ,name)
- (yaml--push-state ,name)
- (when (and yaml--parse-debug (not (member ,name yaml--tracing-ignore)))
- (message "|%s>%s %40s \"%s\""
- (make-string (length yaml--states) ?-)
- (make-string (- 40 (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-symbol ,rule))
- (when (and yaml--parse-debug ,res-symbol (not (member ,name
yaml--tracing-ignore)))
- (message "<%s|%s %40s \"%s\""
- (make-string (length yaml--states) ?-)
- (make-string (- 40 (length yaml--states)) ?\s)
- ,name
- (replace-regexp-in-string
- "\n"
- "\\n"
- (substring yaml--parsing-input beg yaml--parsing-position)
- nil
- 'literal)))
- (yaml--pop-state)
- (if (not ,res-symbol)
- nil
- (let ((res-type (cdr (assoc ,name yaml--grammar-resolution-rules)))
- (t-state (yaml-state-m (car yaml-states))))
- (cond
- ((or (assoc ,name yaml--grammar-events-in)
- (assoc ,name yaml--grammar-events-out))
- (list ,name
- (substring yaml--parsing-input beg yaml--parsing-position)
- ,res-symbol))
- ((equal res-type 'list) (list ,name ,res-symbol))
- ((equal res-type 'literal) (substring yaml--parsing-input beg
yaml--parsing-position))
- (t ,res-symbol))))))))
+ `(let ((beg yaml--parsing-position)
+ (_ (yaml--push-state ,name))
+ (,res-symbol ,rule))
+ (when (and yaml--parse-debug ,res-symbol (not (member ,name
yaml--tracing-ignore)))
+ (message "<%s|%s %40s \"%s\""
+ (make-string (length yaml--states) ?-)
+ (make-string (- 40 (length yaml--states)) ?\s)
+ ,name
+ (replace-regexp-in-string
+ "\n"
+ "\\n"
+ (substring yaml--parsing-input beg yaml--parsing-position)
+ nil
+ 'literal)))
+ (yaml--pop-state)
+ (if (not ,res-symbol)
+ nil
+ (let ((res-type (cdr (assoc ,name yaml--grammar-resolution-rules)))
+ (t-state (yaml-state-m (car yaml--states))))
+ (cond
+ ((or (assoc ,name yaml--grammar-events-in)
+ (assoc ,name yaml--grammar-events-out))
+ (list ,name
+ (substring yaml--parsing-input beg yaml--parsing-position)
+ ,res-symbol))
+ ((equal res-type 'list) (list ,name ,res-symbol))
+ ((equal res-type 'literal) (substring yaml--parsing-input beg
yaml--parsing-position))
+ (t ,res-symbol)))))))
(defun yaml--end-of-stream ()
"Return non-nil if the current position is after the end of the document."
@@ -660,6 +647,21 @@ This flag is intended for development purposes.")
(setq yaml--parsing-position start-pos))
res))
+(defun yaml--run-all (&rest funcs)
+ "Return list of all evaluated FUNCS if all of FUNCS pass."
+ (let* ((start-pos yaml--parsing-position)
+ (ress '())
+ (break))
+ (while (and (not break) funcs)
+ (let ((res (funcall (car funcs))))
+ (when (not res)
+ (setq break t))
+ (setq ress (append ress (list res)))
+ (setq funcs (cdr funcs))))
+ (when break
+ (setq yaml--parsing-position start-pos))
+ (if break nil ress)))
+
(defmacro yaml--all (&rest forms)
"Pass and return all forms if all of FORMS pass."
`(yaml--run-all
@@ -667,17 +669,24 @@ This flag is intended for development purposes.")
`(lambda () ,form))
forms)))
+;; Not sure if this actually helps the stack problem
(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 "start")))
+ (let ((start-pos-sym (make-symbol "start"))
+ (rules-sym (make-symbol "rules"))
+ (res-sym (make-symbol "res")))
`(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))))))))
+ (,rules-sym ,(cons 'list (seq-map (lambda (form) `(lambda ()
,form)) forms)))
+ (,res-sym))
+ (while (and (not ,res-sym) ,rules-sym)
+ (setq ,res-sym (funcall (car ,rules-sym)))
+ (unless ,res-sym
+ (setq yaml--parsing-position ,start-pos-sym))
+ (setq ,rules-sym (cdr ,rules-sym)))
+ ,res-sym))))
+
(defmacro yaml--may (action)
action)
@@ -777,9 +786,9 @@ This flag is intended for development purposes.")
(setq yaml--parsing-position pos2)
t))))))
-(defun yaml--rep (min max func)
+(defmacro yaml--rep (min max func)
"Repeat FUNC between MIN and MAX times."
- (yaml--rep2 min max func))
+ `(yaml--rep2 ,min ,max ,func))
(defun yaml--rep2 (min max func)
"Repeat FUNC between MIN and MAX times."
@@ -788,13 +797,12 @@ This flag is intended for development purposes.")
(let* ((res-list '())
(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))
+ (pos-start pos)
+ (break nil))
+ (while (and (not break) (or (not max) (< count max)))
+ (let ((res (funcall func)))
+ (if (or (not res) (= yaml--parsing-position pos))
+ (setq break t)
(setq res-list (cons res res-list))
(setq count (1+ count))
(setq pos yaml--parsing-position))))
@@ -832,14 +840,14 @@ This flag is intended for development purposes.")
(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)))))
+ `(let ((,start-symbol yaml--parsing-position)
+ (_ (when (equal ,type "<=")
+ (setq yaml--parsing-position (1- yaml--parsing-position))))
+ (ok (and (>= yaml--parsing-position 0) ,expr)))
+ (setq yaml--parsing-position ,start-symbol)
+ (if (equal ,type "!")
+ (not ok)
+ ok))))
(defun yaml-parse-string (string &rest args)
"Parse the YAML value in STRING. Keyword ARGS are as follows:
@@ -896,8 +904,6 @@ value. It defaults to the symbol :false."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-
(defun yaml--parse-from-grammar (state &rest args)
"Parse YAML grammar for given STATE and ARGS.
@@ -923,11 +929,10 @@ Rules for this function are defined by the yaml-spec JSON
file."
(yaml--set m (yaml--auto-detect m)) t)))))
((eq state 'ns-reserved-directive)
- (let ()
- (yaml--frame "ns-reserved-directive"
- (yaml--all (yaml--parse-from-grammar 'ns-directive-name)
- (yaml--rep2 0 nil (lambda () (yaml--all
(yaml--parse-from-grammar 's-separate-in-line)
-
(yaml--parse-from-grammar 'ns-directive-parameter))))))))
+ (yaml--frame "ns-reserved-directive"
+ (yaml--all (yaml--parse-from-grammar 'ns-directive-name)
+ (yaml--rep2 0 nil (lambda () (yaml--all
(yaml--parse-from-grammar 's-separate-in-line)
+
(yaml--parse-from-grammar 'ns-directive-parameter)))))))
((eq state 'ns-flow-map-implicit-entry)
(let ((n (nth 0 args))
@@ -938,13 +943,11 @@ Rules for this function are defined by the yaml-spec JSON
file."
(yaml--parse-from-grammar 'c-ns-flow-map-json-key-entry n
c)))))
((eq state 'ns-esc-double-quote)
- (let ()
- (yaml--frame "ns-esc-double-quote"
- (yaml--chr ?\"))))
+ (yaml--frame "ns-esc-double-quote"
+ (yaml--chr ?\")))
((eq state 'c-mapping-start)
- (let ()
- (yaml--frame "c-mapping-start" (yaml--chr ?\{))))
+ (yaml--frame "c-mapping-start" (yaml--chr ?\{)))
((eq state 'ns-flow-seq-entry)
(let ((n (nth 0 args))
@@ -962,25 +965,21 @@ Rules for this function are defined by the yaml-spec JSON
file."
(yaml--parse-from-grammar 'b-as-line-feed)))))
((eq state 'c-primary-tag-handle)
- (let ()
- (yaml--frame "c-primary-tag-handle" (yaml--chr ?\!))))
+ (yaml--frame "c-primary-tag-handle" (yaml--chr ?\!)))
((eq state 'ns-plain-safe-out)
- (let ()
- (yaml--frame "ns-plain-safe-out"
- (yaml--parse-from-grammar 'ns-char))))
+ (yaml--frame "ns-plain-safe-out"
+ (yaml--parse-from-grammar 'ns-char)))
((eq state 'c-ns-shorthand-tag)
- (let ()
- (yaml--frame "c-ns-shorthand-tag"
- (yaml--all (yaml--parse-from-grammar 'c-tag-handle)
- (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar
'ns-tag-char)))))))
+ (yaml--frame "c-ns-shorthand-tag"
+ (yaml--all (yaml--parse-from-grammar 'c-tag-handle)
+ (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar
'ns-tag-char))))))
((eq state 'nb-ns-single-in-line)
- (let ()
- (yaml--frame "nb-ns-single-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-single-char)))))))
+ (yaml--frame "nb-ns-single-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-single-char))))))
((eq state 'l-strip-empty)
(let ((n (nth 0 args)))
@@ -990,27 +989,26 @@ Rules for this function are defined by the yaml-spec JSON
file."
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar
'l-trail-comments n)))))))
((eq state 'c-indicator)
- (let ()
- (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 ?\`)))))
+ (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 ?\`))))
((eq state 'c-l+literal)
(let ((n (nth 0 args)))
@@ -1028,27 +1026,23 @@ Rules for this function are defined by the yaml-spec
JSON file."
(yaml--chr ?\')))))
((eq state 'c-forbidden)
- (let ()
- (yaml--frame "c-forbidden"
- (yaml--all (yaml--start-of-line)
- (yaml--any (yaml--parse-from-grammar 'c-directives-end)
- (yaml--parse-from-grammar 'c-document-end))
- (yaml--any (yaml--parse-from-grammar 'b-char)
(yaml--parse-from-grammar 's-white) (yaml--end-of-stream))))))
+ (yaml--frame "c-forbidden"
+ (yaml--all (yaml--start-of-line)
+ (yaml--any (yaml--parse-from-grammar 'c-directives-end)
+ (yaml--parse-from-grammar 'c-document-end))
+ (yaml--any (yaml--parse-from-grammar 'b-char)
(yaml--parse-from-grammar 's-white) (yaml--end-of-stream)))))
((eq state 'c-ns-alias-node)
- (let ()
- (yaml--frame "c-ns-alias-node"
- (yaml--all (yaml--chr ?\*)
- (yaml--parse-from-grammar 'ns-anchor-name)))))
+ (yaml--frame "c-ns-alias-node"
+ (yaml--all (yaml--chr ?\*)
+ (yaml--parse-from-grammar 'ns-anchor-name))))
((eq state 'c-secondary-tag-handle)
- (let ()
- (yaml--frame "c-secondary-tag-handle"
- (yaml--all (yaml--chr ?\!) (yaml--chr ?\!)))))
+ (yaml--frame "c-secondary-tag-handle"
+ (yaml--all (yaml--chr ?\!) (yaml--chr ?\!))))
((eq state 'ns-esc-next-line)
- (let ()
- (yaml--frame "ns-esc-next-line" (yaml--chr ?\n))))
+ (yaml--frame "ns-esc-next-line" (yaml--chr ?\n)))
((eq state 'l-nb-same-lines)
(let ((n (nth 0 args)))
@@ -1058,14 +1052,12 @@ Rules for this function are defined by the yaml-spec
JSON file."
(yaml--parse-from-grammar 'l-nb-spaced-lines
n))))))
((eq state 'c-alias)
- (let ()
- (yaml--frame "c-alias" (yaml--chr ?\*))))
+ (yaml--frame "c-alias" (yaml--chr ?\*)))
((eq state 'ns-single-char)
- (let ()
- (yaml--frame "ns-single-char"
- (yaml--but (lambda () (yaml--parse-from-grammar 'nb-single-char))
- (lambda () (yaml--parse-from-grammar 's-white))))))
+ (yaml--frame "ns-single-char"
+ (yaml--but (lambda () (yaml--parse-from-grammar 'nb-single-char))
+ (lambda () (yaml--parse-from-grammar 's-white)))))
((eq state 'c-l-block-map-implicit-value)
(let ((n (nth 0 args)))
@@ -1076,39 +1068,37 @@ Rules for this function are defined by the yaml-spec
JSON file."
(yaml--parse-from-grammar
's-l-comments)))))))
((eq state 'ns-uri-char)
- (let ()
- (yaml--frame "ns-uri-char"
- (yaml--any (yaml--all (yaml--chr ?\%)
- (yaml--parse-from-grammar 'ns-hex-digit)
- (yaml--parse-from-grammar 'ns-hex-digit))
- (yaml--parse-from-grammar '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 ?\])))))
+ (yaml--frame "ns-uri-char"
+ (yaml--any (yaml--all (yaml--chr ?\%)
+ (yaml--parse-from-grammar 'ns-hex-digit)
+ (yaml--parse-from-grammar 'ns-hex-digit))
+ (yaml--parse-from-grammar '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 ?\]))))
((eq state 'ns-esc-16-bit)
- (let ()
- (yaml--frame "ns-esc-16-bit"
- (yaml--all (yaml--chr ?u)
- (yaml--rep 4 4 (lambda () (yaml--parse-from-grammar
'ns-hex-digit)))))))
+ (yaml--frame "ns-esc-16-bit"
+ (yaml--all (yaml--chr ?u)
+ (yaml--rep 4 4 (lambda () (yaml--parse-from-grammar
'ns-hex-digit))))))
((eq state 'l-nb-spaced-lines)
(let ((n (nth 0 args)))
@@ -1128,20 +1118,18 @@ Rules for this function are defined by the yaml-spec
JSON file."
((equal c "flow-out") (yaml--parse-from-grammar 'ns-plain-multi-line
n c))))))
((eq state 'c-printable)
- (let ()
- (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)))))
+ (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))))
((eq state 'c-mapping-value)
- (let ()
- (yaml--frame "c-mapping-value" (yaml--chr ?\:))))
+ (yaml--frame "c-mapping-value" (yaml--chr ?\:)))
((eq state 'l-nb-literal-text)
(let ((n (nth 0 args)))
@@ -1161,10 +1149,9 @@ Rules for this function are defined by the yaml-spec
JSON file."
(yaml--chk "=" (yaml--parse-from-grammar
'ns-plain-safe c)))))))
((eq state 'ns-anchor-char)
- (let ()
- (yaml--frame "ns-anchor-char"
- (yaml--but (lambda () (yaml--parse-from-grammar 'ns-char))
- (lambda () (yaml--parse-from-grammar 'c-flow-indicator))))))
+ (yaml--frame "ns-anchor-char"
+ (yaml--but (lambda () (yaml--parse-from-grammar 'ns-char))
+ (lambda () (yaml--parse-from-grammar 'c-flow-indicator)))))
((eq state 's-l+block-scalar)
(let ((n (nth 0 args)) (c (nth 1 args)))
@@ -1177,10 +1164,9 @@ Rules for this function are defined by the yaml-spec
JSON file."
(yaml--parse-from-grammar 'c-l+folded n))))))
((eq state 'ns-plain-safe-in)
- (let ()
- (yaml--frame "ns-plain-safe-in"
- (yaml--but (lambda () (yaml--parse-from-grammar 'ns-char))
- (lambda () (yaml--parse-from-grammar 'c-flow-indicator))))))
+ (yaml--frame "ns-plain-safe-in"
+ (yaml--but (lambda () (yaml--parse-from-grammar 'ns-char))
+ (lambda () (yaml--parse-from-grammar 'c-flow-indicator)))))
((eq state 'nb-single-text)
(let ((n (nth 0 args)) (c (nth 1 args)))
@@ -1197,7 +1183,7 @@ Rules for this function are defined by the yaml-spec JSON
file."
(<= (length (yaml--match)) n))))))
((eq state 'ns-esc-carriage-return)
- (let () (yaml--frame "ns-esc-carriage-return" (yaml--chr ?\r))))
+ (yaml--frame "ns-esc-carriage-return" (yaml--chr ?\r)))
((eq state 'l-chomped-empty)
(let ((n (nth 0 args))
@@ -1215,9 +1201,8 @@ Rules for this function are defined by the yaml-spec JSON
file."
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar
's-separate-in-line)))))))
((eq state 'b-as-space)
- (let ()
- (yaml--frame "b-as-space"
- (yaml--parse-from-grammar 'b-break))))
+ (yaml--frame "b-as-space"
+ (yaml--parse-from-grammar 'b-break)))
((eq state 'ns-s-flow-seq-entries)
(let ((n (nth 0 args)) (c (nth 1 args)))
@@ -1243,13 +1228,12 @@ 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) (let () (yaml--frame "c-sequence-entry"
(yaml--chr ?\-))))
+ ((eq state 'c-sequence-entry) (yaml--frame "c-sequence-entry" (yaml--chr
?\-)))
((eq state 'l-bare-document)
- (let ()
- (yaml--frame "l-bare-document"
- (yaml--all (yaml--exclude "c-forbidden")
- (yaml--parse-from-grammar 's-l+block-node -1 "block-in")))))
+ (yaml--frame "l-bare-document"
+ (yaml--all (yaml--exclude "c-forbidden")
+ (yaml--parse-from-grammar 's-l+block-node -1 "block-in"))))
;; TODO: don't use the symbol t as a variable.
((eq state 'b-chomped-last)
@@ -1274,7 +1258,7 @@ Rules for this function are defined by the yaml-spec JSON
file."
(message "debug: s-indent: %d %s" n (yaml--slice yaml--parsing-position))
(yaml--frame "s-indent"
(yaml--rep n n (lambda () (yaml--parse-from-grammar 's-space))))))
- ((eq state 'ns-esc-line-separator) (let () (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"
@@ -1285,9 +1269,9 @@ 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) (let () (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) (let () (yaml--frame "c-folded" (yaml--chr ?\>))))
- ((eq state 'c-directives-end) (let () (yaml--frame "c-directives-end"
(yaml--all (yaml--chr ?\-) (yaml--chr ?\-) (yaml--chr ?\-)))))
+ ((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)
@@ -1300,12 +1284,23 @@ Rules for this function are defined by the yaml-spec
JSON file."
(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) (let () (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) (let () (yaml--frame "c-sequence-start"
(yaml--chr ?\[))))
- ((eq state 'ns-l-block-map-entry) (let ((n (nth 0 args))) (yaml--frame
"ns-l-block-map-entry" (yaml--any (yaml--parse-from-grammar
'c-l-block-map-explicit-entry n) (yaml--parse-from-grammar
'ns-l-block-map-implicit-entry n)))))
- ((eq state 'ns-l-compact-mapping) (let ((n (nth 0 args))) (yaml--frame
"ns-l-compact-mapping" (yaml--all (yaml--parse-from-grammar
'ns-l-block-map-entry n) (yaml--rep2 0 nil (lambda () (yaml--all
(yaml--parse-from-grammar 's-indent n) (yaml--parse-from-grammar
'ns-l-block-map-entry n))))))))
- ((eq state 'ns-esc-space) (let () (yaml--frame "ns-esc-space" (yaml--chr
?\x20))))
- ((eq state 'ns-esc-vertical-tab) (let () (yaml--frame "ns-esc-vertical-tab"
(yaml--chr ?\v))))
+ ((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"
+ (yaml--any (yaml--parse-from-grammar
'c-l-block-map-explicit-entry (nth 0 args))
+ (yaml--parse-from-grammar
'ns-l-block-map-implicit-entry (nth 0 args)))))
+
+ ((eq state 'ns-l-compact-mapping)
+ (yaml--frame "ns-l-compact-mapping"
+ (yaml--all (yaml--parse-from-grammar 'ns-l-block-map-entry
(nth 0 args))
+ (yaml--rep2 0 nil
+ (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-s-implicit-yaml-key)
(let ((c (nth 0 args)))
@@ -1317,118 +1312,130 @@ Rules for this function are defined by the yaml-spec
JSON file."
((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)
- (let ((n (nth 0 args)) (c (nth 1 args)))
- (yaml--frame "s-l+block-collection"
- (yaml--all (yaml--rep 0 1 (lambda () (yaml--all
(yaml--parse-from-grammar 's-separate (+ n 1) c) (yaml--parse-from-grammar
'c-ns-properties (+ n 1) c))))
- (yaml--parse-from-grammar 's-l-comments)
- (yaml--any (yaml--parse-from-grammar 'l+block-sequence
(yaml--parse-from-grammar 'seq-spaces n c))
- (yaml--parse-from-grammar 'l+block-mapping
n))))))
+ (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)))))
+ (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))))))
- ((eq state 'c-quoted-quote) (let () (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)
- (let ((n (nth 0 args)))
- (yaml--frame "l+block-sequence"
- (progn
- (message "DEBUG: l+block-mapping: %d %d \"%s\""
(yaml--auto-detect-indent n) n (yaml--slice yaml--parsing-position))
- (yaml--all (yaml--set m (yaml--auto-detect-indent n))
- (yaml--rep 1 nil
- (lambda ()
- (yaml--all
- (yaml--parse-from-grammar 's-indent (+ n
(yaml--state-m)))
- (yaml--parse-from-grammar
'c-l-block-seq-entry (+ n (yaml--state-m)))))))))))
-
- ((eq state 'c-double-quote) (let () (yaml--frame "c-double-quote"
(yaml--chr ?\"))))
- ((eq state 'ns-esc-backspace) (let () (yaml--frame "ns-esc-backspace"
(yaml--chr ?\b))))
+ (yaml--frame "l+block-sequence"
+ (yaml--all (yaml--set m (yaml--auto-detect-indent (nth 0
args)))
+ (yaml--rep 1 nil
+ (lambda ()
+ (yaml--all
+ (yaml--parse-from-grammar 's-indent
(+ (nth 0 args) (yaml--state-m)))
+ (yaml--parse-from-grammar
'c-l-block-seq-entry (+ (nth 0 args) (yaml--state-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) (let () (yaml--frame "c-mapping-end" (yaml--chr
?\}))))
- ((eq state 'nb-single-char) (let () (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 '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) (let () (yaml--frame "c-non-specific-tag"
(yaml--chr ?\!))))
- ((eq state 'l-directive-document) (let () (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-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) (let () (yaml--frame "e-node" (yaml--parse-from-grammar
'e-scalar))))
+ ((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) (let () (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-doc [...]
- ((eq state 'nb-double-one-line) (let () (yaml--frame "nb-double-one-line"
(yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 'nb-double-char))))))
- ((eq state 's-l-comments) (let () (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) (let () (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 '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) (let () (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-gramm [...]
+ ((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) (let () (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) (let () (yaml--frame "s-white" (yaml--any
(yaml--parse-from-grammar 's-space) (yaml--parse-from-grammar 's-tab)))))
+ ((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) (let () (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 '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))) (yaml--frame "c-l+folded"
(yaml--all (yaml--chr ?\>) (yaml--parse-from-grammar 'c-b-block-header
(yaml--state-m) (yaml--state-t)) (yaml--parse-from-grammar 'l-folded-content (+
n (yaml--state-m)) (yaml--state-t))))))
- ((eq state 'ns-directive-name) (let () (yaml--frame "ns-directive-name"
(yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 'ns-char))))))
- ((eq state 'b-char) (let () (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-char) (let () (yaml--frame "ns-char" (yaml--but (lambda ()
(yaml--parse-from-grammar 'nb-char)) (lambda () (yaml--parse-from-grammar
's-white))))))
- ((eq state 's-space) (let () (yaml--frame "s-space" (yaml--chr ?\x20))))
- ((eq state 'c-l-block-seq-entry) (let ((n (nth 0 args))) (yaml--frame
"c-l-block-seq-entry" (yaml--all (yaml--chr ?\-) (yaml--chk "!"
(yaml--parse-from-grammar 'ns-char)) (yaml--parse-from-grammar
's-l+block-indented n "block-in")))))
+
+ ((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 'c-l-block-seq-entry)
+ (yaml--frame "c-l-block-seq-entry"
+ (yaml--all (yaml--chr ?\-)
+ (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) (let () (yaml--frame
"ns-directive-parameter" (yaml--rep 1 nil (lambda () (yaml--parse-from-grammar
'ns-char))))))
+ ((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)
- (let ()
- (yaml--frame "c-chomping-indicator"
- (prog1
- (yaml--any (when (yaml--chr ?\-) (yaml--set t "strip") t)
- (when (yaml--chr ?\+) (yaml--set t "keep") t)
- (when (yaml--empty) (yaml--set t "clip") t))
- (message "c-chomping-indicator: %s" (yaml--state-t))))))
-
- ((eq state 'ns-global-tag-prefix) (let () (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)))))))
+ (yaml--frame "c-chomping-indicator"
+ (prog1
+ (yaml--any (when (yaml--chr ?\-) (yaml--set t "strip") t)
+ (when (yaml--chr ?\+) (yaml--set t "keep") t)
+ (when (yaml--empty) (yaml--set t "clip") t))
+ (message "c-chomping-indicator: %s" (yaml--state-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 (yaml--parse-from-grammar
'flow-key)) (yaml--parse-from-grammar 'c-ns-flow-map-adjacent-value n c)))))
((eq state 'l-literal-content)
(let ((n (nth 0 args))
(tt (nth 1 args)))
(yaml--frame "l-literal-content"
- (progn
- (message "l-literal-content: %s" tt)
- (yaml--all (yaml--rep 0 1
- (lambda () (yaml--all
(yaml--parse-from-grammar 'l-nb-literal-text n)
- (yaml--rep2 0 nil
(lambda () (yaml--parse-from-grammar 'b-nb-literal-next n)))
-
(yaml--parse-from-grammar 'b-chomped-last tt))))
- (yaml--parse-from-grammar 'l-chomped-empty n tt))))))
-
- ((eq state 'c-document-end) (let () (yaml--frame "c-document-end"
(yaml--all (yaml--chr ?\.) (yaml--chr ?\.) (yaml--chr ?\.)))))
+ (yaml--all (yaml--rep 0 1
+ (lambda () (yaml--all (yaml--parse-from-grammar
'l-nb-literal-text n)
+ (yaml--rep2 0 nil (lambda
() (yaml--parse-from-grammar 'b-nb-literal-next n)))
+ (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) (let () (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-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) (let () (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-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) (let () (yaml--frame "nb-json" (yaml--any (yaml--chr
?\x09) (yaml--chr-range ?\x20 ?\x10FFFF)))))
+ ((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) (let () (yaml--frame "c-reserved" (yaml--any
(yaml--chr ?\@) (yaml--chr ?\`)))))
+ ((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) (let () (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) (let () (yaml--frame "c-byte-order-mark"
(yaml--chr ?\xFEFF))))
- ((eq state 'c-anchor) (let () (yaml--frame "c-anchor" (yaml--chr ?\&))))
+ ((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)
- (let ()
- (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) (let () (yaml--frame "b-non-content"
(yaml--parse-from-grammar 'b-break))))
- ((eq state 'ns-tag-char) (let () (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) (let () (yaml--frame "b-carriage-return"
(yaml--chr ?\x0D))))
+ (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) (let () (yaml--frame
"ns-esc-non-breaking-space" (yaml--chr ?\_))))
+ ((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) (let ((n (nth 0 args)))
(yaml--frame "ns-l-block-map-implicit-entry" (yaml--all (yaml--any
(yaml--parse-from-grammar 'ns-s-block-map-implicit-key)
(yaml--parse-from-grammar 'e-node)) (yaml--parse-from-grammar
'c-l-block-map-implicit-value n)))))
+
+ ((eq state 'ns-l-block-map-implicit-entry)
+ (yaml--frame "ns-l-block-map-implicit-entry"
+ (yaml--all (yaml--any (yaml--parse-from-grammar
'ns-s-block-map-implicit-key)
+ (yaml--parse-from-grammar 'e-node))
+ (yaml--parse-from-grammar
'c-l-block-map-implicit-value (nth 0 args)))))
+
((eq state 'l-nb-folded-lines) (let ((n (nth 0 args))) (yaml--frame
"l-nb-folded-lines" (yaml--all (yaml--parse-from-grammar 's-nb-folded-text n)
(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")))))
@@ -1444,26 +1451,33 @@ Rules for this function are defined by the yaml-spec
JSON file."
((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) (let () (yaml--frame "c-flow-indicator"
(yaml--any (yaml--chr ?\,) (yaml--chr ?\[) (yaml--chr ?\]) (yaml--chr ?\{)
(yaml--chr ?\})))))
+ ((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 (yaml--parse-from-grammar
'flow-key)) (yaml--parse-from-grammar 'c-ns-flow-map-separate-value n c)))))
- ((eq state 'e-scalar) (let () (yaml--frame "e-scalar" (yaml--empty))))
+ ((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) (let () (yaml--frame "nb-single-one-line"
(yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 'nb-single-char))))))
- ((eq state 'c-collect-entry) (let () (yaml--frame "c-collect-entry"
(yaml--chr ?\,))))
+ ((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) (let () (yaml--frame "c-comment" (yaml--chr ?\#))))
+ ((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) (let () (yaml--frame "s-tab" (yaml--chr ?\x09))))
- ((eq state 'c-directive) (let () (yaml--frame "c-directive" (yaml--chr
?\%))))
+ ((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) (let ((n (nth 0 args)) (c (nth 1 args)))
(yaml--frame "s-l+block-indented" (yaml--any (yaml--all
(yaml--parse-from-grammar 's-indent (yaml--state-m)) (yaml--any
(yaml--parse-from-grammar 'ns-l-compact-sequence (+ n (+ 1 (yaml--state-m))))
(yaml--parse-from-grammar 'ns-l-compact-mapping (+ n (+ 1 (yaml--state-m))))))
(yaml--parse-from-grammar 's-l+block-node n c) (yaml--all
(yaml--parse-from-grammar 'e-node) (yaml--parse-from-grammar 's-l-comments))))))
+ ((eq state 's-l+block-indented)
+ (yaml--frame "s-l+block-indented"
+ (yaml--any (yaml--all (yaml--parse-from-grammar 's-indent
(yaml--state-m))
+ (yaml--any (yaml--parse-from-grammar
'ns-l-compact-sequence (+ (nth 0 args) (+ 1 (yaml--state-m))))
+ (yaml--parse-from-grammar
'ns-l-compact-mapping (+ (nth 0 args) (+ 1 (yaml--state-m))))))
+ (yaml--parse-from-grammar 's-l+block-node (nth 0
args) (nth 1 args))
+ (yaml--all (yaml--parse-from-grammar 'e-node)
+ (yaml--parse-from-grammar
's-l-comments)))))
- ((eq state 'c-single-quote) (let () (yaml--frame "c-single-quote"
(yaml--chr ?\'))))
+ ((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) (let () (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) (let () (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) (let () (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 '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)))))
@@ -1481,102 +1495,102 @@ 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) (let () (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) (let () (yaml--frame "ns-anchor-name"
(yaml--rep 1 nil (lambda () (yaml--parse-from-grammar 'ns-anchor-char))))))
- ((eq state 'ns-esc-slash) (let () (yaml--frame "ns-esc-slash" (yaml--chr
?\/))))
+ ((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) (let () (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) (let () (yaml--frame "ns-esc-form-feed"
(yaml--chr ?\f))))
+ ((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)
- (let () (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")))))
+ (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) (let () (yaml--frame "ns-esc-null" (yaml--chr
?\0))))
- ((eq state 'c-ns-tag-property) (let () (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) (let () (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-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 'ns-tag-directive)
- (let ()
- (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)))))
+ (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) (let () (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) (let () (yaml--frame "ns-ascii-letter"
(yaml--any (yaml--chr-range ?\x41 ?\x5A) (yaml--chr-range ?\x61 ?\x7A)))))
- ((eq state 'b-break) (let () (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) (let () (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 '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)
- (let ((n (nth 0 args))
- (c (nth 1 args)))
- (yaml--frame "s-l+block-node"
- (yaml--any (yaml--parse-from-grammar 's-l+block-in-block n c)
- (yaml--parse-from-grammar 's-l+flow-in-block n)))))
+ (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) (let () (yaml--frame "ns-esc-bell" (yaml--chr
?\a))))
- ((eq state 'c-named-tag-handle) (let () (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 '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) (let () (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) (let () (yaml--frame "ns-esc-escape" (yaml--chr
?\e))))
+ ((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) (let () (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) (let () (yaml--frame "ns-dec-digit"
(yaml--chr-range ?\x30 ?\x39))))
+ ((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)
- (let ()
- (yaml--frame "ns-yaml-directive"
- (yaml--all (yaml--chr ?Y) (yaml--chr ?A) (yaml--chr ?M) (yaml--chr ?L)
- (yaml--parse-from-grammar 's-separate-in-line)
- (yaml--parse-from-grammar 'ns-yaml-version)))))
+ (yaml--frame "ns-yaml-directive"
+ (yaml--all (yaml--chr ?Y) (yaml--chr ?A) (yaml--chr ?M) (yaml--chr ?L)
+ (yaml--parse-from-grammar 's-separate-in-line)
+ (yaml--parse-from-grammar 'ns-yaml-version))))
- ((eq state 'c-mapping-key) (let () (yaml--frame "c-mapping-key" (yaml--chr
?\?))))
- ((eq state 'b-as-line-feed) (let () (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)
- (let ((n (nth 0 args))
- (c (nth 1 args)))
- (yaml--frame "s-l+block-in-block"
- (yaml--any (yaml--parse-from-grammar 's-l+block-scalar n c)
- (yaml--parse-from-grammar 's-l+block-collection n c)))))
+ (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) (let () (yaml--frame
"ns-esc-paragraph-separator" (yaml--chr ?\P))))
+ ((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) (let () (yaml--frame "b-line-feed" (yaml--chr
?\x0A))))
- ((eq state 'ns-esc-horizontal-tab) (let () (yaml--frame
"ns-esc-horizontal-tab" (yaml--any (yaml--chr ?\t) (yaml--chr ?\x09)))))
+ ((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) (let () (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) (let () (yaml--frame "c-tag" (yaml--chr ?\!))))
- ((eq state 'c-escape) (let () (yaml--frame "c-escape" (yaml--chr ?\\))))
- ((eq state 'c-sequence-end) (let () (yaml--frame "c-sequence-end"
(yaml--chr ?\]))))
+ ((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)
- (let ((n (nth 0 args)))
- (yaml--frame "l+block-mapping"
- (progn
- (let ((new-m (yaml--auto-detect-indent n)))
- (yaml--all (yaml--set m new-m)
- (yaml--rep 1 nil
- (lambda ()
- (yaml--all
- (yaml--parse-from-grammar 's-indent (+ n
(prog1 new-m (message "BEEP: %s" new-m))))
- (yaml--parse-from-grammar
'ns-l-block-map-entry (+ n (prog1 new-m (message "BEEP: %s" new-m)))))))))))))
+ (yaml--frame "l+block-mapping"
+ (let ((new-m (yaml--auto-detect-indent (nth 0 args))))
+ (yaml--all (yaml--set m new-m)
+ (yaml--rep 1 nil
+ (lambda ()
+ (yaml--all
+ (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) (let () (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) (let () (yaml--frame "b-comment" (yaml--any
(yaml--parse-from-grammar 'b-non-content) (yaml--end-of-stream)))))
- ((eq state 'ns-esc-backslash) (let () (yaml--frame "ns-esc-backslash"
(yaml--chr ?\\))))
- ((eq state 'c-ns-anchor-property) (let () (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))) (yaml--frame
"ns-plain-safe" (cond ((equal c "block-key") (yaml--parse-from-grammar
'ns-plain-safe-out)) ((equal c "flow-in") (yaml--parse-from-grammar
'ns-plain-safe-in)) ((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 '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)))
+ (yaml--frame "ns-plain-safe"
+ (cond ((equal c "block-key") (yaml--parse-from-grammar
'ns-plain-safe-out))
+ ((equal c "flow-in") (yaml--parse-from-grammar
'ns-plain-safe-in))
+ ((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") (yaml--parse-from-grammar 'flow-key)) ((equal c
"flow-in") "flow-in") ((equal c "flow-key") (yaml--parse-from-grammar
'flow-key)) ((equal c "flow-out") "flow-in")))))
- ((eq state 'c-verbatim-tag) (let () (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) (let () (yaml--frame "c-literal" (yaml--chr ?\|))))
- ((eq state 'ns-esc-line-feed) (let () (yaml--frame "ns-esc-line-feed"
(yaml--chr ?\n))))
+ ((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)