Function: define-peg-ruleset
define-peg-ruleset is a macro defined in peg.el.gz.
Signature
(define-peg-ruleset NAME &rest RULES)
Documentation
Define a set of PEG rules for later use, e.g., in with-peg-rules.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/peg.el.gz
(defmacro define-peg-ruleset (name &rest rules)
"Define a set of PEG rules for later use, e.g., in `with-peg-rules'."
(declare (indent 1))
(let ((defs ())
(aliases ()))
(dolist (rule rules)
(let* ((rname (car rule))
(full-rname (format "%s %s" name rname)))
(push `(define-peg-rule ,full-rname . ,(cdr rule)) defs)
(push `(,(peg--rule-id rname) #',(peg--rule-id full-rname)) aliases)))
(require 'cl-lib)
`(cl-flet ,aliases
,@defs
(eval-and-compile (put ',name 'peg--rules ',aliases)))))