Changeset 15065
- Timestamp:
- 06/09/17 08:50:52 (6 years ago)
- Location:
- trunk/abcl/contrib/jss
- Files:
-
- 3 added
- 4 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/contrib/jss/invoke.lisp
r15064 r15065 206 206 (eval-when (:compile-toplevel :load-toplevel :execute) 207 207 (defun read-invoke (stream char arg) 208 (if (eql arg 1) 209 (progn (require 'javaparser) 210 (read-sharp-java-expression stream)) 211 (progn 212 (unread-char char stream) 213 (let ((name (read stream))) 214 (if (or (find #\. name) (find #\{ name)) 215 (jss-transform-to-field name) 216 (let ((object-var (gensym)) 217 (args-var (gensym))) 218 `(lambda (,object-var &rest ,args-var) 219 (invoke-restargs ,name ,object-var ,args-var ,(eql arg 0))))))))) 208 (unread-char char stream) 209 (let ((name (read stream))) 210 (if (or (find #\. name) (find #\{ name)) 211 (jss-transform-to-field name) 212 (let ((object-var (gensym)) 213 (args-var (gensym))) 214 `(lambda (,object-var &rest ,args-var) 215 (invoke-restargs ,name ,object-var ,args-var ,(eql arg 0))))))) 220 216 (set-dispatch-macro-character #\# #\" 'read-invoke)) 221 217 -
trunk/abcl/contrib/jss/javaparser.asd
r15062 r15065 1 ( asdf:defsystem :javaparser1 (defsystem javaparser 2 2 :description "https://github.com/javaparser/javaparser" 3 :serial t 4 :components ((:mvn "com.github.javaparser/javaparser-core/3.0.1") 5 (:file "javaparser") 6 (:file "read-sharp-quote-expression"))) 3 :defsystem-depends-on (abcl-asdf) 4 :components 5 ((:module jar 6 :components ((:mvn "com.github.javaparser/javaparser-core/3.0.1"))) 7 (:module source :depends-on (jar) 8 :pathname "" 9 :serial t 10 :components ((:file "javaparser") 11 (:file "read-sharp-quote-expression")))) 12 :perform (asdf:test-op (op c) 13 (asdf:test-system :javaparser-tests))) 14 15 -
trunk/abcl/contrib/jss/javaparser.lisp
r15062 r15065 63 63 symbol)) 64 64 65 (eval-when (:compile-toplevel :load-toplevel :execute) 66 (defun read-invoke/javaparser (stream char arg) 67 (if (eql arg 1) 68 (if (ignore-errors (jclass "com.github.javaparser.ParseStart")) ;; chosen randomly, TODO memoize 69 (read-sharp-java-expression stream) 70 ;; Deal with possiblity of not loading jar 71 (error "Cannot load javaparser code needed for the #1 macro")) 72 (progn 73 (unread-char char stream) 74 (let ((name (read stream))) 75 (if (or (find #\. name) (find #\{ name)) 76 (jss-transform-to-field name) 77 (let ((object-var (gensym)) 78 (args-var (gensym))) 79 `(lambda (,object-var &rest ,args-var) 80 (invoke-restargs ,name ,object-var ,args-var ,(eql arg 0))))))))) 81 (set-dispatch-macro-character #\# #\" 'read-invoke/javaparser)) 65 82 66 83 -
trunk/abcl/contrib/jss/jss-tests.asd
r15008 r15065 6 6 prove) 7 7 :components ((:module tests 8 :pathname " "8 :pathname "t" 9 9 :components ((:test-file "jss-tests")))) 10 10 :perform (asdf:test-op (op c) -
trunk/abcl/contrib/jss/t/jss-tests.lisp
r15064 r15065 60 60 (finalize) 61 61 62 (plan 1)63 64 (in-package :jss)65 (defparameter expanded '(let ((jss::this jss::*object-for-this*))66 (jcall "getLoaded"67 (jcall "load"68 (jcall "make"69 (jcall "intercept"70 (jcall "method"71 (jcall "subclass"72 (new '|ByteBuddy|)73 (find-java-class '|Object|)74 t)75 (jstatic "named"76 '|ElementMatchers|77 "toString"))78 (jstatic "value"79 '|FixedValue|80 "Hello World!")))81 (jcall "getClassLoader"82 (jcall "getClass" jss::this))))))83 84 (defparameter source '#1"new ByteBuddy().subclass(Object.class,t)85 .method(ElementMatchers.named("toString"))86 .intercept(FixedValue.value("Hello World!"))87 .make()88 .load(getClass().getClassLoader())89 .getLoaded()" )90 91 (in-package :jss-test)92 93 (is jss::source94 jss::expanded)95 96 (finalize)
Note: See TracChangeset
for help on using the changeset viewer.