diff options
author | Andy Wingo <wingo@pobox.com> | 2011-02-18 10:33:03 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-01-16 10:11:37 +0100 |
commit | 87c3ef2f95a0038e58c91705f79d7d71e3fc5a3c (patch) | |
tree | aef9bf13c6c5165fd7c0a947d404a42094d52715 /module/ice-9/peg.scm | |
parent | 09a6a7a44a34e3fa9bb2d24c07a80ac256c6011e (diff) | |
download | guile-87c3ef2f95a0038e58c91705f79d7d71e3fc5a3c.tar.gz |
peg: helper macro docstrings
* module/ice-9/peg.scm: Convert the helper macro comments into
docstrings.
Diffstat (limited to 'module/ice-9/peg.scm')
-rw-r--r-- | module/ice-9/peg.scm | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/module/ice-9/peg.scm b/module/ice-9/peg.scm index 74664182b..9a7873254 100644 --- a/module/ice-9/peg.scm +++ b/module/ice-9/peg.scm @@ -37,49 +37,45 @@ #:use-module (system base pmatch) #:use-module (ice-9 pretty-print)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;;; LOOPING CONSTRUCTS -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; +;;; Helper Macros +;;; -;; Perform ACTION. If it succeeded, return its return value. If it failed, run -;; IF_FAILS and try again (define-syntax until (syntax-rules () + "Evaluate TEST. If it is true, return its value. Otherwise, +execute the STMTs and try again." ((_ test stmt stmt* ...) (let lp () (or test (begin stmt stmt* ... (lp))))))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;;; GENERIC LIST-PROCESSING MACROS -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; Return #t if the list has only one element (calling length all the time on -;; potentially long lists was really slow). (define-syntax single? (syntax-rules () + "Return #t if X is a list of one element." ((_ x) (pmatch x ((_) #t) (else #f))))) -;; Push an object onto a list. (define-syntax push! (syntax-rules () + "Push an object onto a list." ((_ lst obj) (set! lst (cons obj lst))))) -;; If SYM is a list of one element, return (car SYM), else return SYM. (define-syntax single-filter (syntax-rules () + "If EXP is a list of one element, return the element. Otherwise +return EXP." ((_ exp) (pmatch exp ((,elt) elt) (,elts elts))))) -;; If OBJ is non-null, push it onto LST, otherwise do nothing. (define-syntax push-not-null! (syntax-rules () + "If OBJ is non-null, push it onto LST, otherwise do nothing." ((_ lst obj) (if (not (null? obj)) (push! lst obj))))) |