summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/java/JavaGenerator.java30
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java13
2 files changed, 32 insertions, 11 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/java/JavaGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/java/JavaGenerator.java
new file mode 100644
index 0000000..d3914de
--- /dev/null
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/java/JavaGenerator.java
@@ -0,0 +1,30 @@
+package org.zwobble.hobgoblin.compiler.output.generators.java;
+
+import org.zwobble.hobgoblin.compiler.output.lang.java.JavaWriter;
+import org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.util.List;
+
+public class JavaGenerator {
+ private void JavaGenerator() {}
+
+ public static void write(
+ Path sourceRootDirectory,
+ List<JavaCompilationUnit> javaCompilationUnits
+ ) throws IOException {
+ for (var javaCompilationUnit : javaCompilationUnits) {
+ var javaCompilationUnitPath = sourceRootDirectory
+ .resolve(String.join(File.separator, javaCompilationUnit.packageName()))
+ .resolve(javaCompilationUnit.typeDeclaration().name() + ".java");
+ try (var writer = JavaWriter.file(javaCompilationUnitPath)) {
+ writer.writeCompilationUnit(javaCompilationUnit);
+ } catch (Exception e) {
+ // TODO: better handling
+ throw new RuntimeException(e);
+ }
+ }
+ }
+}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
index 653da8d..9d50bed 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
@@ -5,6 +5,7 @@ import org.zwobble.hobgoblin.compiler.ast.typed.*;
import org.zwobble.hobgoblin.compiler.builtins.NativeTypes;
import org.zwobble.hobgoblin.compiler.config.OutputConfig;
import org.zwobble.hobgoblin.compiler.output.generators.Generator;
+import org.zwobble.hobgoblin.compiler.output.generators.java.JavaGenerator;
import org.zwobble.hobgoblin.compiler.output.lang.java.JavaWriter;
import org.zwobble.hobgoblin.compiler.output.lang.java.ast.*;
import org.zwobble.hobgoblin.compiler.parser.Parser;
@@ -101,17 +102,7 @@ public class JavaTypesGenerator implements Generator {
for (var namespace : namespaces) {
var javaCompilationUnits = generateNamespace(namespace, context);
- for (var javaCompilationUnit : javaCompilationUnits) {
- var javaCompilationUnitPath = this.sourceRootDirectory
- .resolve(String.join(File.separator, javaCompilationUnit.packageName()))
- .resolve(javaCompilationUnit.typeDeclaration().name() + ".java");
- try (var writer = JavaWriter.file(javaCompilationUnitPath)) {
- writer.writeCompilationUnit(javaCompilationUnit);
- } catch (Exception e) {
- // TODO: better handling
- throw new RuntimeException(e);
- }
- }
+ JavaGenerator.write(this.sourceRootDirectory, javaCompilationUnits);
}
}