From 6e7d4525fdb1dea1cb767a7208aafc1f00eda9d0 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 2 Jul 2026 15:47:15 +0100 Subject: Renumber enum example to be earlier, with other types --- examples/03-enum/hobgoblin.json5 | 19 ++++++++ examples/03-enum/output/java/.gitignore | 2 + examples/03-enum/output/java/pom.xml | 47 ++++++++++++++++++++ .../src/main/java/org/zwobble/example/Main.java | 9 ++++ examples/03-enum/output/rust/.gitignore | 1 + examples/03-enum/output/rust/Cargo.lock | 7 +++ examples/03-enum/output/rust/Cargo.toml | 6 +++ examples/03-enum/output/rust/rust-toolchain.toml | 2 + examples/03-enum/output/rust/src/main.rs | 7 +++ examples/03-enum/output/rust/src/numbers.rs | 8 ++++ examples/03-enum/src/numbers.hob | 6 +++ examples/03-list/hobgoblin.json5 | 19 -------- examples/03-list/output/java/.gitignore | 2 - examples/03-list/output/java/pom.xml | 39 ----------------- .../src/main/java/org/zwobble/example/Main.java | 19 -------- examples/03-list/output/rust/.gitignore | 1 - examples/03-list/output/rust/Cargo.lock | 7 --- examples/03-list/output/rust/Cargo.toml | 6 --- examples/03-list/output/rust/rust-toolchain.toml | 2 - examples/03-list/output/rust/src/main.rs | 12 ----- examples/03-list/output/rust/src/point.rs | 10 ----- examples/03-list/src/point.hob | 8 ---- examples/04-list/hobgoblin.json5 | 19 ++++++++ examples/04-list/output/java/.gitignore | 2 + examples/04-list/output/java/pom.xml | 39 +++++++++++++++++ .../src/main/java/org/zwobble/example/Main.java | 19 ++++++++ examples/04-list/output/rust/.gitignore | 1 + examples/04-list/output/rust/Cargo.lock | 7 +++ examples/04-list/output/rust/Cargo.toml | 6 +++ examples/04-list/output/rust/rust-toolchain.toml | 2 + examples/04-list/output/rust/src/main.rs | 12 +++++ examples/04-list/output/rust/src/point.rs | 10 +++++ examples/04-list/src/point.hob | 8 ++++ examples/04-native-type/hobgoblin.json5 | 19 -------- examples/04-native-type/output/java/.gitignore | 2 - examples/04-native-type/output/java/pom.xml | 39 ----------------- .../src/main/java/org/zwobble/example/Main.java | 10 ----- .../example/types/point/HobgoblinNativePoint.java | 7 --- .../org/zwobble/example/types/point/Point.java | 4 -- examples/04-native-type/output/rust/.gitignore | 1 - examples/04-native-type/output/rust/Cargo.lock | 7 --- examples/04-native-type/output/rust/Cargo.toml | 6 --- .../04-native-type/output/rust/rust-toolchain.toml | 2 - .../04-native-type/output/rust/src/gen/point.rs | 7 --- examples/04-native-type/output/rust/src/main.rs | 7 --- examples/04-native-type/output/rust/src/point.rs | 3 -- examples/04-native-type/src/point.hob | 8 ---- .../05-native-type-custom-config/hobgoblin.json5 | 33 -------------- .../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 ---- .../output/rust/.gitignore | 1 - .../output/rust/Cargo.lock | 7 --- .../output/rust/Cargo.toml | 6 --- .../output/rust/rust-toolchain.toml | 2 - .../output/rust/src/main.rs | 9 ---- .../output/rust/src/point.rs | 7 --- .../05-native-type-custom-config/src/point.hob | 8 ---- examples/05-native-type/hobgoblin.json5 | 19 ++++++++ examples/05-native-type/output/java/.gitignore | 2 + examples/05-native-type/output/java/pom.xml | 39 +++++++++++++++++ .../src/main/java/org/zwobble/example/Main.java | 10 +++++ .../example/types/point/HobgoblinNativePoint.java | 7 +++ .../org/zwobble/example/types/point/Point.java | 4 ++ examples/05-native-type/output/rust/.gitignore | 1 + examples/05-native-type/output/rust/Cargo.lock | 7 +++ examples/05-native-type/output/rust/Cargo.toml | 6 +++ .../05-native-type/output/rust/rust-toolchain.toml | 2 + .../05-native-type/output/rust/src/gen/point.rs | 7 +++ examples/05-native-type/output/rust/src/main.rs | 7 +++ examples/05-native-type/output/rust/src/point.rs | 3 ++ examples/05-native-type/src/point.hob | 8 ++++ examples/06-custom-code/hobgoblin.json5 | 19 -------- 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/output/rust/.gitignore | 1 - examples/06-custom-code/output/rust/Cargo.lock | 7 --- examples/06-custom-code/output/rust/Cargo.toml | 6 --- .../06-custom-code/output/rust/rust-toolchain.toml | 2 - .../06-custom-code/output/rust/src/gen/shapes.rs | 5 --- examples/06-custom-code/output/rust/src/main.rs | 8 ---- examples/06-custom-code/output/rust/src/shapes.rs | 7 --- examples/06-custom-code/src/shapes.hob | 3 -- .../06-native-type-custom-config/hobgoblin.json5 | 33 ++++++++++++++ .../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 ++++ .../output/rust/.gitignore | 1 + .../output/rust/Cargo.lock | 7 +++ .../output/rust/Cargo.toml | 6 +++ .../output/rust/rust-toolchain.toml | 2 + .../output/rust/src/main.rs | 9 ++++ .../output/rust/src/point.rs | 7 +++ .../06-native-type-custom-config/src/point.hob | 8 ++++ examples/07-custom-code/hobgoblin.json5 | 19 ++++++++ examples/07-custom-code/output/java/.gitignore | 2 + examples/07-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/07-custom-code/output/rust/.gitignore | 1 + examples/07-custom-code/output/rust/Cargo.lock | 7 +++ examples/07-custom-code/output/rust/Cargo.toml | 6 +++ .../07-custom-code/output/rust/rust-toolchain.toml | 2 + .../07-custom-code/output/rust/src/gen/shapes.rs | 5 +++ examples/07-custom-code/output/rust/src/main.rs | 8 ++++ examples/07-custom-code/output/rust/src/shapes.rs | 7 +++ examples/07-custom-code/src/shapes.hob | 3 ++ examples/07-imports/hobgoblin.json5 | 19 -------- 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 | 7 --- examples/07-imports/output/rust/src/main.rs | 11 ----- examples/07-imports/output/rust/src/point.rs | 7 --- examples/07-imports/src/line.hob | 7 --- examples/07-imports/src/point.hob | 5 --- examples/08-enum/hobgoblin.json5 | 19 -------- 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 | 8 ---- examples/08-enum/src/numbers.hob | 6 --- examples/08-imports/hobgoblin.json5 | 19 ++++++++ examples/08-imports/output/java/.gitignore | 2 + examples/08-imports/output/java/pom.xml | 47 ++++++++++++++++++++ .../src/main/java/org/zwobble/example/Main.java | 12 +++++ examples/08-imports/output/rust/.gitignore | 1 + examples/08-imports/output/rust/Cargo.lock | 7 +++ examples/08-imports/output/rust/Cargo.toml | 6 +++ .../08-imports/output/rust/rust-toolchain.toml | 2 + examples/08-imports/output/rust/src/line.rs | 7 +++ examples/08-imports/output/rust/src/main.rs | 11 +++++ examples/08-imports/output/rust/src/point.rs | 7 +++ examples/08-imports/src/line.hob | 7 +++ examples/08-imports/src/point.hob | 5 +++ examples/renumber.py | 51 ++++++++++++++++++++++ 151 files changed, 823 insertions(+), 772 deletions(-) create mode 100644 examples/03-enum/hobgoblin.json5 create mode 100644 examples/03-enum/output/java/.gitignore create mode 100644 examples/03-enum/output/java/pom.xml create mode 100644 examples/03-enum/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/03-enum/output/rust/.gitignore create mode 100644 examples/03-enum/output/rust/Cargo.lock create mode 100644 examples/03-enum/output/rust/Cargo.toml create mode 100644 examples/03-enum/output/rust/rust-toolchain.toml create mode 100644 examples/03-enum/output/rust/src/main.rs create mode 100644 examples/03-enum/output/rust/src/numbers.rs create mode 100644 examples/03-enum/src/numbers.hob delete mode 100644 examples/03-list/hobgoblin.json5 delete mode 100644 examples/03-list/output/java/.gitignore delete mode 100644 examples/03-list/output/java/pom.xml delete mode 100644 examples/03-list/output/java/src/main/java/org/zwobble/example/Main.java delete mode 100644 examples/03-list/output/rust/.gitignore delete mode 100644 examples/03-list/output/rust/Cargo.lock delete mode 100644 examples/03-list/output/rust/Cargo.toml delete mode 100644 examples/03-list/output/rust/rust-toolchain.toml delete mode 100644 examples/03-list/output/rust/src/main.rs delete mode 100644 examples/03-list/output/rust/src/point.rs delete mode 100644 examples/03-list/src/point.hob create mode 100644 examples/04-list/hobgoblin.json5 create mode 100644 examples/04-list/output/java/.gitignore create mode 100644 examples/04-list/output/java/pom.xml create mode 100644 examples/04-list/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/04-list/output/rust/.gitignore create mode 100644 examples/04-list/output/rust/Cargo.lock create mode 100644 examples/04-list/output/rust/Cargo.toml create mode 100644 examples/04-list/output/rust/rust-toolchain.toml create mode 100644 examples/04-list/output/rust/src/main.rs create mode 100644 examples/04-list/output/rust/src/point.rs create mode 100644 examples/04-list/src/point.hob delete mode 100644 examples/04-native-type/hobgoblin.json5 delete mode 100644 examples/04-native-type/output/java/.gitignore delete mode 100644 examples/04-native-type/output/java/pom.xml delete mode 100644 examples/04-native-type/output/java/src/main/java/org/zwobble/example/Main.java delete mode 100644 examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java delete mode 100644 examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java delete mode 100644 examples/04-native-type/output/rust/.gitignore delete mode 100644 examples/04-native-type/output/rust/Cargo.lock delete mode 100644 examples/04-native-type/output/rust/Cargo.toml delete mode 100644 examples/04-native-type/output/rust/rust-toolchain.toml delete mode 100644 examples/04-native-type/output/rust/src/gen/point.rs delete mode 100644 examples/04-native-type/output/rust/src/main.rs delete mode 100644 examples/04-native-type/output/rust/src/point.rs delete mode 100644 examples/04-native-type/src/point.hob delete mode 100644 examples/05-native-type-custom-config/hobgoblin.json5 delete mode 100644 examples/05-native-type-custom-config/output/java/.gitignore delete mode 100644 examples/05-native-type-custom-config/output/java/pom.xml delete mode 100644 examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Main.java delete mode 100644 examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java delete mode 100644 examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java delete mode 100644 examples/05-native-type-custom-config/output/rust/.gitignore delete mode 100644 examples/05-native-type-custom-config/output/rust/Cargo.lock delete mode 100644 examples/05-native-type-custom-config/output/rust/Cargo.toml delete mode 100644 examples/05-native-type-custom-config/output/rust/rust-toolchain.toml delete mode 100644 examples/05-native-type-custom-config/output/rust/src/main.rs delete mode 100644 examples/05-native-type-custom-config/output/rust/src/point.rs delete mode 100644 examples/05-native-type-custom-config/src/point.hob create mode 100644 examples/05-native-type/hobgoblin.json5 create mode 100644 examples/05-native-type/output/java/.gitignore create mode 100644 examples/05-native-type/output/java/pom.xml create mode 100644 examples/05-native-type/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/05-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java create mode 100644 examples/05-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java create mode 100644 examples/05-native-type/output/rust/.gitignore create mode 100644 examples/05-native-type/output/rust/Cargo.lock create mode 100644 examples/05-native-type/output/rust/Cargo.toml create mode 100644 examples/05-native-type/output/rust/rust-toolchain.toml create mode 100644 examples/05-native-type/output/rust/src/gen/point.rs create mode 100644 examples/05-native-type/output/rust/src/main.rs create mode 100644 examples/05-native-type/output/rust/src/point.rs create mode 100644 examples/05-native-type/src/point.hob delete mode 100644 examples/06-custom-code/hobgoblin.json5 delete mode 100644 examples/06-custom-code/output/java/.gitignore delete mode 100644 examples/06-custom-code/output/java/pom.xml delete mode 100644 examples/06-custom-code/output/java/src/main/java/org/zwobble/example/Main.java delete mode 100644 examples/06-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java delete mode 100644 examples/06-custom-code/output/rust/.gitignore delete mode 100644 examples/06-custom-code/output/rust/Cargo.lock delete mode 100644 examples/06-custom-code/output/rust/Cargo.toml delete mode 100644 examples/06-custom-code/output/rust/rust-toolchain.toml delete mode 100644 examples/06-custom-code/output/rust/src/gen/shapes.rs delete mode 100644 examples/06-custom-code/output/rust/src/main.rs delete mode 100644 examples/06-custom-code/output/rust/src/shapes.rs delete mode 100644 examples/06-custom-code/src/shapes.hob create mode 100644 examples/06-native-type-custom-config/hobgoblin.json5 create mode 100644 examples/06-native-type-custom-config/output/java/.gitignore create mode 100644 examples/06-native-type-custom-config/output/java/pom.xml create mode 100644 examples/06-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/06-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java create mode 100644 examples/06-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java create mode 100644 examples/06-native-type-custom-config/output/rust/.gitignore create mode 100644 examples/06-native-type-custom-config/output/rust/Cargo.lock create mode 100644 examples/06-native-type-custom-config/output/rust/Cargo.toml create mode 100644 examples/06-native-type-custom-config/output/rust/rust-toolchain.toml create mode 100644 examples/06-native-type-custom-config/output/rust/src/main.rs create mode 100644 examples/06-native-type-custom-config/output/rust/src/point.rs create mode 100644 examples/06-native-type-custom-config/src/point.hob create mode 100644 examples/07-custom-code/hobgoblin.json5 create mode 100644 examples/07-custom-code/output/java/.gitignore create mode 100644 examples/07-custom-code/output/java/pom.xml create mode 100644 examples/07-custom-code/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/07-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java create mode 100644 examples/07-custom-code/output/rust/.gitignore create mode 100644 examples/07-custom-code/output/rust/Cargo.lock create mode 100644 examples/07-custom-code/output/rust/Cargo.toml create mode 100644 examples/07-custom-code/output/rust/rust-toolchain.toml create mode 100644 examples/07-custom-code/output/rust/src/gen/shapes.rs create mode 100644 examples/07-custom-code/output/rust/src/main.rs create mode 100644 examples/07-custom-code/output/rust/src/shapes.rs create mode 100644 examples/07-custom-code/src/shapes.hob delete mode 100644 examples/07-imports/hobgoblin.json5 delete mode 100644 examples/07-imports/output/java/.gitignore delete mode 100644 examples/07-imports/output/java/pom.xml delete mode 100644 examples/07-imports/output/java/src/main/java/org/zwobble/example/Main.java delete mode 100644 examples/07-imports/output/rust/.gitignore delete mode 100644 examples/07-imports/output/rust/Cargo.lock delete mode 100644 examples/07-imports/output/rust/Cargo.toml delete mode 100644 examples/07-imports/output/rust/rust-toolchain.toml delete mode 100644 examples/07-imports/output/rust/src/line.rs delete mode 100644 examples/07-imports/output/rust/src/main.rs delete mode 100644 examples/07-imports/output/rust/src/point.rs delete mode 100644 examples/07-imports/src/line.hob delete mode 100644 examples/07-imports/src/point.hob delete mode 100644 examples/08-enum/hobgoblin.json5 delete mode 100644 examples/08-enum/output/java/.gitignore delete mode 100644 examples/08-enum/output/java/pom.xml delete mode 100644 examples/08-enum/output/java/src/main/java/org/zwobble/example/Main.java delete mode 100644 examples/08-enum/output/rust/.gitignore delete mode 100644 examples/08-enum/output/rust/Cargo.lock delete mode 100644 examples/08-enum/output/rust/Cargo.toml delete mode 100644 examples/08-enum/output/rust/rust-toolchain.toml delete mode 100644 examples/08-enum/output/rust/src/main.rs delete mode 100644 examples/08-enum/output/rust/src/numbers.rs delete mode 100644 examples/08-enum/src/numbers.hob create mode 100644 examples/08-imports/hobgoblin.json5 create mode 100644 examples/08-imports/output/java/.gitignore create mode 100644 examples/08-imports/output/java/pom.xml create mode 100644 examples/08-imports/output/java/src/main/java/org/zwobble/example/Main.java create mode 100644 examples/08-imports/output/rust/.gitignore create mode 100644 examples/08-imports/output/rust/Cargo.lock create mode 100644 examples/08-imports/output/rust/Cargo.toml create mode 100644 examples/08-imports/output/rust/rust-toolchain.toml create mode 100644 examples/08-imports/output/rust/src/line.rs create mode 100644 examples/08-imports/output/rust/src/main.rs create mode 100644 examples/08-imports/output/rust/src/point.rs create mode 100644 examples/08-imports/src/line.hob create mode 100644 examples/08-imports/src/point.hob create mode 100755 examples/renumber.py (limited to 'examples') diff --git a/examples/03-enum/hobgoblin.json5 b/examples/03-enum/hobgoblin.json5 new file mode 100644 index 0000000..12713d4 --- /dev/null +++ b/examples/03-enum/hobgoblin.json5 @@ -0,0 +1,19 @@ +{ + outputs: { + langs: { + java: { + packageName: "org.zwobble.example.types", + }, + }, + generators: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + }, + { + generator: "rust-types", + path: "output/rust/src", + }, + ], + }, +} diff --git a/examples/03-enum/output/java/.gitignore b/examples/03-enum/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/03-enum/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/03-enum/output/java/pom.xml b/examples/03-enum/output/java/pom.xml new file mode 100644 index 0000000..506947e --- /dev/null +++ b/examples/03-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/03-enum/output/java/src/main/java/org/zwobble/example/Main.java b/examples/03-enum/output/java/src/main/java/org/zwobble/example/Main.java new file mode 100644 index 0000000..8342d3b --- /dev/null +++ b/examples/03-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/03-enum/output/rust/.gitignore b/examples/03-enum/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/03-enum/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/03-enum/output/rust/Cargo.lock b/examples/03-enum/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/03-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/03-enum/output/rust/Cargo.toml b/examples/03-enum/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/03-enum/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/03-enum/output/rust/rust-toolchain.toml b/examples/03-enum/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/03-enum/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/03-enum/output/rust/src/main.rs b/examples/03-enum/output/rust/src/main.rs new file mode 100644 index 0000000..2201dcc --- /dev/null +++ b/examples/03-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/03-enum/output/rust/src/numbers.rs b/examples/03-enum/output/rust/src/numbers.rs new file mode 100644 index 0000000..e86b453 --- /dev/null +++ b/examples/03-enum/output/rust/src/numbers.rs @@ -0,0 +1,8 @@ +// Generated by hobgoblin. + +/// A small number. +pub enum SmallNumber { + Zero, + One, + Two, +} diff --git a/examples/03-enum/src/numbers.hob b/examples/03-enum/src/numbers.hob new file mode 100644 index 0000000..125082d --- /dev/null +++ b/examples/03-enum/src/numbers.hob @@ -0,0 +1,6 @@ +/// A small number. +enum SmallNumber { + variant zero; + variant one; + variant two; +} diff --git a/examples/03-list/hobgoblin.json5 b/examples/03-list/hobgoblin.json5 deleted file mode 100644 index 12713d4..0000000 --- a/examples/03-list/hobgoblin.json5 +++ /dev/null @@ -1,19 +0,0 @@ -{ - outputs: { - langs: { - java: { - packageName: "org.zwobble.example.types", - }, - }, - generators: [ - { - generator: "java-types", - path: "output/java/src/gen/java", - }, - { - generator: "rust-types", - path: "output/rust/src", - }, - ], - }, -} diff --git a/examples/03-list/output/java/.gitignore b/examples/03-list/output/java/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/03-list/output/java/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/03-list/output/java/pom.xml b/examples/03-list/output/java/pom.xml deleted file mode 100644 index 7493667..0000000 --- a/examples/03-list/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/03-list/output/java/src/main/java/org/zwobble/example/Main.java b/examples/03-list/output/java/src/main/java/org/zwobble/example/Main.java deleted file mode 100644 index 4cfb23f..0000000 --- a/examples/03-list/output/java/src/main/java/org/zwobble/example/Main.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.zwobble.example; - -import java.util.List; -import org.zwobble.example.types.point.Path; -import org.zwobble.example.types.point.Point; - -public class Main { - public static void main() { - Path path = new Path(List.of( - new Point(10, 25), - new Point(25, 10) - )); - - Path path2 = Path.arbitrary() - .addPoint(new Point(10, 25)) - .addPoint(new Point(25, 10)) - .build(); - } -} diff --git a/examples/03-list/output/rust/.gitignore b/examples/03-list/output/rust/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/examples/03-list/output/rust/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/examples/03-list/output/rust/Cargo.lock b/examples/03-list/output/rust/Cargo.lock deleted file mode 100644 index 9dc6e3e..0000000 --- a/examples/03-list/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/03-list/output/rust/Cargo.toml b/examples/03-list/output/rust/Cargo.toml deleted file mode 100644 index 5d4c622..0000000 --- a/examples/03-list/output/rust/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "example" -version = "0.1.0" -edition = "2024" - -[dependencies] diff --git a/examples/03-list/output/rust/rust-toolchain.toml b/examples/03-list/output/rust/rust-toolchain.toml deleted file mode 100644 index 4fedb95..0000000 --- a/examples/03-list/output/rust/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "1.96" diff --git a/examples/03-list/output/rust/src/main.rs b/examples/03-list/output/rust/src/main.rs deleted file mode 100644 index 3c636af..0000000 --- a/examples/03-list/output/rust/src/main.rs +++ /dev/null @@ -1,12 +0,0 @@ -mod point; - -use point::{Path, Point}; - -fn main() { - let path: Path = Path { - points: vec![ - Point { x: 10, y: 25 }, - Point { x: 25, y: 10 } - ], - }; -} diff --git a/examples/03-list/output/rust/src/point.rs b/examples/03-list/output/rust/src/point.rs deleted file mode 100644 index 6249c0a..0000000 --- a/examples/03-list/output/rust/src/point.rs +++ /dev/null @@ -1,10 +0,0 @@ -// Generated by hobgoblin. - -pub struct Path { - pub points: std::vec::Vec, -} - -pub struct Point { - pub x: i32, - pub y: i32, -} diff --git a/examples/03-list/src/point.hob b/examples/03-list/src/point.hob deleted file mode 100644 index 8dd438c..0000000 --- a/examples/03-list/src/point.hob +++ /dev/null @@ -1,8 +0,0 @@ -struct Path { - field points: List[Point]; -} - -struct Point { - field x: Int32; - field y: Int32; -} diff --git a/examples/04-list/hobgoblin.json5 b/examples/04-list/hobgoblin.json5 new file mode 100644 index 0000000..12713d4 --- /dev/null +++ b/examples/04-list/hobgoblin.json5 @@ -0,0 +1,19 @@ +{ + outputs: { + langs: { + java: { + packageName: "org.zwobble.example.types", + }, + }, + generators: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + }, + { + generator: "rust-types", + path: "output/rust/src", + }, + ], + }, +} diff --git a/examples/04-list/output/java/.gitignore b/examples/04-list/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/04-list/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/04-list/output/java/pom.xml b/examples/04-list/output/java/pom.xml new file mode 100644 index 0000000..7493667 --- /dev/null +++ b/examples/04-list/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/04-list/output/java/src/main/java/org/zwobble/example/Main.java b/examples/04-list/output/java/src/main/java/org/zwobble/example/Main.java new file mode 100644 index 0000000..4cfb23f --- /dev/null +++ b/examples/04-list/output/java/src/main/java/org/zwobble/example/Main.java @@ -0,0 +1,19 @@ +package org.zwobble.example; + +import java.util.List; +import org.zwobble.example.types.point.Path; +import org.zwobble.example.types.point.Point; + +public class Main { + public static void main() { + Path path = new Path(List.of( + new Point(10, 25), + new Point(25, 10) + )); + + Path path2 = Path.arbitrary() + .addPoint(new Point(10, 25)) + .addPoint(new Point(25, 10)) + .build(); + } +} diff --git a/examples/04-list/output/rust/.gitignore b/examples/04-list/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/04-list/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/04-list/output/rust/Cargo.lock b/examples/04-list/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/04-list/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/04-list/output/rust/Cargo.toml b/examples/04-list/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/04-list/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/04-list/output/rust/rust-toolchain.toml b/examples/04-list/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/04-list/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/04-list/output/rust/src/main.rs b/examples/04-list/output/rust/src/main.rs new file mode 100644 index 0000000..3c636af --- /dev/null +++ b/examples/04-list/output/rust/src/main.rs @@ -0,0 +1,12 @@ +mod point; + +use point::{Path, Point}; + +fn main() { + let path: Path = Path { + points: vec![ + Point { x: 10, y: 25 }, + Point { x: 25, y: 10 } + ], + }; +} diff --git a/examples/04-list/output/rust/src/point.rs b/examples/04-list/output/rust/src/point.rs new file mode 100644 index 0000000..6249c0a --- /dev/null +++ b/examples/04-list/output/rust/src/point.rs @@ -0,0 +1,10 @@ +// Generated by hobgoblin. + +pub struct Path { + pub points: std::vec::Vec, +} + +pub struct Point { + pub x: i32, + pub y: i32, +} diff --git a/examples/04-list/src/point.hob b/examples/04-list/src/point.hob new file mode 100644 index 0000000..8dd438c --- /dev/null +++ b/examples/04-list/src/point.hob @@ -0,0 +1,8 @@ +struct Path { + field points: List[Point]; +} + +struct Point { + field x: Int32; + field y: Int32; +} diff --git a/examples/04-native-type/hobgoblin.json5 b/examples/04-native-type/hobgoblin.json5 deleted file mode 100644 index a0f60c3..0000000 --- a/examples/04-native-type/hobgoblin.json5 +++ /dev/null @@ -1,19 +0,0 @@ -{ - outputs: { - langs: { - java: { - packageName: "org.zwobble.example.types", - }, - }, - generators: [ - { - generator: "java-types", - path: "output/java/src/gen/java", - }, - { - generator: "rust-types", - path: "output/rust/src/gen", - }, - ], - }, -} diff --git a/examples/04-native-type/output/java/.gitignore b/examples/04-native-type/output/java/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/04-native-type/output/java/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/04-native-type/output/java/pom.xml b/examples/04-native-type/output/java/pom.xml deleted file mode 100644 index 7493667..0000000 --- a/examples/04-native-type/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/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 deleted file mode 100644 index b2efcc1..0000000 --- a/examples/04-native-type/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.point.Line; -import org.zwobble.example.types.point.Point; - -public class Main { - public static void main() { - Line line = new Line(new Point(10, 25), new Point(25, 10)); - } -} 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 deleted file mode 100644 index bdb5427..0000000 --- a/examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.zwobble.example.types.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 deleted file mode 100644 index cd26290..0000000 --- a/examples/04-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.zwobble.example.types.point; - -public record Point(int x, int y) { -} diff --git a/examples/04-native-type/output/rust/.gitignore b/examples/04-native-type/output/rust/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/examples/04-native-type/output/rust/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/examples/04-native-type/output/rust/Cargo.lock b/examples/04-native-type/output/rust/Cargo.lock deleted file mode 100644 index 9dc6e3e..0000000 --- a/examples/04-native-type/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/04-native-type/output/rust/Cargo.toml b/examples/04-native-type/output/rust/Cargo.toml deleted file mode 100644 index 5d4c622..0000000 --- a/examples/04-native-type/output/rust/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "example" -version = "0.1.0" -edition = "2024" - -[dependencies] diff --git a/examples/04-native-type/output/rust/rust-toolchain.toml b/examples/04-native-type/output/rust/rust-toolchain.toml deleted file mode 100644 index 4fedb95..0000000 --- a/examples/04-native-type/output/rust/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "1.96" diff --git a/examples/04-native-type/output/rust/src/gen/point.rs b/examples/04-native-type/output/rust/src/gen/point.rs deleted file mode 100644 index 01c9d43..0000000 --- a/examples/04-native-type/output/rust/src/gen/point.rs +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by hobgoblin. - -/// 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/04-native-type/output/rust/src/main.rs b/examples/04-native-type/output/rust/src/main.rs deleted file mode 100644 index 4bd1cd0..0000000 --- a/examples/04-native-type/output/rust/src/main.rs +++ /dev/null @@ -1,7 +0,0 @@ -mod point; - -use point::{Line, Point}; - -fn main() { - let line = Line { start: Point(10, 25), end: Point(25, 10) }; -} diff --git a/examples/04-native-type/output/rust/src/point.rs b/examples/04-native-type/output/rust/src/point.rs deleted file mode 100644 index bc04e56..0000000 --- a/examples/04-native-type/output/rust/src/point.rs +++ /dev/null @@ -1,3 +0,0 @@ -include!("gen/point.rs"); - -pub struct Point(pub i32, pub i32); diff --git a/examples/04-native-type/src/point.hob b/examples/04-native-type/src/point.hob deleted file mode 100644 index 7178dcb..0000000 --- a/examples/04-native-type/src/point.hob +++ /dev/null @@ -1,8 +0,0 @@ -native Point { -} - -/// A straight line from one point to another. -struct Line { - field start: Point; - field end: Point; -} diff --git a/examples/05-native-type-custom-config/hobgoblin.json5 b/examples/05-native-type-custom-config/hobgoblin.json5 deleted file mode 100644 index f925903..0000000 --- a/examples/05-native-type-custom-config/hobgoblin.json5 +++ /dev/null @@ -1,33 +0,0 @@ -{ - outputs: { - langs: { - java: { - packageName: "org.zwobble.example.types", - nativeTypes: [ - { - hobgoblin: "point.Point", - java: "org.zwobble.example.Point", - }, - ], - }, - rust: { - nativeTypes: [ - { - hobgoblin: "point.Point", - rust: "crate::Point", - }, - ], - }, - }, - generators: [ - { - generator: "java-types", - path: "output/java/src/gen/java", - }, - { - generator: "rust-types", - path: "output/rust/src", - }, - ], - }, -} diff --git a/examples/05-native-type-custom-config/output/java/.gitignore b/examples/05-native-type-custom-config/output/java/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/05-native-type-custom-config/output/java/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/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 deleted file mode 100644 index 7493667..0000000 --- a/examples/05-native-type-custom-config/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-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 deleted file mode 100644 index f6a4443..0000000 --- a/examples/05-native-type-custom-config/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.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 deleted file mode 100644 index 8862a62..0000000 --- a/examples/05-native-type-custom-config/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/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 deleted file mode 100644 index 74ac856..0000000 --- a/examples/05-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java +++ /dev/null @@ -1,9 +0,0 @@ -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/output/rust/.gitignore b/examples/05-native-type-custom-config/output/rust/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/examples/05-native-type-custom-config/output/rust/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/examples/05-native-type-custom-config/output/rust/Cargo.lock b/examples/05-native-type-custom-config/output/rust/Cargo.lock deleted file mode 100644 index 9dc6e3e..0000000 --- a/examples/05-native-type-custom-config/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/05-native-type-custom-config/output/rust/Cargo.toml b/examples/05-native-type-custom-config/output/rust/Cargo.toml deleted file mode 100644 index 5d4c622..0000000 --- a/examples/05-native-type-custom-config/output/rust/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "example" -version = "0.1.0" -edition = "2024" - -[dependencies] diff --git a/examples/05-native-type-custom-config/output/rust/rust-toolchain.toml b/examples/05-native-type-custom-config/output/rust/rust-toolchain.toml deleted file mode 100644 index 4fedb95..0000000 --- a/examples/05-native-type-custom-config/output/rust/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "1.96" diff --git a/examples/05-native-type-custom-config/output/rust/src/main.rs b/examples/05-native-type-custom-config/output/rust/src/main.rs deleted file mode 100644 index af7be7f..0000000 --- a/examples/05-native-type-custom-config/output/rust/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -mod point; - -use point::Line; - -struct Point(i32, i32); - -fn main() { - let line = Line { start: Point(10, 25), end: Point(25, 10) }; -} diff --git a/examples/05-native-type-custom-config/output/rust/src/point.rs b/examples/05-native-type-custom-config/output/rust/src/point.rs deleted file mode 100644 index b073f86..0000000 --- a/examples/05-native-type-custom-config/output/rust/src/point.rs +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by hobgoblin. - -/// A straight line from one point to another. -pub struct Line { - pub start: crate::Point, - pub end: crate::Point, -} diff --git a/examples/05-native-type-custom-config/src/point.hob b/examples/05-native-type-custom-config/src/point.hob deleted file mode 100644 index 7178dcb..0000000 --- a/examples/05-native-type-custom-config/src/point.hob +++ /dev/null @@ -1,8 +0,0 @@ -native Point { -} - -/// A straight line from one point to another. -struct Line { - field start: Point; - field end: Point; -} diff --git a/examples/05-native-type/hobgoblin.json5 b/examples/05-native-type/hobgoblin.json5 new file mode 100644 index 0000000..a0f60c3 --- /dev/null +++ b/examples/05-native-type/hobgoblin.json5 @@ -0,0 +1,19 @@ +{ + outputs: { + langs: { + java: { + packageName: "org.zwobble.example.types", + }, + }, + generators: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + }, + { + generator: "rust-types", + path: "output/rust/src/gen", + }, + ], + }, +} diff --git a/examples/05-native-type/output/java/.gitignore b/examples/05-native-type/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/05-native-type/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/05-native-type/output/java/pom.xml b/examples/05-native-type/output/java/pom.xml new file mode 100644 index 0000000..7493667 --- /dev/null +++ b/examples/05-native-type/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/output/java/src/main/java/org/zwobble/example/Main.java b/examples/05-native-type/output/java/src/main/java/org/zwobble/example/Main.java new file mode 100644 index 0000000..b2efcc1 --- /dev/null +++ b/examples/05-native-type/output/java/src/main/java/org/zwobble/example/Main.java @@ -0,0 +1,10 @@ +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() { + Line line = new Line(new Point(10, 25), new Point(25, 10)); + } +} diff --git a/examples/05-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java b/examples/05-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java new file mode 100644 index 0000000..bdb5427 --- /dev/null +++ b/examples/05-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java @@ -0,0 +1,7 @@ +package org.zwobble.example.types.point; + +public class HobgoblinNativePoint { + public static Point arbitraryPoint() { + return new Point(0, 0); + } +} diff --git a/examples/05-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java b/examples/05-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/05-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-native-type/output/rust/.gitignore b/examples/05-native-type/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/05-native-type/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/05-native-type/output/rust/Cargo.lock b/examples/05-native-type/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/05-native-type/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/05-native-type/output/rust/Cargo.toml b/examples/05-native-type/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/05-native-type/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/05-native-type/output/rust/rust-toolchain.toml b/examples/05-native-type/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/05-native-type/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/05-native-type/output/rust/src/gen/point.rs b/examples/05-native-type/output/rust/src/gen/point.rs new file mode 100644 index 0000000..01c9d43 --- /dev/null +++ b/examples/05-native-type/output/rust/src/gen/point.rs @@ -0,0 +1,7 @@ +// Generated by hobgoblin. + +/// 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/05-native-type/output/rust/src/main.rs b/examples/05-native-type/output/rust/src/main.rs new file mode 100644 index 0000000..4bd1cd0 --- /dev/null +++ b/examples/05-native-type/output/rust/src/main.rs @@ -0,0 +1,7 @@ +mod point; + +use point::{Line, Point}; + +fn main() { + let line = Line { start: Point(10, 25), end: Point(25, 10) }; +} diff --git a/examples/05-native-type/output/rust/src/point.rs b/examples/05-native-type/output/rust/src/point.rs new file mode 100644 index 0000000..bc04e56 --- /dev/null +++ b/examples/05-native-type/output/rust/src/point.rs @@ -0,0 +1,3 @@ +include!("gen/point.rs"); + +pub struct Point(pub i32, pub i32); diff --git a/examples/05-native-type/src/point.hob b/examples/05-native-type/src/point.hob new file mode 100644 index 0000000..7178dcb --- /dev/null +++ b/examples/05-native-type/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 deleted file mode 100644 index 1d08a40..0000000 --- a/examples/06-custom-code/hobgoblin.json5 +++ /dev/null @@ -1,19 +0,0 @@ -{ - outputs: { - langs: { - java: { - packageName: "org.zwobble.example.types", - }, - }, - generators: [ - { - generator: "java-types", - path: "output/java/src/main/java", - }, - { - generator: "rust-types", - path: "output/rust/src/gen", - }, - ], - }, -} diff --git a/examples/06-custom-code/output/java/.gitignore b/examples/06-custom-code/output/java/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/06-custom-code/output/java/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/06-custom-code/output/java/pom.xml b/examples/06-custom-code/output/java/pom.xml deleted file mode 100644 index 7493667..0000000 --- a/examples/06-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/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 deleted file mode 100644 index 2d2366d..0000000 --- a/examples/06-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/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 deleted file mode 100644 index 169d729..0000000 --- a/examples/06-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/06-custom-code/output/rust/.gitignore b/examples/06-custom-code/output/rust/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/examples/06-custom-code/output/rust/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/examples/06-custom-code/output/rust/Cargo.lock b/examples/06-custom-code/output/rust/Cargo.lock deleted file mode 100644 index 9dc6e3e..0000000 --- a/examples/06-custom-code/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-custom-code/output/rust/Cargo.toml b/examples/06-custom-code/output/rust/Cargo.toml deleted file mode 100644 index 5d4c622..0000000 --- a/examples/06-custom-code/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-custom-code/output/rust/rust-toolchain.toml b/examples/06-custom-code/output/rust/rust-toolchain.toml deleted file mode 100644 index 4fedb95..0000000 --- a/examples/06-custom-code/output/rust/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "1.96" diff --git a/examples/06-custom-code/output/rust/src/gen/shapes.rs b/examples/06-custom-code/output/rust/src/gen/shapes.rs deleted file mode 100644 index b85ad8c..0000000 --- a/examples/06-custom-code/output/rust/src/gen/shapes.rs +++ /dev/null @@ -1,5 +0,0 @@ -// Generated by hobgoblin. - -pub struct Square { - pub width: i32, -} diff --git a/examples/06-custom-code/output/rust/src/main.rs b/examples/06-custom-code/output/rust/src/main.rs deleted file mode 100644 index e30443e..0000000 --- a/examples/06-custom-code/output/rust/src/main.rs +++ /dev/null @@ -1,8 +0,0 @@ -mod shapes; - -use shapes::Square; - -fn main() { - let square = Square { width: 10 }; - assert!(square.area() == 100); -} diff --git a/examples/06-custom-code/output/rust/src/shapes.rs b/examples/06-custom-code/output/rust/src/shapes.rs deleted file mode 100644 index f806bbb..0000000 --- a/examples/06-custom-code/output/rust/src/shapes.rs +++ /dev/null @@ -1,7 +0,0 @@ -include!("gen/shapes.rs"); - -impl Square { - pub fn area(&self) -> i32 { - self.width * self.width - } -} diff --git a/examples/06-custom-code/src/shapes.hob b/examples/06-custom-code/src/shapes.hob deleted file mode 100644 index 5dfe833..0000000 --- a/examples/06-custom-code/src/shapes.hob +++ /dev/null @@ -1,3 +0,0 @@ -struct Square { - field width: Int32; -} diff --git a/examples/06-native-type-custom-config/hobgoblin.json5 b/examples/06-native-type-custom-config/hobgoblin.json5 new file mode 100644 index 0000000..f925903 --- /dev/null +++ b/examples/06-native-type-custom-config/hobgoblin.json5 @@ -0,0 +1,33 @@ +{ + outputs: { + langs: { + java: { + packageName: "org.zwobble.example.types", + nativeTypes: [ + { + hobgoblin: "point.Point", + java: "org.zwobble.example.Point", + }, + ], + }, + rust: { + nativeTypes: [ + { + hobgoblin: "point.Point", + rust: "crate::Point", + }, + ], + }, + }, + generators: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + }, + { + generator: "rust-types", + path: "output/rust/src", + }, + ], + }, +} diff --git a/examples/06-native-type-custom-config/output/java/.gitignore b/examples/06-native-type-custom-config/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/06-native-type-custom-config/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/06-native-type-custom-config/output/java/pom.xml b/examples/06-native-type-custom-config/output/java/pom.xml new file mode 100644 index 0000000..7493667 --- /dev/null +++ b/examples/06-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/06-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Main.java b/examples/06-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/06-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/06-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java b/examples/06-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/06-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/06-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java b/examples/06-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/06-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/06-native-type-custom-config/output/rust/.gitignore b/examples/06-native-type-custom-config/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/06-native-type-custom-config/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/06-native-type-custom-config/output/rust/Cargo.lock b/examples/06-native-type-custom-config/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/06-native-type-custom-config/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/06-native-type-custom-config/output/rust/Cargo.toml b/examples/06-native-type-custom-config/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/06-native-type-custom-config/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/06-native-type-custom-config/output/rust/rust-toolchain.toml b/examples/06-native-type-custom-config/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/06-native-type-custom-config/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/06-native-type-custom-config/output/rust/src/main.rs b/examples/06-native-type-custom-config/output/rust/src/main.rs new file mode 100644 index 0000000..af7be7f --- /dev/null +++ b/examples/06-native-type-custom-config/output/rust/src/main.rs @@ -0,0 +1,9 @@ +mod point; + +use point::Line; + +struct Point(i32, i32); + +fn main() { + let line = Line { start: Point(10, 25), end: Point(25, 10) }; +} diff --git a/examples/06-native-type-custom-config/output/rust/src/point.rs b/examples/06-native-type-custom-config/output/rust/src/point.rs new file mode 100644 index 0000000..b073f86 --- /dev/null +++ b/examples/06-native-type-custom-config/output/rust/src/point.rs @@ -0,0 +1,7 @@ +// Generated by hobgoblin. + +/// A straight line from one point to another. +pub struct Line { + pub start: crate::Point, + pub end: crate::Point, +} diff --git a/examples/06-native-type-custom-config/src/point.hob b/examples/06-native-type-custom-config/src/point.hob new file mode 100644 index 0000000..7178dcb --- /dev/null +++ b/examples/06-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/07-custom-code/hobgoblin.json5 b/examples/07-custom-code/hobgoblin.json5 new file mode 100644 index 0000000..1d08a40 --- /dev/null +++ b/examples/07-custom-code/hobgoblin.json5 @@ -0,0 +1,19 @@ +{ + outputs: { + langs: { + java: { + packageName: "org.zwobble.example.types", + }, + }, + generators: [ + { + generator: "java-types", + path: "output/java/src/main/java", + }, + { + generator: "rust-types", + path: "output/rust/src/gen", + }, + ], + }, +} diff --git a/examples/07-custom-code/output/java/.gitignore b/examples/07-custom-code/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/07-custom-code/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/07-custom-code/output/java/pom.xml b/examples/07-custom-code/output/java/pom.xml new file mode 100644 index 0000000..7493667 --- /dev/null +++ b/examples/07-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/07-custom-code/output/java/src/main/java/org/zwobble/example/Main.java b/examples/07-custom-code/output/java/src/main/java/org/zwobble/example/Main.java new file mode 100644 index 0000000..2d2366d --- /dev/null +++ b/examples/07-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/07-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java b/examples/07-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/07-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/07-custom-code/output/rust/.gitignore b/examples/07-custom-code/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/07-custom-code/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/07-custom-code/output/rust/Cargo.lock b/examples/07-custom-code/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/07-custom-code/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-custom-code/output/rust/Cargo.toml b/examples/07-custom-code/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/07-custom-code/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/07-custom-code/output/rust/rust-toolchain.toml b/examples/07-custom-code/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/07-custom-code/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/07-custom-code/output/rust/src/gen/shapes.rs b/examples/07-custom-code/output/rust/src/gen/shapes.rs new file mode 100644 index 0000000..b85ad8c --- /dev/null +++ b/examples/07-custom-code/output/rust/src/gen/shapes.rs @@ -0,0 +1,5 @@ +// Generated by hobgoblin. + +pub struct Square { + pub width: i32, +} diff --git a/examples/07-custom-code/output/rust/src/main.rs b/examples/07-custom-code/output/rust/src/main.rs new file mode 100644 index 0000000..e30443e --- /dev/null +++ b/examples/07-custom-code/output/rust/src/main.rs @@ -0,0 +1,8 @@ +mod shapes; + +use shapes::Square; + +fn main() { + let square = Square { width: 10 }; + assert!(square.area() == 100); +} diff --git a/examples/07-custom-code/output/rust/src/shapes.rs b/examples/07-custom-code/output/rust/src/shapes.rs new file mode 100644 index 0000000..f806bbb --- /dev/null +++ b/examples/07-custom-code/output/rust/src/shapes.rs @@ -0,0 +1,7 @@ +include!("gen/shapes.rs"); + +impl Square { + pub fn area(&self) -> i32 { + self.width * self.width + } +} diff --git a/examples/07-custom-code/src/shapes.hob b/examples/07-custom-code/src/shapes.hob new file mode 100644 index 0000000..5dfe833 --- /dev/null +++ b/examples/07-custom-code/src/shapes.hob @@ -0,0 +1,3 @@ +struct Square { + field width: Int32; +} diff --git a/examples/07-imports/hobgoblin.json5 b/examples/07-imports/hobgoblin.json5 deleted file mode 100644 index 12713d4..0000000 --- a/examples/07-imports/hobgoblin.json5 +++ /dev/null @@ -1,19 +0,0 @@ -{ - outputs: { - langs: { - java: { - packageName: "org.zwobble.example.types", - }, - }, - generators: [ - { - generator: "java-types", - path: "output/java/src/gen/java", - }, - { - generator: "rust-types", - path: "output/rust/src", - }, - ], - }, -} diff --git a/examples/07-imports/output/java/.gitignore b/examples/07-imports/output/java/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/07-imports/output/java/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/07-imports/output/java/pom.xml b/examples/07-imports/output/java/pom.xml deleted file mode 100644 index 506947e..0000000 --- a/examples/07-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/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 deleted file mode 100644 index 3535c16..0000000 --- a/examples/07-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/07-imports/output/rust/.gitignore b/examples/07-imports/output/rust/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/examples/07-imports/output/rust/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/examples/07-imports/output/rust/Cargo.lock b/examples/07-imports/output/rust/Cargo.lock deleted file mode 100644 index 9dc6e3e..0000000 --- a/examples/07-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/07-imports/output/rust/Cargo.toml b/examples/07-imports/output/rust/Cargo.toml deleted file mode 100644 index 5d4c622..0000000 --- a/examples/07-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/07-imports/output/rust/rust-toolchain.toml b/examples/07-imports/output/rust/rust-toolchain.toml deleted file mode 100644 index 4fedb95..0000000 --- a/examples/07-imports/output/rust/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "1.96" diff --git a/examples/07-imports/output/rust/src/line.rs b/examples/07-imports/output/rust/src/line.rs deleted file mode 100644 index 01c9d43..0000000 --- a/examples/07-imports/output/rust/src/line.rs +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by hobgoblin. - -/// 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 deleted file mode 100644 index ee3d685..0000000 --- a/examples/07-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/07-imports/output/rust/src/point.rs b/examples/07-imports/output/rust/src/point.rs deleted file mode 100644 index 718ecfd..0000000 --- a/examples/07-imports/output/rust/src/point.rs +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by hobgoblin. - -/// 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 deleted file mode 100644 index 562d77f..0000000 --- a/examples/07-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/07-imports/src/point.hob b/examples/07-imports/src/point.hob deleted file mode 100644 index 87f9953..0000000 --- a/examples/07-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/08-enum/hobgoblin.json5 b/examples/08-enum/hobgoblin.json5 deleted file mode 100644 index 12713d4..0000000 --- a/examples/08-enum/hobgoblin.json5 +++ /dev/null @@ -1,19 +0,0 @@ -{ - outputs: { - langs: { - java: { - packageName: "org.zwobble.example.types", - }, - }, - generators: [ - { - generator: "java-types", - path: "output/java/src/gen/java", - }, - { - generator: "rust-types", - path: "output/rust/src", - }, - ], - }, -} diff --git a/examples/08-enum/output/java/.gitignore b/examples/08-enum/output/java/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/08-enum/output/java/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/08-enum/output/java/pom.xml b/examples/08-enum/output/java/pom.xml deleted file mode 100644 index 506947e..0000000 --- a/examples/08-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/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 deleted file mode 100644 index 8342d3b..0000000 --- a/examples/08-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/08-enum/output/rust/.gitignore b/examples/08-enum/output/rust/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/examples/08-enum/output/rust/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/examples/08-enum/output/rust/Cargo.lock b/examples/08-enum/output/rust/Cargo.lock deleted file mode 100644 index 9dc6e3e..0000000 --- a/examples/08-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/08-enum/output/rust/Cargo.toml b/examples/08-enum/output/rust/Cargo.toml deleted file mode 100644 index 5d4c622..0000000 --- a/examples/08-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/08-enum/output/rust/rust-toolchain.toml b/examples/08-enum/output/rust/rust-toolchain.toml deleted file mode 100644 index 4fedb95..0000000 --- a/examples/08-enum/output/rust/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "1.96" diff --git a/examples/08-enum/output/rust/src/main.rs b/examples/08-enum/output/rust/src/main.rs deleted file mode 100644 index 2201dcc..0000000 --- a/examples/08-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/08-enum/output/rust/src/numbers.rs b/examples/08-enum/output/rust/src/numbers.rs deleted file mode 100644 index e86b453..0000000 --- a/examples/08-enum/output/rust/src/numbers.rs +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by hobgoblin. - -/// 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 deleted file mode 100644 index 125082d..0000000 --- a/examples/08-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/08-imports/hobgoblin.json5 b/examples/08-imports/hobgoblin.json5 new file mode 100644 index 0000000..12713d4 --- /dev/null +++ b/examples/08-imports/hobgoblin.json5 @@ -0,0 +1,19 @@ +{ + outputs: { + langs: { + java: { + packageName: "org.zwobble.example.types", + }, + }, + generators: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + }, + { + generator: "rust-types", + path: "output/rust/src", + }, + ], + }, +} diff --git a/examples/08-imports/output/java/.gitignore b/examples/08-imports/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/08-imports/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/08-imports/output/java/pom.xml b/examples/08-imports/output/java/pom.xml new file mode 100644 index 0000000..506947e --- /dev/null +++ b/examples/08-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/08-imports/output/java/src/main/java/org/zwobble/example/Main.java b/examples/08-imports/output/java/src/main/java/org/zwobble/example/Main.java new file mode 100644 index 0000000..3535c16 --- /dev/null +++ b/examples/08-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/08-imports/output/rust/.gitignore b/examples/08-imports/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/08-imports/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/08-imports/output/rust/Cargo.lock b/examples/08-imports/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/08-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/08-imports/output/rust/Cargo.toml b/examples/08-imports/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/08-imports/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/08-imports/output/rust/rust-toolchain.toml b/examples/08-imports/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/08-imports/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/08-imports/output/rust/src/line.rs b/examples/08-imports/output/rust/src/line.rs new file mode 100644 index 0000000..01c9d43 --- /dev/null +++ b/examples/08-imports/output/rust/src/line.rs @@ -0,0 +1,7 @@ +// Generated by hobgoblin. + +/// 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/08-imports/output/rust/src/main.rs b/examples/08-imports/output/rust/src/main.rs new file mode 100644 index 0000000..ee3d685 --- /dev/null +++ b/examples/08-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/08-imports/output/rust/src/point.rs b/examples/08-imports/output/rust/src/point.rs new file mode 100644 index 0000000..718ecfd --- /dev/null +++ b/examples/08-imports/output/rust/src/point.rs @@ -0,0 +1,7 @@ +// Generated by hobgoblin. + +/// A 2D point. +pub struct Point { + pub x: i32, + pub y: i32, +} diff --git a/examples/08-imports/src/line.hob b/examples/08-imports/src/line.hob new file mode 100644 index 0000000..562d77f --- /dev/null +++ b/examples/08-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/08-imports/src/point.hob b/examples/08-imports/src/point.hob new file mode 100644 index 0000000..87f9953 --- /dev/null +++ b/examples/08-imports/src/point.hob @@ -0,0 +1,5 @@ +/// A 2D point. +struct Point { + field x: Int32; + field y: Int32; +} diff --git a/examples/renumber.py b/examples/renumber.py new file mode 100755 index 0000000..747bf6e --- /dev/null +++ b/examples/renumber.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +import argparse +import os +import re + + +def _main(): + example_dir = os.path.dirname(__file__) + + args = _parse_args() + + renames = [] + + for name in sorted(os.listdir(example_dir)): + path = os.path.join(example_dir, name) + match = re.match("([0-9]+)(-.*)", name) + + if os.path.isdir(path) and match is not None: + old_number = int(match[1]) + is_in_range = ( + (args.from_number is None or args.from_number <= old_number) and + (args.to_number is None or old_number <= args.to_number) + ) + if is_in_range: + new_number = old_number + args.delta + new_name = f"{new_number:02}{match[2]}" + new_path = os.path.join(example_dir, new_name) + print(f"{name} -> {new_name}") + + if os.path.exists(new_path): + raise ValueError("destination already exists") + + renames.append((path, new_path)) + + for old_path, new_path in renames: + os.rename(old_path, new_path) + + +def _parse_args(): + parser = argparse.ArgumentParser() + + parser.add_argument("--delta", required=True, type=int) + parser.add_argument("--from", required=False, type=int, dest="from_number") + parser.add_argument("--to", required=False, type=int, dest="to_number") + + return parser.parse_args() + + +if __name__ == "__main__": + _main() -- cgit v1.2.3