From 7ecc00c036ae9380bafa80060dc35756195e9c1a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 2 Jul 2026 10:56:36 +0100 Subject: Split native type example to example with/without custom config --- examples/04-native-type/hobgoblin.json5 | 6 --- .../src/main/java/org/zwobble/example/Main.java | 1 + .../src/main/java/org/zwobble/example/Point.java | 4 -- .../example/types/point/HobgoblinNativePoint.java | 2 - .../org/zwobble/example/types/point/Point.java | 4 ++ examples/05-custom-code/hobgoblin.json5 | 9 ----- examples/05-custom-code/output/java/.gitignore | 2 - examples/05-custom-code/output/java/pom.xml | 39 ------------------ .../src/main/java/org/zwobble/example/Main.java | 10 ----- .../org/zwobble/example/types/shapes/Square.java | 33 --------------- examples/05-custom-code/src/shapes.hob | 3 -- .../05-native-type-custom-config/hobgoblin.json5 | 15 +++++++ .../output/java/.gitignore | 2 + .../output/java/pom.xml | 39 ++++++++++++++++++ .../src/main/java/org/zwobble/example/Main.java | 9 +++++ .../src/main/java/org/zwobble/example/Point.java | 4 ++ .../example/types/point/HobgoblinNativePoint.java | 9 +++++ .../05-native-type-custom-config/src/point.hob | 8 ++++ examples/06-custom-code/hobgoblin.json5 | 9 +++++ examples/06-custom-code/output/java/.gitignore | 2 + examples/06-custom-code/output/java/pom.xml | 39 ++++++++++++++++++ .../src/main/java/org/zwobble/example/Main.java | 10 +++++ .../org/zwobble/example/types/shapes/Square.java | 33 +++++++++++++++ examples/06-custom-code/src/shapes.hob | 3 ++ examples/06-imports/hobgoblin.json5 | 13 ------ examples/06-imports/output/java/.gitignore | 2 - examples/06-imports/output/java/pom.xml | 47 ---------------------- .../src/main/java/org/zwobble/example/Main.java | 12 ------ examples/06-imports/output/rust/.gitignore | 1 - examples/06-imports/output/rust/Cargo.lock | 7 ---- examples/06-imports/output/rust/Cargo.toml | 6 --- .../06-imports/output/rust/rust-toolchain.toml | 2 - examples/06-imports/output/rust/src/line.rs | 5 --- examples/06-imports/output/rust/src/main.rs | 11 ----- examples/06-imports/output/rust/src/point.rs | 5 --- examples/06-imports/src/line.hob | 7 ---- examples/06-imports/src/point.hob | 5 --- examples/07-enum/hobgoblin.json5 | 13 ------ examples/07-enum/output/java/.gitignore | 2 - examples/07-enum/output/java/pom.xml | 47 ---------------------- .../src/main/java/org/zwobble/example/Main.java | 9 ----- examples/07-enum/output/rust/.gitignore | 1 - examples/07-enum/output/rust/Cargo.lock | 7 ---- examples/07-enum/output/rust/Cargo.toml | 6 --- examples/07-enum/output/rust/rust-toolchain.toml | 2 - examples/07-enum/output/rust/src/main.rs | 7 ---- examples/07-enum/output/rust/src/numbers.rs | 6 --- examples/07-enum/src/numbers.hob | 6 --- examples/07-imports/hobgoblin.json5 | 13 ++++++ examples/07-imports/output/java/.gitignore | 2 + examples/07-imports/output/java/pom.xml | 47 ++++++++++++++++++++++ .../src/main/java/org/zwobble/example/Main.java | 12 ++++++ examples/07-imports/output/rust/.gitignore | 1 + examples/07-imports/output/rust/Cargo.lock | 7 ++++ examples/07-imports/output/rust/Cargo.toml | 6 +++ .../07-imports/output/rust/rust-toolchain.toml | 2 + examples/07-imports/output/rust/src/line.rs | 5 +++ examples/07-imports/output/rust/src/main.rs | 11 +++++ examples/07-imports/output/rust/src/point.rs | 5 +++ examples/07-imports/src/line.hob | 7 ++++ examples/07-imports/src/point.hob | 5 +++ examples/08-enum/hobgoblin.json5 | 13 ++++++ examples/08-enum/output/java/.gitignore | 2 + examples/08-enum/output/java/pom.xml | 47 ++++++++++++++++++++++ .../src/main/java/org/zwobble/example/Main.java | 9 +++++ examples/08-enum/output/rust/.gitignore | 1 + examples/08-enum/output/rust/Cargo.lock | 7 ++++ examples/08-enum/output/rust/Cargo.toml | 6 +++ examples/08-enum/output/rust/rust-toolchain.toml | 2 + examples/08-enum/output/rust/src/main.rs | 7 ++++ examples/08-enum/output/rust/src/numbers.rs | 6 +++ examples/08-enum/src/numbers.hob | 6 +++ 72 files changed, 416 insertions(+), 337 deletions(-) delete mode 100644 examples/04-native-type/output/java/src/main/java/org/zwobble/example/Point.java create mode 100644 examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java delete mode 100644 examples/05-custom-code/hobgoblin.json5 delete mode 100644 examples/05-custom-code/output/java/.gitignore delete mode 100644 examples/05-custom-code/output/java/pom.xml delete mode 100644 examples/05-custom-code/output/java/src/main/java/org/zwobble/example/Main.java delete mode 100644 examples/05-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java delete mode 100644 examples/05-custom-code/src/shapes.hob create mode 100644 examples/05-native-type-custom-config/hobgoblin.json5 create mode 100644 examples/05-native-type-custom-config/output/java/.gitignore create mode 100644 examples/05-native-type-custom-config/output/java/pom.xml create mode 100644 examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java create mode 100644 examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java create mode 100644 examples/05-native-type-custom-config/src/point.hob create mode 100644 examples/06-custom-code/hobgoblin.json5 create mode 100644 examples/06-custom-code/output/java/.gitignore create mode 100644 examples/06-custom-code/output/java/pom.xml create mode 100644 examples/06-custom-code/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/06-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java create mode 100644 examples/06-custom-code/src/shapes.hob delete mode 100644 examples/06-imports/hobgoblin.json5 delete mode 100644 examples/06-imports/output/java/.gitignore delete mode 100644 examples/06-imports/output/java/pom.xml delete mode 100644 examples/06-imports/output/java/src/main/java/org/zwobble/example/Main.java delete mode 100644 examples/06-imports/output/rust/.gitignore delete mode 100644 examples/06-imports/output/rust/Cargo.lock delete mode 100644 examples/06-imports/output/rust/Cargo.toml delete mode 100644 examples/06-imports/output/rust/rust-toolchain.toml delete mode 100644 examples/06-imports/output/rust/src/line.rs delete mode 100644 examples/06-imports/output/rust/src/main.rs delete mode 100644 examples/06-imports/output/rust/src/point.rs delete mode 100644 examples/06-imports/src/line.hob delete mode 100644 examples/06-imports/src/point.hob delete mode 100644 examples/07-enum/hobgoblin.json5 delete mode 100644 examples/07-enum/output/java/.gitignore delete mode 100644 examples/07-enum/output/java/pom.xml delete mode 100644 examples/07-enum/output/java/src/main/java/org/zwobble/example/Main.java delete mode 100644 examples/07-enum/output/rust/.gitignore delete mode 100644 examples/07-enum/output/rust/Cargo.lock delete mode 100644 examples/07-enum/output/rust/Cargo.toml delete mode 100644 examples/07-enum/output/rust/rust-toolchain.toml delete mode 100644 examples/07-enum/output/rust/src/main.rs delete mode 100644 examples/07-enum/output/rust/src/numbers.rs delete mode 100644 examples/07-enum/src/numbers.hob create mode 100644 examples/07-imports/hobgoblin.json5 create mode 100644 examples/07-imports/output/java/.gitignore create mode 100644 examples/07-imports/output/java/pom.xml create mode 100644 examples/07-imports/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/07-imports/output/rust/.gitignore create mode 100644 examples/07-imports/output/rust/Cargo.lock create mode 100644 examples/07-imports/output/rust/Cargo.toml create mode 100644 examples/07-imports/output/rust/rust-toolchain.toml create mode 100644 examples/07-imports/output/rust/src/line.rs create mode 100644 examples/07-imports/output/rust/src/main.rs create mode 100644 examples/07-imports/output/rust/src/point.rs create mode 100644 examples/07-imports/src/line.hob create mode 100644 examples/07-imports/src/point.hob create mode 100644 examples/08-enum/hobgoblin.json5 create mode 100644 examples/08-enum/output/java/.gitignore create mode 100644 examples/08-enum/output/java/pom.xml create mode 100644 examples/08-enum/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/08-enum/output/rust/.gitignore create mode 100644 examples/08-enum/output/rust/Cargo.lock create mode 100644 examples/08-enum/output/rust/Cargo.toml create mode 100644 examples/08-enum/output/rust/rust-toolchain.toml create mode 100644 examples/08-enum/output/rust/src/main.rs create mode 100644 examples/08-enum/output/rust/src/numbers.rs create mode 100644 examples/08-enum/src/numbers.hob diff --git a/examples/04-native-type/hobgoblin.json5 b/examples/04-native-type/hobgoblin.json5 index 89048ac..651afad 100644 --- a/examples/04-native-type/hobgoblin.json5 +++ b/examples/04-native-type/hobgoblin.json5 @@ -4,12 +4,6 @@ generator: "java-types", path: "output/java/src/gen/java", packageName: "org.zwobble.example.types", - nativeTypes: [ - { - hobgoblin: "point.Point", - java: "org.zwobble.example.Point", - } - ] }, ], } diff --git a/examples/04-native-type/output/java/src/main/java/org/zwobble/example/Main.java b/examples/04-native-type/output/java/src/main/java/org/zwobble/example/Main.java index f6a4443..b2efcc1 100644 --- a/examples/04-native-type/output/java/src/main/java/org/zwobble/example/Main.java +++ b/examples/04-native-type/output/java/src/main/java/org/zwobble/example/Main.java @@ -1,6 +1,7 @@ package org.zwobble.example; import org.zwobble.example.types.point.Line; +import org.zwobble.example.types.point.Point; public class Main { public static void main() { diff --git a/examples/04-native-type/output/java/src/main/java/org/zwobble/example/Point.java b/examples/04-native-type/output/java/src/main/java/org/zwobble/example/Point.java deleted file mode 100644 index 8862a62..0000000 --- a/examples/04-native-type/output/java/src/main/java/org/zwobble/example/Point.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.zwobble.example; - -public record Point(int x, int y) { -} diff --git a/examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java b/examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java index 74ac856..bdb5427 100644 --- a/examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java +++ b/examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java @@ -1,7 +1,5 @@ package org.zwobble.example.types.point; -import org.zwobble.example.Point; - public class HobgoblinNativePoint { public static Point arbitraryPoint() { return new Point(0, 0); diff --git a/examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java b/examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java new file mode 100644 index 0000000..cd26290 --- /dev/null +++ b/examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java @@ -0,0 +1,4 @@ +package org.zwobble.example.types.point; + +public record Point(int x, int y) { +} diff --git a/examples/05-custom-code/hobgoblin.json5 b/examples/05-custom-code/hobgoblin.json5 deleted file mode 100644 index 19cd31b..0000000 --- a/examples/05-custom-code/hobgoblin.json5 +++ /dev/null @@ -1,9 +0,0 @@ -{ - outputs: [ - { - generator: "java-types", - path: "output/java/src/main/java", - packageName: "org.zwobble.example.types" - }, - ], -} diff --git a/examples/05-custom-code/output/java/.gitignore b/examples/05-custom-code/output/java/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/05-custom-code/output/java/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/05-custom-code/output/java/pom.xml b/examples/05-custom-code/output/java/pom.xml deleted file mode 100644 index 7493667..0000000 --- a/examples/05-custom-code/output/java/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - 4.0.0 - - org.zwobble.hobgoblin.examples - example - 1.0-SNAPSHOT - - - UTF-8 - 25 - 25 - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 3.6.1 - - - add-source - generate-sources - - add-source - - - - src/gen/java - - - - - - - - diff --git a/examples/05-custom-code/output/java/src/main/java/org/zwobble/example/Main.java b/examples/05-custom-code/output/java/src/main/java/org/zwobble/example/Main.java deleted file mode 100644 index 2d2366d..0000000 --- a/examples/05-custom-code/output/java/src/main/java/org/zwobble/example/Main.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.zwobble.example; - -import org.zwobble.example.types.shapes.Square; - -public class Main { - public static void main() { - Square square = new Square(10); - assert square.area() == 100; - } -} diff --git a/examples/05-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java b/examples/05-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java deleted file mode 100644 index 169d729..0000000 --- a/examples/05-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java +++ /dev/null @@ -1,33 +0,0 @@ -// Generated by hobgoblin. - -package org.zwobble.example.types.shapes; - -// Custom area start: org.zwobble.example.types.shapes.Square imports -// Custom area end: org.zwobble.example.types.shapes.Square imports - -public record Square(int width) { - public static org.zwobble.example.types.shapes.Square.Builder arbitrary() { - return new org.zwobble.example.types.shapes.Square.Builder(0); - } - - public record Builder(int width) { - public org.zwobble.example.types.shapes.Square build() { - return new org.zwobble.example.types.shapes.Square(width); - } - - public org.zwobble.example.types.shapes.Square.Builder withWidth(int width) { - return new org.zwobble.example.types.shapes.Square.Builder(width); - } - - // Custom area start: org.zwobble.example.types.shapes.Square.Builder body - // Custom area end: org.zwobble.example.types.shapes.Square.Builder body - } - - // Custom area start: org.zwobble.example.types.shapes.Square body - - public int area() { - return this.width * this.width; - } - - // Custom area end: org.zwobble.example.types.shapes.Square body -} diff --git a/examples/05-custom-code/src/shapes.hob b/examples/05-custom-code/src/shapes.hob deleted file mode 100644 index 5dfe833..0000000 --- a/examples/05-custom-code/src/shapes.hob +++ /dev/null @@ -1,3 +0,0 @@ -struct Square { - field width: Int32; -} diff --git a/examples/05-native-type-custom-config/hobgoblin.json5 b/examples/05-native-type-custom-config/hobgoblin.json5 new file mode 100644 index 0000000..89048ac --- /dev/null +++ b/examples/05-native-type-custom-config/hobgoblin.json5 @@ -0,0 +1,15 @@ +{ + outputs: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + packageName: "org.zwobble.example.types", + nativeTypes: [ + { + hobgoblin: "point.Point", + java: "org.zwobble.example.Point", + } + ] + }, + ], +} diff --git a/examples/05-native-type-custom-config/output/java/.gitignore b/examples/05-native-type-custom-config/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/05-native-type-custom-config/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/05-native-type-custom-config/output/java/pom.xml b/examples/05-native-type-custom-config/output/java/pom.xml new file mode 100644 index 0000000..7493667 --- /dev/null +++ b/examples/05-native-type-custom-config/output/java/pom.xml @@ -0,0 +1,39 @@ + + 4.0.0 + + org.zwobble.hobgoblin.examples + example + 1.0-SNAPSHOT + + + UTF-8 + 25 + 25 + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.1 + + + add-source + generate-sources + + add-source + + + + src/gen/java + + + + + + + + diff --git a/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Main.java b/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Main.java new file mode 100644 index 0000000..f6a4443 --- /dev/null +++ b/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Main.java @@ -0,0 +1,9 @@ +package org.zwobble.example; + +import org.zwobble.example.types.point.Line; + +public class Main { + public static void main() { + Line line = new Line(new Point(10, 25), new Point(25, 10)); + } +} diff --git a/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java b/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java new file mode 100644 index 0000000..8862a62 --- /dev/null +++ b/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java @@ -0,0 +1,4 @@ +package org.zwobble.example; + +public record Point(int x, int y) { +} diff --git a/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java b/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java new file mode 100644 index 0000000..74ac856 --- /dev/null +++ b/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java @@ -0,0 +1,9 @@ +package org.zwobble.example.types.point; + +import org.zwobble.example.Point; + +public class HobgoblinNativePoint { + public static Point arbitraryPoint() { + return new Point(0, 0); + } +} diff --git a/examples/05-native-type-custom-config/src/point.hob b/examples/05-native-type-custom-config/src/point.hob new file mode 100644 index 0000000..7178dcb --- /dev/null +++ b/examples/05-native-type-custom-config/src/point.hob @@ -0,0 +1,8 @@ +native Point { +} + +/// A straight line from one point to another. +struct Line { + field start: Point; + field end: Point; +} diff --git a/examples/06-custom-code/hobgoblin.json5 b/examples/06-custom-code/hobgoblin.json5 new file mode 100644 index 0000000..19cd31b --- /dev/null +++ b/examples/06-custom-code/hobgoblin.json5 @@ -0,0 +1,9 @@ +{ + outputs: [ + { + generator: "java-types", + path: "output/java/src/main/java", + packageName: "org.zwobble.example.types" + }, + ], +} diff --git a/examples/06-custom-code/output/java/.gitignore b/examples/06-custom-code/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/06-custom-code/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/06-custom-code/output/java/pom.xml b/examples/06-custom-code/output/java/pom.xml new file mode 100644 index 0000000..7493667 --- /dev/null +++ b/examples/06-custom-code/output/java/pom.xml @@ -0,0 +1,39 @@ + + 4.0.0 + + org.zwobble.hobgoblin.examples + example + 1.0-SNAPSHOT + + + UTF-8 + 25 + 25 + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.1 + + + add-source + generate-sources + + add-source + + + + src/gen/java + + + + + + + + diff --git a/examples/06-custom-code/output/java/src/main/java/org/zwobble/example/Main.java b/examples/06-custom-code/output/java/src/main/java/org/zwobble/example/Main.java new file mode 100644 index 0000000..2d2366d --- /dev/null +++ b/examples/06-custom-code/output/java/src/main/java/org/zwobble/example/Main.java @@ -0,0 +1,10 @@ +package org.zwobble.example; + +import org.zwobble.example.types.shapes.Square; + +public class Main { + public static void main() { + Square square = new Square(10); + assert square.area() == 100; + } +} diff --git a/examples/06-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java b/examples/06-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java new file mode 100644 index 0000000..169d729 --- /dev/null +++ b/examples/06-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java @@ -0,0 +1,33 @@ +// Generated by hobgoblin. + +package org.zwobble.example.types.shapes; + +// Custom area start: org.zwobble.example.types.shapes.Square imports +// Custom area end: org.zwobble.example.types.shapes.Square imports + +public record Square(int width) { + public static org.zwobble.example.types.shapes.Square.Builder arbitrary() { + return new org.zwobble.example.types.shapes.Square.Builder(0); + } + + public record Builder(int width) { + public org.zwobble.example.types.shapes.Square build() { + return new org.zwobble.example.types.shapes.Square(width); + } + + public org.zwobble.example.types.shapes.Square.Builder withWidth(int width) { + return new org.zwobble.example.types.shapes.Square.Builder(width); + } + + // Custom area start: org.zwobble.example.types.shapes.Square.Builder body + // Custom area end: org.zwobble.example.types.shapes.Square.Builder body + } + + // Custom area start: org.zwobble.example.types.shapes.Square body + + public int area() { + return this.width * this.width; + } + + // Custom area end: org.zwobble.example.types.shapes.Square body +} diff --git a/examples/06-custom-code/src/shapes.hob b/examples/06-custom-code/src/shapes.hob new file mode 100644 index 0000000..5dfe833 --- /dev/null +++ b/examples/06-custom-code/src/shapes.hob @@ -0,0 +1,3 @@ +struct Square { + field width: Int32; +} diff --git a/examples/06-imports/hobgoblin.json5 b/examples/06-imports/hobgoblin.json5 deleted file mode 100644 index 2bf59c3..0000000 --- a/examples/06-imports/hobgoblin.json5 +++ /dev/null @@ -1,13 +0,0 @@ -{ - outputs: [ - { - generator: "java-types", - path: "output/java/src/gen/java", - packageName: "org.zwobble.example.types" - }, - { - generator: "rust-types", - path: "output/rust/src", - }, - ], -} diff --git a/examples/06-imports/output/java/.gitignore b/examples/06-imports/output/java/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/06-imports/output/java/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/06-imports/output/java/pom.xml b/examples/06-imports/output/java/pom.xml deleted file mode 100644 index 506947e..0000000 --- a/examples/06-imports/output/java/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - 4.0.0 - - org.zwobble.hobgoblin.examples - example - 1.0-SNAPSHOT - - - UTF-8 - 25 - 25 - - - - - org.zwobble.precisely - precisely - 0.1.5 - - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 3.6.1 - - - add-source - generate-sources - - add-source - - - - src/gen/java - - - - - - - - diff --git a/examples/06-imports/output/java/src/main/java/org/zwobble/example/Main.java b/examples/06-imports/output/java/src/main/java/org/zwobble/example/Main.java deleted file mode 100644 index 3535c16..0000000 --- a/examples/06-imports/output/java/src/main/java/org/zwobble/example/Main.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.zwobble.example; - -import org.zwobble.example.types.line.Line; -import org.zwobble.example.types.point.Point; - -public class Main { - public static void main() { - Point start = new Point(10, 25); - Point end = new Point(25, 10); - Line line = new Line(start, end); - } -} diff --git a/examples/06-imports/output/rust/.gitignore b/examples/06-imports/output/rust/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/examples/06-imports/output/rust/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/examples/06-imports/output/rust/Cargo.lock b/examples/06-imports/output/rust/Cargo.lock deleted file mode 100644 index 9dc6e3e..0000000 --- a/examples/06-imports/output/rust/Cargo.lock +++ /dev/null @@ -1,7 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "example" -version = "0.1.0" diff --git a/examples/06-imports/output/rust/Cargo.toml b/examples/06-imports/output/rust/Cargo.toml deleted file mode 100644 index 5d4c622..0000000 --- a/examples/06-imports/output/rust/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "example" -version = "0.1.0" -edition = "2024" - -[dependencies] diff --git a/examples/06-imports/output/rust/rust-toolchain.toml b/examples/06-imports/output/rust/rust-toolchain.toml deleted file mode 100644 index 4fedb95..0000000 --- a/examples/06-imports/output/rust/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "1.96" diff --git a/examples/06-imports/output/rust/src/line.rs b/examples/06-imports/output/rust/src/line.rs deleted file mode 100644 index c2940f5..0000000 --- a/examples/06-imports/output/rust/src/line.rs +++ /dev/null @@ -1,5 +0,0 @@ -/// A straight line from one point to another. -pub struct Line { - pub start: crate::point::Point, - pub end: crate::point::Point, -} diff --git a/examples/06-imports/output/rust/src/main.rs b/examples/06-imports/output/rust/src/main.rs deleted file mode 100644 index ee3d685..0000000 --- a/examples/06-imports/output/rust/src/main.rs +++ /dev/null @@ -1,11 +0,0 @@ -mod line; -mod point; - -use line::Line; -use point::Point; - -fn main() { - let start = Point { x: 10, y: 25 }; - let end = Point { x: 10, y: 25 }; - let line = Line { start, end }; -} diff --git a/examples/06-imports/output/rust/src/point.rs b/examples/06-imports/output/rust/src/point.rs deleted file mode 100644 index 5fb5592..0000000 --- a/examples/06-imports/output/rust/src/point.rs +++ /dev/null @@ -1,5 +0,0 @@ -/// A 2D point. -pub struct Point { - pub x: i32, - pub y: i32, -} diff --git a/examples/06-imports/src/line.hob b/examples/06-imports/src/line.hob deleted file mode 100644 index 562d77f..0000000 --- a/examples/06-imports/src/line.hob +++ /dev/null @@ -1,7 +0,0 @@ -import {Point} from ./point; - -/// A straight line from one point to another. -struct Line { - field start: Point; - field end: Point; -} diff --git a/examples/06-imports/src/point.hob b/examples/06-imports/src/point.hob deleted file mode 100644 index 87f9953..0000000 --- a/examples/06-imports/src/point.hob +++ /dev/null @@ -1,5 +0,0 @@ -/// A 2D point. -struct Point { - field x: Int32; - field y: Int32; -} diff --git a/examples/07-enum/hobgoblin.json5 b/examples/07-enum/hobgoblin.json5 deleted file mode 100644 index 2bf59c3..0000000 --- a/examples/07-enum/hobgoblin.json5 +++ /dev/null @@ -1,13 +0,0 @@ -{ - outputs: [ - { - generator: "java-types", - path: "output/java/src/gen/java", - packageName: "org.zwobble.example.types" - }, - { - generator: "rust-types", - path: "output/rust/src", - }, - ], -} diff --git a/examples/07-enum/output/java/.gitignore b/examples/07-enum/output/java/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/07-enum/output/java/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/07-enum/output/java/pom.xml b/examples/07-enum/output/java/pom.xml deleted file mode 100644 index 506947e..0000000 --- a/examples/07-enum/output/java/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - 4.0.0 - - org.zwobble.hobgoblin.examples - example - 1.0-SNAPSHOT - - - UTF-8 - 25 - 25 - - - - - org.zwobble.precisely - precisely - 0.1.5 - - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 3.6.1 - - - add-source - generate-sources - - add-source - - - - src/gen/java - - - - - - - - diff --git a/examples/07-enum/output/java/src/main/java/org/zwobble/example/Main.java b/examples/07-enum/output/java/src/main/java/org/zwobble/example/Main.java deleted file mode 100644 index 8342d3b..0000000 --- a/examples/07-enum/output/java/src/main/java/org/zwobble/example/Main.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.zwobble.example; - -import org.zwobble.example.types.numbers.SmallNumber; - -public class Main { - public static void main() { - SmallNumber smallNumber = SmallNumber.ONE; - } -} diff --git a/examples/07-enum/output/rust/.gitignore b/examples/07-enum/output/rust/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/examples/07-enum/output/rust/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/examples/07-enum/output/rust/Cargo.lock b/examples/07-enum/output/rust/Cargo.lock deleted file mode 100644 index 9dc6e3e..0000000 --- a/examples/07-enum/output/rust/Cargo.lock +++ /dev/null @@ -1,7 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "example" -version = "0.1.0" diff --git a/examples/07-enum/output/rust/Cargo.toml b/examples/07-enum/output/rust/Cargo.toml deleted file mode 100644 index 5d4c622..0000000 --- a/examples/07-enum/output/rust/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "example" -version = "0.1.0" -edition = "2024" - -[dependencies] diff --git a/examples/07-enum/output/rust/rust-toolchain.toml b/examples/07-enum/output/rust/rust-toolchain.toml deleted file mode 100644 index 4fedb95..0000000 --- a/examples/07-enum/output/rust/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "1.96" diff --git a/examples/07-enum/output/rust/src/main.rs b/examples/07-enum/output/rust/src/main.rs deleted file mode 100644 index 2201dcc..0000000 --- a/examples/07-enum/output/rust/src/main.rs +++ /dev/null @@ -1,7 +0,0 @@ -mod numbers; - -use numbers::SmallNumber; - -fn main() { - let small_number = SmallNumber::One; -} diff --git a/examples/07-enum/output/rust/src/numbers.rs b/examples/07-enum/output/rust/src/numbers.rs deleted file mode 100644 index b71f573..0000000 --- a/examples/07-enum/output/rust/src/numbers.rs +++ /dev/null @@ -1,6 +0,0 @@ -/// A small number. -pub enum SmallNumber { - Zero, - One, - Two, -} diff --git a/examples/07-enum/src/numbers.hob b/examples/07-enum/src/numbers.hob deleted file mode 100644 index 125082d..0000000 --- a/examples/07-enum/src/numbers.hob +++ /dev/null @@ -1,6 +0,0 @@ -/// A small number. -enum SmallNumber { - variant zero; - variant one; - variant two; -} diff --git a/examples/07-imports/hobgoblin.json5 b/examples/07-imports/hobgoblin.json5 new file mode 100644 index 0000000..2bf59c3 --- /dev/null +++ b/examples/07-imports/hobgoblin.json5 @@ -0,0 +1,13 @@ +{ + outputs: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + packageName: "org.zwobble.example.types" + }, + { + generator: "rust-types", + path: "output/rust/src", + }, + ], +} diff --git a/examples/07-imports/output/java/.gitignore b/examples/07-imports/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/07-imports/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/07-imports/output/java/pom.xml b/examples/07-imports/output/java/pom.xml new file mode 100644 index 0000000..506947e --- /dev/null +++ b/examples/07-imports/output/java/pom.xml @@ -0,0 +1,47 @@ + + 4.0.0 + + org.zwobble.hobgoblin.examples + example + 1.0-SNAPSHOT + + + UTF-8 + 25 + 25 + + + + + org.zwobble.precisely + precisely + 0.1.5 + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.1 + + + add-source + generate-sources + + add-source + + + + src/gen/java + + + + + + + + diff --git a/examples/07-imports/output/java/src/main/java/org/zwobble/example/Main.java b/examples/07-imports/output/java/src/main/java/org/zwobble/example/Main.java new file mode 100644 index 0000000..3535c16 --- /dev/null +++ b/examples/07-imports/output/java/src/main/java/org/zwobble/example/Main.java @@ -0,0 +1,12 @@ +package org.zwobble.example; + +import org.zwobble.example.types.line.Line; +import org.zwobble.example.types.point.Point; + +public class Main { + public static void main() { + Point start = new Point(10, 25); + Point end = new Point(25, 10); + Line line = new Line(start, end); + } +} diff --git a/examples/07-imports/output/rust/.gitignore b/examples/07-imports/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/07-imports/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/07-imports/output/rust/Cargo.lock b/examples/07-imports/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/07-imports/output/rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "example" +version = "0.1.0" diff --git a/examples/07-imports/output/rust/Cargo.toml b/examples/07-imports/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/07-imports/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/07-imports/output/rust/rust-toolchain.toml b/examples/07-imports/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/07-imports/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/07-imports/output/rust/src/line.rs b/examples/07-imports/output/rust/src/line.rs new file mode 100644 index 0000000..c2940f5 --- /dev/null +++ b/examples/07-imports/output/rust/src/line.rs @@ -0,0 +1,5 @@ +/// A straight line from one point to another. +pub struct Line { + pub start: crate::point::Point, + pub end: crate::point::Point, +} diff --git a/examples/07-imports/output/rust/src/main.rs b/examples/07-imports/output/rust/src/main.rs new file mode 100644 index 0000000..ee3d685 --- /dev/null +++ b/examples/07-imports/output/rust/src/main.rs @@ -0,0 +1,11 @@ +mod line; +mod point; + +use line::Line; +use point::Point; + +fn main() { + let start = Point { x: 10, y: 25 }; + let end = Point { x: 10, y: 25 }; + let line = Line { start, end }; +} diff --git a/examples/07-imports/output/rust/src/point.rs b/examples/07-imports/output/rust/src/point.rs new file mode 100644 index 0000000..5fb5592 --- /dev/null +++ b/examples/07-imports/output/rust/src/point.rs @@ -0,0 +1,5 @@ +/// A 2D point. +pub struct Point { + pub x: i32, + pub y: i32, +} diff --git a/examples/07-imports/src/line.hob b/examples/07-imports/src/line.hob new file mode 100644 index 0000000..562d77f --- /dev/null +++ b/examples/07-imports/src/line.hob @@ -0,0 +1,7 @@ +import {Point} from ./point; + +/// A straight line from one point to another. +struct Line { + field start: Point; + field end: Point; +} diff --git a/examples/07-imports/src/point.hob b/examples/07-imports/src/point.hob new file mode 100644 index 0000000..87f9953 --- /dev/null +++ b/examples/07-imports/src/point.hob @@ -0,0 +1,5 @@ +/// A 2D point. +struct Point { + field x: Int32; + field y: Int32; +} diff --git a/examples/08-enum/hobgoblin.json5 b/examples/08-enum/hobgoblin.json5 new file mode 100644 index 0000000..2bf59c3 --- /dev/null +++ b/examples/08-enum/hobgoblin.json5 @@ -0,0 +1,13 @@ +{ + outputs: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + packageName: "org.zwobble.example.types" + }, + { + generator: "rust-types", + path: "output/rust/src", + }, + ], +} diff --git a/examples/08-enum/output/java/.gitignore b/examples/08-enum/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/08-enum/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/08-enum/output/java/pom.xml b/examples/08-enum/output/java/pom.xml new file mode 100644 index 0000000..506947e --- /dev/null +++ b/examples/08-enum/output/java/pom.xml @@ -0,0 +1,47 @@ + + 4.0.0 + + org.zwobble.hobgoblin.examples + example + 1.0-SNAPSHOT + + + UTF-8 + 25 + 25 + + + + + org.zwobble.precisely + precisely + 0.1.5 + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.1 + + + add-source + generate-sources + + add-source + + + + src/gen/java + + + + + + + + diff --git a/examples/08-enum/output/java/src/main/java/org/zwobble/example/Main.java b/examples/08-enum/output/java/src/main/java/org/zwobble/example/Main.java new file mode 100644 index 0000000..8342d3b --- /dev/null +++ b/examples/08-enum/output/java/src/main/java/org/zwobble/example/Main.java @@ -0,0 +1,9 @@ +package org.zwobble.example; + +import org.zwobble.example.types.numbers.SmallNumber; + +public class Main { + public static void main() { + SmallNumber smallNumber = SmallNumber.ONE; + } +} diff --git a/examples/08-enum/output/rust/.gitignore b/examples/08-enum/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/08-enum/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/08-enum/output/rust/Cargo.lock b/examples/08-enum/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/08-enum/output/rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "example" +version = "0.1.0" diff --git a/examples/08-enum/output/rust/Cargo.toml b/examples/08-enum/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/08-enum/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/08-enum/output/rust/rust-toolchain.toml b/examples/08-enum/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/08-enum/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/08-enum/output/rust/src/main.rs b/examples/08-enum/output/rust/src/main.rs new file mode 100644 index 0000000..2201dcc --- /dev/null +++ b/examples/08-enum/output/rust/src/main.rs @@ -0,0 +1,7 @@ +mod numbers; + +use numbers::SmallNumber; + +fn main() { + let small_number = SmallNumber::One; +} diff --git a/examples/08-enum/output/rust/src/numbers.rs b/examples/08-enum/output/rust/src/numbers.rs new file mode 100644 index 0000000..b71f573 --- /dev/null +++ b/examples/08-enum/output/rust/src/numbers.rs @@ -0,0 +1,6 @@ +/// A small number. +pub enum SmallNumber { + Zero, + One, + Two, +} diff --git a/examples/08-enum/src/numbers.hob b/examples/08-enum/src/numbers.hob new file mode 100644 index 0000000..125082d --- /dev/null +++ b/examples/08-enum/src/numbers.hob @@ -0,0 +1,6 @@ +/// A small number. +enum SmallNumber { + variant zero; + variant one; + variant two; +} -- cgit v1.2.3