From f70b6c52407ad59a0061b45e46360fa3d82c3870 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Wed, 6 Aug 2014 01:46:11 +0900 Subject: [PATCH] add (picrin base macro) primitives --- piclib/picrin/base.scm | 4 ++-- piclib/picrin/macro.scm | 5 ++++- src/macro.c | 7 +++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/piclib/picrin/base.scm b/piclib/picrin/base.scm index d691bfde..15aca1cf 100644 --- a/piclib/picrin/base.scm +++ b/piclib/picrin/base.scm @@ -1,7 +1,7 @@ (define-library (picrin base) (import (rename (picrin base core) (define define*)) - (scheme base) - (picrin macro)) + (picrin base macro) + (scheme base)) (define-syntax define (lambda (form use-env mac-env) diff --git a/piclib/picrin/macro.scm b/piclib/picrin/macro.scm index 7e2c8ff2..9c0471ac 100644 --- a/piclib/picrin/macro.scm +++ b/piclib/picrin/macro.scm @@ -2,6 +2,7 @@ (define-library (picrin macro) (import (picrin base) + (picrin base macro) (scheme base) (picrin dictionary)) @@ -128,7 +129,9 @@ (cons (cdr formal) body))))))) - (export identifier=? + (export identifier? + identifier=? + make-identifier make-syntactic-closure close-syntax capture-syntactic-environment diff --git a/src/macro.c b/src/macro.c index 27906051..a95bf66e 100644 --- a/src/macro.c +++ b/src/macro.c @@ -479,12 +479,15 @@ pic_macro_make_identifier(pic_state *pic) void pic_init_macro(pic_state *pic) { + pic_deflibrary (pic, "(picrin base macro)") { + pic_defun(pic, "identifier?", pic_macro_identifier_p); + pic_defun(pic, "make-identifier", pic_macro_make_identifier); + } + pic_deflibrary (pic, "(picrin macro)") { pic_defun(pic, "gensym", pic_macro_gensym); pic_defun(pic, "ungensym", pic_macro_ungensym); pic_defun(pic, "macroexpand", pic_macro_macroexpand); pic_defun(pic, "macroexpand-1", pic_macro_macroexpand_1); - pic_defun(pic, "identifier?", pic_macro_identifier_p); - pic_defun(pic, "make-identifier", pic_macro_make_identifier); } }