;;; generator.el --- generators -*- lexical-binding: t -*-
-;;; Copyright (C) 2015 Free Software Foundation, Inc.
+;;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
;; Author: Daniel Colascione <dancol@dancol.org>
;; Keywords: extensions, elisp
;; Change this function to use `cl-gensym' if you want the generated
;; code to be easier to read and debug.
;; (cl-gensym (apply #'format fmt args))
- `(make-symbol ,fmt))
+ `(progn (ignore ,@args) (make-symbol ,fmt)))
(defvar cps--dynamic-wrappers '(identity)
"List of transformer functions to apply to atomic forms we
collect (if (symbolp binding)
(list binding nil)
binding)))
- (temps (cl-loop for (var value-form) in bindings
+ (temps (cl-loop for (var _value-form) in bindings
collect (cps--add-binding var))))
(cps--transform-1
`(let* ,(append
- (cl-loop for (var value-form) in bindings
+ (cl-loop for (_var value-form) in bindings
for temp in temps
collect (list temp value-form))
- (cl-loop for (var binding) in bindings
+ (cl-loop for (var _binding) in bindings
for temp in temps
collect (list var temp)))
,@body)
next-state)))
;; Process everything else by just evaluating the form normally.
- (t (cps--make-atomic-state form next-state))))
+ (_ (cps--make-atomic-state form next-state))))
(defun cps--make-catch-wrapper (tag-binding next-state)
(lambda (form)
(defun iter-next (iterator &optional yield-result)
"Extract a value from an iterator.
-YIELD-RESULT becomes the return value of `iter-yield` in the
+YIELD-RESULT becomes the return value of `iter-yield' in the
context of the generator.
This routine raises the `iter-end-of-sequence' condition if the