diff options
Diffstat (limited to 'src/main')
3 files changed, 16 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java index 82c2f9b..3e1a266 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java @@ -141,6 +141,10 @@ public class JavaWriter implements AutoCloseable { case JavaStaticMethodCall staticMethodCall -> { writeStaticMethodCall(staticMethodCall); } + + case JavaStringLiteral stringLiteral -> { + writeStringLiteral(stringLiteral); + } } } @@ -303,6 +307,13 @@ public class JavaWriter implements AutoCloseable { this.writer.write(")"); } + private void writeStringLiteral(JavaStringLiteral stringLiteral) throws IOException { + // TODO: escaping + this.writer.write("\""); + this.writer.write(stringLiteral.value()); + this.writer.write("\""); + } + void writeTypeRef(JavaTypeRef type) throws IOException { writeTypeRef(type, writer::write); } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaExpression.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaExpression.java index 63ee145..a8cb596 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaExpression.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaExpression.java @@ -1,4 +1,4 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast; -public sealed interface JavaExpression permits JavaIntegerLiteral, JavaMethodCall, JavaNewExpression, JavaRef, JavaStaticMethodCall { +public sealed interface JavaExpression permits JavaIntegerLiteral, JavaMethodCall, JavaNewExpression, JavaRef, JavaStaticMethodCall, JavaStringLiteral { } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaStringLiteral.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaStringLiteral.java new file mode 100644 index 0000000..28fc5d7 --- /dev/null +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaStringLiteral.java @@ -0,0 +1,4 @@ +package org.zwobble.hobgoblin.compiler.output.lang.java.ast; + +public record JavaStringLiteral(String value) implements JavaExpression { +} |
