mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-18 01:30:27 +02:00
more define-syntax-rule usage
* module/ice-9/boot-9.scm: * module/ice-9/control.scm: * module/ice-9/futures.scm: * module/ice-9/optargs.scm: * module/ice-9/poll.scm: * module/ice-9/receive.scm: * module/ice-9/threads.scm: * module/ice-9/vlist.scm: * module/language/assembly/compile-bytecode.scm: * module/language/ecmascript/compile-tree-il.scm: * module/language/tree-il.scm: * module/oop/goops.scm: * module/oop/goops/simple.scm: * module/oop/goops/stklos.scm: * module/srfi/srfi-1.scm: * module/srfi/srfi-35.scm: * module/srfi/srfi-39.scm: * module/srfi/srfi-45.scm: * module/srfi/srfi-67/compare.scm: * module/sxml/match.scm: * module/system/repl/error-handling.scm: * module/system/repl/repl.scm: * module/system/vm/inspect.scm: * module/texinfo.scm: * module/web/server.scm: Use define-syntax-rule, where it makes sense.
This commit is contained in:
parent
1bbe0a631c
commit
0c65f52c6d
25 changed files with 373 additions and 513 deletions
|
@ -1,6 +1,6 @@
|
|||
;;; srfi-35.scm --- Conditions -*- coding: utf-8 -*-
|
||||
|
||||
;; Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; This library is free software; you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -295,24 +295,20 @@ by C."
|
|||
;;; Syntax.
|
||||
;;;
|
||||
|
||||
(define-syntax define-condition-type
|
||||
(syntax-rules ()
|
||||
((_ name parent pred (field-name field-accessor) ...)
|
||||
(begin
|
||||
(define name
|
||||
(make-condition-type 'name parent '(field-name ...)))
|
||||
(define (pred c)
|
||||
(condition-has-type? c name))
|
||||
(define (field-accessor c)
|
||||
(condition-ref c 'field-name))
|
||||
...))))
|
||||
(define-syntax-rule (define-condition-type name parent pred (field-name field-accessor) ...)
|
||||
(begin
|
||||
(define name
|
||||
(make-condition-type 'name parent '(field-name ...)))
|
||||
(define (pred c)
|
||||
(condition-has-type? c name))
|
||||
(define (field-accessor c)
|
||||
(condition-ref c 'field-name))
|
||||
...))
|
||||
|
||||
(define-syntax compound-condition
|
||||
(define-syntax-rule (compound-condition (type ...) (field ...))
|
||||
;; Create a compound condition using `make-compound-condition-type'.
|
||||
(syntax-rules ()
|
||||
((_ (type ...) (field ...))
|
||||
(condition ((make-compound-condition-type '%compound `(,type ...))
|
||||
field ...)))))
|
||||
(condition ((make-compound-condition-type '%compound `(,type ...))
|
||||
field ...)))
|
||||
|
||||
(define-syntax condition-instantiation
|
||||
;; Build the `(make-condition type ...)' call.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue