From 6b8991d0a162d0d0a29e81667f48c7d52498dbee Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sat, 9 Apr 2011 16:52:24 +0900 Subject: [PATCH] adding macro introspection --- lib/chibi/ast.c | 3 +++ lib/chibi/ast.module | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/chibi/ast.c b/lib/chibi/ast.c index e25825ea..efee4ae7 100644 --- a/lib/chibi/ast.c +++ b/lib/chibi/ast.c @@ -297,9 +297,12 @@ sexp sexp_init_library (sexp ctx sexp_api_params(self, n), sexp env) { sexp_define_accessors(ctx, env, SEXP_PROCEDURE, 2, "procedure-vars", "procedure-vars-set!"); sexp_define_accessors(ctx, env, SEXP_BYTECODE, 1, "bytecode-name", "bytecode-name-set!"); sexp_define_accessors(ctx, env, SEXP_BYTECODE, 2, "bytecode-literals", "bytecode-literals-set!"); + sexp_define_accessors(ctx, env, SEXP_BYTECODE, 3, "bytecode-source", "bytecode-source-set!"); sexp_define_accessors(ctx, env, SEXP_EXCEPTION, 0, "exception-kind", "exception-kind-set!"); sexp_define_accessors(ctx, env, SEXP_EXCEPTION, 1, "exception-message", "exception-message-set!"); sexp_define_accessors(ctx, env, SEXP_EXCEPTION, 2, "exception-irritants", "exception-irritants-set!"); + sexp_define_accessors(ctx, env, SEXP_MACRO, 0, "macro-procedure", "macro-procedure-set!"); + sexp_define_accessors(ctx, env, SEXP_MACRO, 1, "macro-env", "macro-env-set!"); sexp_define_foreign_opt(ctx, env, "analyze", 2, sexp_analyze_op, SEXP_FALSE); sexp_define_foreign(ctx, env, "extend-env", 2, sexp_extend_env); sexp_define_foreign(ctx, env, "env-cell", 2, sexp_get_env_cell); diff --git a/lib/chibi/ast.module b/lib/chibi/ast.module index 61fdca86..5d357468 100644 --- a/lib/chibi/ast.module +++ b/lib/chibi/ast.module @@ -26,8 +26,9 @@ exception-irritants exception-irritants-set! opcode-name opcode-num-params opcode-return-type opcode-param-type opcode-variadic? + macro-procedure macro-env procedure-code procedure-vars procedure-name - bytecode-name bytecode-literals + bytecode-name bytecode-literals bytecode-source port-line port-line-set! type? type-name type-cpl type-parent type-slots object-size integer->immediate gc