His other project "Byte Me", along with judicious javap usage, has been super useful for me learning JVM bytecode so I could make a machine learning model compiler for the JVM (basically compile your ML models as native code; ONNX, tree ensembles, regressors, classifiers, etc as native JVM classes with no massive runtime needed)
still in the works, but its here for those interested: Petrify: https://github.com/exabrial/petrify
Why not compiling it to Java source code (not bytecode)? Users would use their own Java compiler then.
Same as, say, ANTLR generates code to parse various texts to AST.