Ignore:
Timestamp:
06/09/17 19:26:28 (6 years ago)
Author:
Mark Evenson
Message:

Further fixes for JSS

JAVAPARSER now "stacks" its macro definition on the existing one it
inherits from JSS.

Refactor all tests to just pollute CL-USER where necessary (strictly
speaking it shouldn't be necessary as all PROVE tests should be able
to use lexical bindings.

Document existence of Java field access via SHARPSIGN-QUOTATION_MARK,
e.g.

(#"{java.lang.System}.{fileSeparator}")

and the new Java DSL

(asdf:make :javaparser)
(#"'#1"new ByteBuddy?()

.subclass(Object.class,t)
.method(ElementMatchers?.named("toString"))
.intercept(FixedValue?.value("Hello World!"))
.make()
.load(getClass().getClassLoader())
.getLoaded()"

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/contrib/jss/javaparser.lisp

    r15065 r15066  
    6666  (defun read-invoke/javaparser (stream char arg)
    6767    (if (eql arg 1)
    68         (if (ignore-errors (jclass "com.github.javaparser.ParseStart")) ;; chosen randomly, TODO memoize
     68
     69        (if (ignore-errors
     70              (jclass "com.github.javaparser.ParseStart"))         ;; chosen randomly, TODO memoize
    6971            (read-sharp-java-expression stream)
    7072            ;; Deal with possiblity of not loading jar
    7173            (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)))))))))
     74        (read-invoke stream char arg)))
    8175  (set-dispatch-macro-character #\# #\" 'read-invoke/javaparser))
    8276
Note: See TracChangeset for help on using the changeset viewer.