From 31b545afff0e95c1aa872a227638e0ed455eba42 Mon Sep 17 00:00:00 2001 From: IamMaxim Date: Tue, 1 Mar 2022 15:23:15 +0300 Subject: [PATCH] Fixed single-file translation --- src/main/java/main/Main.kt | 14 ++++++++++++-- src/test/resources/polystat_tests/test1/Main.java | 2 -- .../resources/polystat_tests/test1/test/Test.java | 6 ++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/java/main/Main.kt b/src/main/java/main/Main.kt index 85273b2a..3759c94c 100644 --- a/src/main/java/main/Main.kt +++ b/src/main/java/main/Main.kt @@ -1,5 +1,6 @@ package main +import arrow.core.getOrElse import eotree.EOProgram import lexer.Scanner import org.apache.commons.cli.* @@ -98,8 +99,17 @@ object Main { translatedFiles.forEach { (file, eoProgram) -> val targetText = eoProgram.generateEO(0) - val outputPath = (cmd.getOptionValue("o") + "/" + file.path.replace(cmd.argList[0], "")) - .replace("//", "/").replace(".java", ".eo") + + val output_dir = cmd.getOptionValue("o") + "/"; + val output_filename = + eoProgram.metas.packageName.getOrElse { "" } + "/" + + file.path.substringAfterLast("/") + + val outputPath = + (output_dir + output_filename) + .replace("//", "/") + .replace(".java", ".eo") + println("Printing output to file $outputPath") File(outputPath.substringBeforeLast("/")).mkdirs() PrintWriter(outputPath).use { writer -> writer.println(targetText) } diff --git a/src/test/resources/polystat_tests/test1/Main.java b/src/test/resources/polystat_tests/test1/Main.java index 2e82c903..3a156caf 100644 --- a/src/test/resources/polystat_tests/test1/Main.java +++ b/src/test/resources/polystat_tests/test1/Main.java @@ -1,5 +1,3 @@ - - public class Main { int divide(int x, int y) { return x / y; diff --git a/src/test/resources/polystat_tests/test1/test/Test.java b/src/test/resources/polystat_tests/test1/test/Test.java index e76ed505..ade8d7d3 100644 --- a/src/test/resources/polystat_tests/test1/test/Test.java +++ b/src/test/resources/polystat_tests/test1/test/Test.java @@ -1,8 +1,6 @@ - - public class Test { boolean test() { - var main = new Main(); + Main main = 1; main.divide(4, 0); } -} \ No newline at end of file +}