summaryrefslogtreecommitdiff
path: root/lang/elisp/interface.scm
diff options
context:
space:
mode:
Diffstat (limited to 'lang/elisp/interface.scm')
-rw-r--r--lang/elisp/interface.scm8
1 files changed, 7 insertions, 1 deletions
diff --git a/lang/elisp/interface.scm b/lang/elisp/interface.scm
index c71366acb..1e0758569 100644
--- a/lang/elisp/interface.scm
+++ b/lang/elisp/interface.scm
@@ -2,7 +2,9 @@
#:use-module (lang elisp internals evaluation)
#:use-module (lang elisp internals fset)
#:use-module ((lang elisp internals load) #:select ((load . elisp:load)))
+ #:use-module ((lang elisp transform) #:select (transformer))
#:export (eval-elisp
+ translate-elisp
elisp-function
elisp-variable
load-elisp-file
@@ -19,6 +21,10 @@
"Evaluate the Elisp expression @var{x}."
(eval x the-elisp-module))
+(define (translate-elisp x)
+ "Translate the Elisp expression @var{x} to equivalent Scheme code."
+ (transformer x))
+
(define (elisp-function sym)
"Return the procedure or macro that implements @var{sym} in Elisp.
If @var{sym} has no Elisp function definition, return @code{#f}."
@@ -112,7 +118,7 @@ exported to Elisp."
(error "No macro name specified or deducible:" obj)))
((symbol? obj)
(or name
- (set! name symbol))
+ (set! name obj))
(module-add! the-elisp-module name
(module-ref (current-module) obj)))
(else