From 0ae509504c81f77d95cdf1dc0c474177cab538a0 Mon Sep 17 00:00:00 2001 From: Mike Strobel Date: Fri, 18 Jun 2021 20:36:04 -0400 Subject: [PATCH] Decent support for switch expressions, but more comprehensive support would require rewriting them in the bytecode AST layer. --- .idea/inspectionProfiles/Project_Default.xml | 3 + .../com/strobel/decompiler/ITextOutput.java | 2 + .../strobel/decompiler/PlainTextOutput.java | 20 +- .../languages/java/JavaOutputVisitor.java | 156 +++++++- .../languages/java/ast/BreakStatement.java | 36 +- .../java/ast/DepthFirstAstVisitor.java | 10 + .../languages/java/ast/IAstVisitor.java | 2 + .../languages/java/ast/JavaNameResolver.java | 10 + .../languages/java/ast/SwitchExpression.java | 71 ++++ .../java/ast/SwitchExpressionArm.java | 91 +++++ .../languages/java/ast/SwitchSection.java | 4 +- .../RewriteSwitchExpressionsTransform.java | 374 ++++++++++++++++++ .../transforms/TransformationPipeline.java | 1 + 13 files changed, 752 insertions(+), 28 deletions(-) create mode 100644 Procyon.CompilerTools/src/main/java/com/strobel/decompiler/languages/java/ast/SwitchExpression.java create mode 100644 Procyon.CompilerTools/src/main/java/com/strobel/decompiler/languages/java/ast/SwitchExpressionArm.java create mode 100644 Procyon.CompilerTools/src/main/java/com/strobel/decompiler/languages/java/ast/transforms/RewriteSwitchExpressionsTransform.java diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index fe325ec4..5d9df32e 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -6,6 +6,9 @@