This is a Java decompiler that I've been doing since the beginning of 2022 (intermittently). Writing it in C++ turned out to be a mistake, so I moved it to Java. Maybe I'll finish it someday, but I need to add a more functionality.
- for(E e : arr)
- Jar support
- finally
- switch
- break/continue
- Reading Java assembly code
- A system of primitive types (the type of a variable is determined by its use)
- Call via
super
- Annotations
- if/else
- for(;;)
- while
- Ternary operator
- Operators && and ||
- Individual variables
- Generics
- Lambdas
- try/catch
- sealed classes
- records
- Selection of variable names
- Ability to omit
this
and the current class - Declaration of fields separated by commas
- Variable names from LocalVariableTable
- Recognition of constants in the current class, as well as standard constants (Math.PI, Double.NaN, etc.)
- Annotation @Override
- ArgParser - https://github.com/petr590/ArgParser
- x590.util - https://github.com/petr590/x590.util
- fastutil
- junit (for testing)