├── .gitignore ├── LICENSE ├── README.md ├── README_SSA.md ├── ftfjp23-fixed.pdf ├── jvm └── src │ └── test │ └── scala │ └── obsidian │ └── lang │ └── java │ └── obsidian │ ├── TestASTPath.scala │ ├── TestCFG.scala │ ├── TestCPS.scala │ ├── TestDesugar.scala │ ├── TestFlatten.scala │ ├── TestLabel.scala │ ├── TestMinSSA.scala │ ├── TestSSA.scala │ ├── TestSSABenchmark.scala │ ├── TestSSACFG.scala │ └── TestSSADL.scala ├── output ├── Test.java └── output.java ├── pepm21-fixed.pdf ├── project ├── build.properties └── plugins.sbt ├── shared └── src │ └── main │ └── scala │ └── obsidian │ └── lang │ └── java │ ├── Main.scala │ └── obsidian │ ├── ASTPath.scala │ ├── ASTUtils.scala │ ├── CFG.scala │ ├── CPS.scala │ ├── CPSFixture.scala │ ├── Common.scala │ ├── Desugar.scala │ ├── Flatten.scala │ ├── Label.scala │ ├── MinSSA.scala │ ├── Obfuscate.scala │ ├── Obsidian.scala │ ├── SSA.scala │ ├── SSABenchmark.scala │ └── SSACFG.scala └── test_code ├── Bubble.java ├── BubbleCPS.java ├── BubbleSSA.java ├── ContBreak.java └── LabeledBreak.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/README.md -------------------------------------------------------------------------------- /README_SSA.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/README_SSA.md -------------------------------------------------------------------------------- /ftfjp23-fixed.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/ftfjp23-fixed.pdf -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestASTPath.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestASTPath.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestCFG.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestCFG.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestCPS.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestCPS.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestDesugar.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestDesugar.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestFlatten.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestFlatten.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestLabel.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestLabel.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestMinSSA.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestMinSSA.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestSSA.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestSSA.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestSSABenchmark.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestSSABenchmark.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestSSACFG.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestSSACFG.scala -------------------------------------------------------------------------------- /jvm/src/test/scala/obsidian/lang/java/obsidian/TestSSADL.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/jvm/src/test/scala/obsidian/lang/java/obsidian/TestSSADL.scala -------------------------------------------------------------------------------- /output/Test.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/output/Test.java -------------------------------------------------------------------------------- /output/output.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/output/output.java -------------------------------------------------------------------------------- /pepm21-fixed.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/pepm21-fixed.pdf -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=1.9.7 2 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/project/plugins.sbt -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/Main.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/Main.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/ASTPath.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/ASTPath.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/ASTUtils.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/ASTUtils.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/CFG.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/CFG.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/CPS.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/CPS.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/CPSFixture.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/CPSFixture.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/Common.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/Common.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/Desugar.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/Desugar.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/Flatten.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/Flatten.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/Label.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/Label.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/MinSSA.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/MinSSA.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/Obfuscate.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/Obfuscate.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/Obsidian.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/Obsidian.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/SSA.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/SSA.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/SSABenchmark.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/SSABenchmark.scala -------------------------------------------------------------------------------- /shared/src/main/scala/obsidian/lang/java/obsidian/SSACFG.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/shared/src/main/scala/obsidian/lang/java/obsidian/SSACFG.scala -------------------------------------------------------------------------------- /test_code/Bubble.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/test_code/Bubble.java -------------------------------------------------------------------------------- /test_code/BubbleCPS.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/test_code/BubbleCPS.java -------------------------------------------------------------------------------- /test_code/BubbleSSA.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/test_code/BubbleSSA.java -------------------------------------------------------------------------------- /test_code/ContBreak.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/test_code/ContBreak.java -------------------------------------------------------------------------------- /test_code/LabeledBreak.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obsidian-java/obsidian/HEAD/test_code/LabeledBreak.java --------------------------------------------------------------------------------