mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-29 14:30:34 +02:00
peg: remove unhygienic safe-bind, safe-bind-f
* module/ice-9/peg.scm (safe-bind, safe-bind-f): Remove.
This commit is contained in:
parent
ac8a071390
commit
18905baf6e
1 changed files with 0 additions and 40 deletions
|
@ -26,46 +26,6 @@
|
|||
|
||||
(eval-when (compile load eval)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;; CONVENIENCE MACROS
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define (eeval exp)
|
||||
(eval exp (interaction-environment)))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;; MACRO BUILDERS
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; Safe-bind helps to bind macros safely.
|
||||
;; e.g.:
|
||||
;; (safe-bind
|
||||
;; (a b)
|
||||
;; `(,a ,b))
|
||||
;; gives:
|
||||
;; (#<uninterned-symbol a cc608d0> #<uninterned-symbol b cc608a0>)
|
||||
(define-syntax safe-bind
|
||||
(lambda (x)
|
||||
(syntax-case x ()
|
||||
((_ vals . actions)
|
||||
(datum->syntax x (apply safe-bind-f
|
||||
(cons
|
||||
(syntax->datum #'vals)
|
||||
(syntax->datum #'actions))))))))
|
||||
;; (define-macro (safe-bind vals . actions)
|
||||
;; (apply safe-bind-f (cons vals actions)))
|
||||
(define (safe-bind-f vals . actions)
|
||||
`(let ,(map (lambda (val) `(,val (make-symbol ,(symbol->string val)))) vals)
|
||||
,@actions))
|
||||
|
||||
;; Unsafe-bind is like safe-bind but uses symbols that are easier to read while
|
||||
;; debugging rather than safe ones. Currently unused.
|
||||
;; (define-macro (unsafe-bind vals . actions)
|
||||
;; (apply unsafe-bind-f (cons vals actions)))
|
||||
;; (define (unsafe-bind-f vals . actions)
|
||||
;; `(let ,(map (lambda (val) `(,val ',val)) vals)
|
||||
;; ,@actions))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;; LOOPING CONSTRUCTS
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue