acc-public
acc-private
acc-protected
acc-static
acc-final
acc-synchronized
acc-volatile
acc-transient
acc-native
acc-interface
acc-abstract
define
(define symbol binding)
set!
(set! symbol binding)
lambda
(lambda (arg1 arg2 ...) body)
quote
(quote body)
car
(car (a1 a2 ...))
cdr
(cdr (a1 a2 ...))
cons
(cons a1 (a2 a3...))
+
(+ num1 num2)
-
(- num1 num2)
*
(* num1 num2)
/
(/ num1 num2)
|
(| num1 num2)
cond
(cond (expr1 body1) (expr2 body2) ...)
>
(> num1 num2)
<
(< num1 num2)
eq?
(eq? obj1 obj2)
num?
(num? something)
string?
(string? something)
progn
(progn body1 body2 ...)
mapcar
(mapcar fn (arg1 arg2 ...))
make-ascii-cpe
(make-ascii-cpe "stringval")
make-class-cpe
(make-class-cpe "classname")
make-name-type-cpe
(make-name-type-cpe "name" "signature")
make-field-cpe
(make-field-cpe "classname" "fieldname" "signature")
make-interface-cpe
(make-interface-cpe "classname" "interfacename" "signature")
make-integer-cpe
(make-integer-cpe num)
make-float-cpe
(make-float-cpe num)
make-long-cpe
(make-long-cpe num)
make-double-cpe
(make-double-cpe num)
make-string-cpe
(make-string-cpe "string val")
make-method-cpe
(make-method-cpe "classname" "methodname" "signature")
bipush
sipush
ret
iload
lload
fload
dload
aload
istore
lstore
fstore
dstore
astore
newarray
(bipush 3)
jsr
goto
if_acmpne
if_acmpeq
if_icmpge
if_icmple
if_icmpgt
if_icmplt
if_icmpne
if_icmpeq
ifge
ifgt
ifne
ifle
iflt
ifeq
ifnull
ifnonnull
goto_w
jsr_w
(jsr (make-label "targetname"))
anewarray
ldc_w
ldc2_w
invokenonvirtual
invokestatic
invokevirtual
new
checkcast
instanceof
getstatic
putstatic
getfield
putfield
ldc
(ldc (make-string-cpe "someval"))
invokeinterface
(invokeinterface cpeitem numargs)
iinc
(iinc varindex const)
multinewarray
(multinewarray cpe dimensions)
make-field
(jas-define-class access cpeitem-name cpeitem-signature [optional constant attribute])
make-const
(make-const const-cpe-item)
make-outputstream
(make-outputstream "filename")
make-label
(make-label "sometarget") (pop) (pop) (goto (make-label "sometarget"))demonstrates the method, but be aware that this example will not pass the verifier, since the stack depths are not identical. You can reuse labels, or create new ones. Equivalence is solely by the name used to create the label.
make-class-env
(make-class-env)
make-code
(make-code)
make-exception
(make-exception)
make-catchtable
(make-catchtable)
make-catch-entry
(make-catch-entry)
jas-class-addcpe
(jas-class-addcpe class-env cpeitem)
jas-class-addfield
(jas-class-addfield class-env field)
jas-class-addinterface
(jas-class-addinterface class-env cpe-item)
jas-class-setclass
(jas-class-setclass class-env cpeitem)
jas-class-setsuperclass
(jas-class-setsuperclass class-env cpeitem)
jas-class-addmethod
(jas-class-addmethod class-env access "methodname" "methodsignature"
code-body exception-attribute)
jas-class-setaccess
(jas-class-setaccess class-env access)
jas-class-write
(jas-class-write class-env outputstream)
jas-code-addinsn
(jas-code-addinsn code-body insn)
jas-code-stack-size
(jas-code-stack-size code-body num)
jas-code-var-size
(jas-code-var-size code-body num)
jas-set-catchtable
(jas-set-catchtable code-body catch-table)
jas-exception-add
(jas-exception-add exception cpe-item)
jas-add-catch-entry
(jas-add-catch-entry catchtable catchentry)