diff options
Diffstat (limited to 'module/c/cpp-environment.scm')
-rw-r--r-- | module/c/cpp-environment.scm | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/module/c/cpp-environment.scm b/module/c/cpp-environment.scm index fa69e1fc..2ad60b56 100644 --- a/module/c/cpp-environment.scm +++ b/module/c/cpp-environment.scm @@ -53,15 +53,17 @@ (identifier x)) -(define (macro-body macro) - (define body-proc - (cond ((obj:object-like-macro? macro) obj:body) - ((fun:function-like-macro? macro) fun:body) - ((int:internal-macro? macro) int:body) - (else (scm-error 'wrong-type-arg "macro-body" - "Not a macro: ~s" - (list macro) #f)))) - (body-proc macro)) +(define (macro-body-proc macro) + (cond ((obj:object-like-macro? macro) obj:body) + ((fun:function-like-macro? macro) fun:body) + ((int:internal-macro? macro) int:body) + (else (scm-error 'wrong-type-arg "macro-body" + "Not a macro: ~s" + (list macro) #f)))) + +(define macro-body + (case-lambda ((macro) ((macro-body-proc macro) macro)) + ((macro value) ((macro-body-proc macro) macro value)))) (define macro-identifier-list fun:identifier-list) (define macro-variadic? fun:variadic?) |