mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 22:31:12 +02:00
remove (ice-9 expand-support)
* module/ice-9/Makefile.am: * module/ice-9/expand-support.scm: Remove module, no longer used. * module/ice-9/psyntax.scm: Fix a comment.
This commit is contained in:
parent
811d10f5a2
commit
982a1c205d
3 changed files with 1 additions and 161 deletions
|
@ -137,7 +137,6 @@ ICE_9_SOURCES = \
|
|||
ice-9/debugger.scm \
|
||||
ice-9/documentation.scm \
|
||||
ice-9/emacs.scm \
|
||||
ice-9/expand-support.scm \
|
||||
ice-9/expect.scm \
|
||||
ice-9/format.scm \
|
||||
ice-9/getopt-long.scm \
|
||||
|
|
|
@ -1,159 +0,0 @@
|
|||
;;;; Copyright (C) 2009 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
|
||||
;;;; License as published by the Free Software Foundation; either
|
||||
;;;; version 2.1 of the License, or (at your option) any later version.
|
||||
;;;;
|
||||
;;;; This library is distributed in the hope that it will be useful,
|
||||
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
;;;; Lesser General Public License for more details.
|
||||
;;;;
|
||||
;;;; You should have received a copy of the GNU Lesser General Public
|
||||
;;;; License along with this library; if not, write to the Free Software
|
||||
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
;;;;
|
||||
|
||||
|
||||
(define-module (ice-9 expand-support)
|
||||
:export (<annotation> annotation? annotate deannotate make-annotation
|
||||
annotation-expression annotation-source annotation-stripped
|
||||
set-annotation-stripped!
|
||||
deannotate/source-properties
|
||||
|
||||
<module-ref> make-module-ref
|
||||
module-ref-symbol module-ref-modname module-ref-public?
|
||||
|
||||
<lexical> make-lexical
|
||||
lexical-name lexical-gensym
|
||||
|
||||
strip-expansion-structures))
|
||||
|
||||
(define <annotation>
|
||||
(make-vtable "prprpw"
|
||||
(lambda (struct port)
|
||||
(display "#<annotated " port)
|
||||
(display (struct-ref struct 0) port)
|
||||
(display ">" port))))
|
||||
|
||||
(define (annotation? x)
|
||||
(and (struct? x) (eq? (struct-vtable x) <annotation>)))
|
||||
|
||||
(define (make-annotation e s . stripped?)
|
||||
(if (null? stripped?)
|
||||
(make-struct <annotation> 0 e s #f)
|
||||
(apply make-struct <annotation> 0 e s stripped?)))
|
||||
|
||||
(define (annotation-expression a)
|
||||
(struct-ref a 0))
|
||||
(define (annotation-source a)
|
||||
(struct-ref a 1))
|
||||
(define (annotation-stripped a)
|
||||
(struct-ref a 2))
|
||||
(define (set-annotation-stripped! a stripped?)
|
||||
(struct-set! a 2 stripped?))
|
||||
|
||||
(define (annotate e)
|
||||
(let ((p (if (pair? e) (source-properties e) #f))
|
||||
(out (cond ((and (list? e) (not (null? e)))
|
||||
(map annotate e))
|
||||
((pair? e)
|
||||
(cons (annotate (car e)) (annotate (cdr e))))
|
||||
(else e))))
|
||||
(if (pair? p)
|
||||
(make-annotation out p #f)
|
||||
out)))
|
||||
|
||||
(define (deannotate e)
|
||||
(cond ((list? e)
|
||||
(map deannotate e))
|
||||
((pair? e)
|
||||
(cons (deannotate (car e)) (deannotate (cdr e))))
|
||||
((annotation? e) (deannotate (annotation-expression e)))
|
||||
(else e)))
|
||||
|
||||
(define (deannotate/source-properties e)
|
||||
(cond ((list? e)
|
||||
(map deannotate/source-properties e))
|
||||
((pair? e)
|
||||
(cons (deannotate/source-properties (car e))
|
||||
(deannotate/source-properties (cdr e))))
|
||||
((annotation? e)
|
||||
(let ((e (deannotate/source-properties (annotation-expression e)))
|
||||
(source (annotation-source e)))
|
||||
(if (pair? e)
|
||||
(set-source-properties! e source))
|
||||
e))
|
||||
(else e)))
|
||||
|
||||
|
||||
|
||||
(define <module-ref>
|
||||
(make-vtable "prprpr"
|
||||
(lambda (struct port)
|
||||
(display "#<" port)
|
||||
(display (if (module-ref-public? struct) "@ " "@@ ") port)
|
||||
(display (module-ref-modname struct) port)
|
||||
(display " " port)
|
||||
(display (module-ref-symbol struct) port)
|
||||
(display ">" port))))
|
||||
|
||||
(define (module-ref? x)
|
||||
(and (struct? x) (eq? (struct-vtable x) <module-ref>)))
|
||||
|
||||
(define (make-module-ref source modname symbol public?)
|
||||
(make-struct <module-ref> 0 modname symbol public?))
|
||||
|
||||
(define (module-ref-modname a)
|
||||
(struct-ref a 0))
|
||||
(define (module-ref-symbol a)
|
||||
(struct-ref a 1))
|
||||
(define (module-ref-public? a)
|
||||
(struct-ref a 2))
|
||||
|
||||
|
||||
|
||||
(define <lexical>
|
||||
(make-vtable "prpr"
|
||||
(lambda (struct port)
|
||||
(display "#<lexical " port)
|
||||
(display (lexical-name struct) port)
|
||||
(display "/" port)
|
||||
(display (lexical-gensym struct) port)
|
||||
(display ">" port))))
|
||||
|
||||
(define (lexical? x)
|
||||
(and (struct? x) (eq? (struct-vtable x) <lexical>)))
|
||||
|
||||
(define (make-lexical source name gensym)
|
||||
(make-struct <lexical> 0 name gensym))
|
||||
|
||||
(define (lexical-name a)
|
||||
(struct-ref a 0))
|
||||
(define (lexical-gensym a)
|
||||
(struct-ref a 1))
|
||||
|
||||
|
||||
|
||||
(define (strip-expansion-structures e)
|
||||
(cond ((list? e)
|
||||
(map strip-expansion-structures e))
|
||||
((pair? e)
|
||||
(cons (strip-expansion-structures (car e))
|
||||
(strip-expansion-structures (cdr e))))
|
||||
((annotation? e)
|
||||
(let ((e (strip-expansion-structures (annotation-expression e)))
|
||||
(source (annotation-source e)))
|
||||
(if (pair? e)
|
||||
(set-source-properties! e source))
|
||||
e))
|
||||
((module-ref? e)
|
||||
`(,(if (module-ref-public? e) '@ '@@)
|
||||
,(module-ref-modname e)
|
||||
,(module-ref-symbol e)))
|
||||
((lexical? e)
|
||||
(lexical-gensym e))
|
||||
((record? e)
|
||||
(error "unexpected record in expansion" e))
|
||||
(else e)))
|
|
@ -379,7 +379,7 @@
|
|||
;; Before modules are booted, we can't expand into data structures from
|
||||
;; (language tree-il) -- we need to give the evaluator the
|
||||
;; s-expressions that it understands natively. Actually the real truth
|
||||
;; of the matter is that the evaluator doesn't understand expand-support
|
||||
;; of the matter is that the evaluator doesn't understand tree-il
|
||||
;; structures at all. So until we fix the evaluator, if ever, the
|
||||
;; conflation that we should use tree-il iff we are compiling
|
||||
;; holds true.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue