mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
parent
e93b71990c
commit
598dcad547
3 changed files with 9 additions and 10 deletions
|
@ -677,7 +677,6 @@ sexp sexp_init_library (sexp ctx, sexp self, sexp_sint_t n, sexp env, const char
|
|||
sexp_define_type_predicate(ctx, env, "ref?", SEXP_REF);
|
||||
sexp_define_type_predicate(ctx, env, "seq?", SEXP_SEQ);
|
||||
sexp_define_type_predicate(ctx, env, "lit?", SEXP_LIT);
|
||||
sexp_define_type_predicate(ctx, env, "opcode?", SEXP_OPCODE);
|
||||
sexp_define_type_predicate(ctx, env, "type?", SEXP_TYPE);
|
||||
sexp_define_type_predicate(ctx, env, "core?", SEXP_CORE);
|
||||
sexp_define_type_predicate(ctx, env, "context?", SEXP_CONTEXT);
|
||||
|
|
|
@ -26,11 +26,11 @@
|
|||
seq-ls seq-ls-set! lit-value lit-value-set!
|
||||
exception-kind exception-message exception-irritants exception-source
|
||||
opcode-name opcode-num-params opcode-return-type opcode-param-type
|
||||
opcode-class opcode-code opcode-data opcode-variadic?
|
||||
opcode-class opcode-code opcode-data opcode-variadic? opcode?
|
||||
macro-procedure macro-env macro-source macro-aux macro-aux-set!
|
||||
procedure-code procedure-vars procedure-name procedure-name-set!
|
||||
procedure-arity procedure-variadic? procedure-variable-transformer?
|
||||
procedure-flags make-variable-transformer make-procedure
|
||||
procedure-flags make-variable-transformer make-procedure procedure?
|
||||
bytecode-name bytecode-literals bytecode-source
|
||||
port-line port-line-set! port-source? port-source?-set!
|
||||
extend-env env-parent env-parent-set! env-lambda env-lambda-set!
|
||||
|
|
|
@ -112,19 +112,19 @@
|
|||
(if (memq (car x) '(only except rename))
|
||||
(let* ((mod-name+imports (%resolve-import (cadr x)))
|
||||
(imp-ids (or (cdr mod-name+imports)
|
||||
(and (not (eq? 'only (car x)))
|
||||
(module-exports
|
||||
(find-module (car mod-name+imports)))))))
|
||||
(module-exports (find-module (car mod-name+imports))))))
|
||||
(cons (car mod-name+imports)
|
||||
(case (car x)
|
||||
((only)
|
||||
(if imp-ids
|
||||
(map (lambda (imp) (or (assq imp imp-ids) imp))
|
||||
(cddr x))
|
||||
(map (lambda (imp)
|
||||
(if (or (boolean? imp-ids) (memq imp imp-ids))
|
||||
imp
|
||||
(error "importing unknown binding" imp imp-ids)))
|
||||
(cddr x)))
|
||||
((except)
|
||||
(id-filter (lambda (i) (not (memq i (cddr x)))) imp-ids))
|
||||
((rename)
|
||||
;; TODO: warn about renaming an unimported id
|
||||
(map (lambda (i)
|
||||
(let ((rename (assq (to-id i) (cddr x))))
|
||||
(if rename (cons (cadr rename) (from-id i)) i)))
|
||||
|
|
Loading…
Add table
Reference in a new issue