mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +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, "ref?", SEXP_REF);
|
||||||
sexp_define_type_predicate(ctx, env, "seq?", SEXP_SEQ);
|
sexp_define_type_predicate(ctx, env, "seq?", SEXP_SEQ);
|
||||||
sexp_define_type_predicate(ctx, env, "lit?", SEXP_LIT);
|
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, "type?", SEXP_TYPE);
|
||||||
sexp_define_type_predicate(ctx, env, "core?", SEXP_CORE);
|
sexp_define_type_predicate(ctx, env, "core?", SEXP_CORE);
|
||||||
sexp_define_type_predicate(ctx, env, "context?", SEXP_CONTEXT);
|
sexp_define_type_predicate(ctx, env, "context?", SEXP_CONTEXT);
|
||||||
|
|
|
@ -26,11 +26,11 @@
|
||||||
seq-ls seq-ls-set! lit-value lit-value-set!
|
seq-ls seq-ls-set! lit-value lit-value-set!
|
||||||
exception-kind exception-message exception-irritants exception-source
|
exception-kind exception-message exception-irritants exception-source
|
||||||
opcode-name opcode-num-params opcode-return-type opcode-param-type
|
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!
|
macro-procedure macro-env macro-source macro-aux macro-aux-set!
|
||||||
procedure-code procedure-vars procedure-name procedure-name-set!
|
procedure-code procedure-vars procedure-name procedure-name-set!
|
||||||
procedure-arity procedure-variadic? procedure-variable-transformer?
|
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
|
bytecode-name bytecode-literals bytecode-source
|
||||||
port-line port-line-set! port-source? port-source?-set!
|
port-line port-line-set! port-source? port-source?-set!
|
||||||
extend-env env-parent env-parent-set! env-lambda env-lambda-set!
|
extend-env env-parent env-parent-set! env-lambda env-lambda-set!
|
||||||
|
|
|
@ -112,19 +112,19 @@
|
||||||
(if (memq (car x) '(only except rename))
|
(if (memq (car x) '(only except rename))
|
||||||
(let* ((mod-name+imports (%resolve-import (cadr x)))
|
(let* ((mod-name+imports (%resolve-import (cadr x)))
|
||||||
(imp-ids (or (cdr mod-name+imports)
|
(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)
|
(cons (car mod-name+imports)
|
||||||
(case (car x)
|
(case (car x)
|
||||||
((only)
|
((only)
|
||||||
(if imp-ids
|
(map (lambda (imp)
|
||||||
(map (lambda (imp) (or (assq imp imp-ids) imp))
|
(if (or (boolean? imp-ids) (memq imp imp-ids))
|
||||||
(cddr x))
|
imp
|
||||||
(cddr x)))
|
(error "importing unknown binding" imp imp-ids)))
|
||||||
|
(cddr x)))
|
||||||
((except)
|
((except)
|
||||||
(id-filter (lambda (i) (not (memq i (cddr x)))) imp-ids))
|
(id-filter (lambda (i) (not (memq i (cddr x)))) imp-ids))
|
||||||
((rename)
|
((rename)
|
||||||
|
;; TODO: warn about renaming an unimported id
|
||||||
(map (lambda (i)
|
(map (lambda (i)
|
||||||
(let ((rename (assq (to-id i) (cddr x))))
|
(let ((rename (assq (to-id i) (cddr x))))
|
||||||
(if rename (cons (cadr rename) (from-id i)) i)))
|
(if rename (cons (cadr rename) (from-id i)) i)))
|
||||||
|
|
Loading…
Add table
Reference in a new issue