#| -*-Scheme-*-
-$Id: usiexp.scm,v 4.35 1995/08/02 21:42:07 cph Exp $
+$Id: usiexp.scm,v 4.36 1997/07/31 10:40:38 adams Exp $
Copyright (c) 1988-95 Massachusetts Institute of Technology
block)
block
(if (and (pair? operands)
- (string? (car operands))
+ (constant? (car operands))
+ (string? (constant/value (car operands)))
(null? (cdr operands)))
(if-expanded
(constant/make (and expr (object/scode expr))
(define (intern-expansion expr operands if-expanded if-not-expanded block)
block
(if (and (pair? operands)
- (string? (car operands))
+ (constant? (car operands))
+ (string? (constant/value (car operands)))
(null? (cdr operands)))
(if-expanded
(constant/make (and expr (object/scode expr))
#| -*-Scheme-*-
-$Id: cleanup.scm,v 1.30 1996/07/20 23:03:03 adams Exp $
+$Id: cleanup.scm,v 1.31 1997/07/31 10:40:16 adams Exp $
Copyright (c) 1994-1996 Massachusetts Institute of Technology
(string? (quote/text expr))
`(QUOTE ,(string->symbol (quote/text expr))))))
+(define-cleanup-rewrite 'INTERN 1
+ (lambda (expr)
+ (and (QUOTE/? expr)
+ (string? (quote/text expr))
+ `(QUOTE ,(intern (quote/text expr))))))
+
(define-cleanup-rewrite (make-primitive-procedure 'EQ?) 2
(lambda (e1 e2)
(and (QUOTE/? e1)
#| -*-Scheme-*-
-$Id: typedb.scm,v 1.14 1997/07/11 02:35:04 adams Exp $
+$Id: typedb.scm,v 1.15 1997/07/31 10:39:52 adams Exp $
Copyright (c) 1996 Massachusetts Institute of Technology
(procedure-type (list type:string) type:interned-symbol
'effect-sensitive effect:string-set!))
+(define-operator-type 'INTERN
+ (procedure-type (list type:string) type:interned-symbol
+ 'effect-sensitive effect:string-set!))
+
(define-operator-type 'SYMBOL->STRING
(procedure-type (list type:symbol) type:string
'effect effect:allocation))
#| -*-Scheme-*-
-$Id: usiexp.scm,v 1.13 1996/07/22 19:04:06 adams Exp $
+$Id: usiexp.scm,v 1.14 1997/07/31 10:39:37 adams Exp $
Copyright (c) 1988-1995 Massachusetts Institute of Technology
block)
block
(if (and (pair? operands)
- (string? (car operands))
+ (constant? (car operands))
+ (string? (constant/value (car operands)))
(null? (cdr operands)))
(if-expanded
(constant/make (and expr (object/scode expr))
FLOOR->EXACT
FOR-EACH
INEXACT->EXACT
+ INTERN
LIST-REF
LOG
MAKE-STRING