hmm? pasted by mercora on Wed Jan 2 18:08:19 2013

(define-syntax jimport
  (er-macro-transformer
   (lambda (x r c)
     (let* ((%begin   (r 'begin))
	    (%define  (r 'define))
	    (%class   (r 'class))

	    (class-symbol  (cadr  x))
	    (prefix        (string-append (symbol->string (caddr x)) "-"))
	    (class-getter  (string->symbol (string-append prefix "class")))
	    (class-methods (methods (class class-symbol))))

       (cons %begin
	     (append
	      (map (lambda (m)
		     `(,%jimport-method m))
		   class-methods)
	      `(,%define (,class-getter)
			 (,%class ,class-symbol))))))))

davor ... pasted by mercora on Wed Jan 2 18:09:26 2013

(begin-for-syntax
 (require-library jni)
 (require-library jni-reflection)
 (import-for-syntax jni)
 (import-for-syntax jni-reflection)
 (jvm-init "android.jar"))

der fehler pasted by mercora on Wed Jan 2 18:13:30 2013

Error: during expansion of (jimport ...) - unbound variable: class

        Call history:

        <syntax>          (quote (jimport java.lang.String jstring))
        <syntax>          (##core#quote (jimport java.lang.String jstring))
        <eval>    (print (expand* (quote (jimport java.lang.String jstring))))
        <eval>    (expand* (quote (jimport java.lang.String jstring)))
        expand-full.scm:31: expand        
        <eval>    (r (quote begin))
        <eval>    (r (quote define))
        <eval>    (r (quote class))
        <eval>    (cadr x)
        <eval>    (string-append (symbol->string (caddr x)) "-")
        <eval>    (symbol->string (caddr x))
        <eval>    (caddr x)
        <eval>    (string->symbol (string-append prefix "class"))
        <eval>    (string-append prefix "class")
        <eval>    (methods (class class-symbol))
        <eval>    (class class-symbol)  <--

nochmal das ganze added by mercora on Wed Jan 2 18:14:41 2013

(use jni jni-reflection srfi-18 expand-full)


(begin-for-syntax
 (require-library jni)
 (require-library jni-reflection)
 (import-for-syntax jni)
 (import-for-syntax jni-reflection)
 (jvm-init "android.jar"))

(define-syntax jimport
  (er-macro-transformer
   (lambda (x r c)
     (let* ((%begin   (r 'begin))
	    (%define  (r 'define))
	    (%class   (r 'class))

	    (class-symbol  (cadr  x))
	    (prefix        (string-append (symbol->string (caddr x)) "-"))
	    (class-getter  (string->symbol (string-append prefix "class")))
	    (class-methods (methods (class class-symbol))))

       (cons %begin
	     (append
	      (map (lambda (m)
		     `(,%jimport-method m))
		   class-methods)
	      `(,%define (,class-getter)
			 (,%class ,class-symbol))))))))

(define-syntax jimport-method
  (er-macro-transformer
   (lambda (x r c)
     (let* ((%begin    (r 'begin))
	    (%define   (r 'define)))
       `(,%begin
	 (,%define bar))))))


(print (expand* '(jimport java.lang.String jstring)))

(jimport java.lang.String jstring)
(jprint (jstring-class))