aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hobgoblin/hobgoblin.json525
-rw-r--r--hobgoblin/src/patio.hob0
-rw-r--r--hobgoblin/src/sources.hob19
-rw-r--r--hobgoblin/src/sourcetext.hob13
-rw-r--r--makefile5
-rw-r--r--pom.xml2
-rw-r--r--src/main/java/org/shedlang/compiler/sources/NullSource.java2
-rw-r--r--src/main/java/org/shedlang/compiler/sources/RuntimeSource.java2
8 files changed, 65 insertions, 3 deletions
diff --git a/hobgoblin/hobgoblin.json5 b/hobgoblin/hobgoblin.json5
new file mode 100644
index 00000000..365c19a6
--- /dev/null
+++ b/hobgoblin/hobgoblin.json5
@@ -0,0 +1,25 @@
+{
+ outputs: {
+ langs: {
+ java: {
+ packageName: "org.shedlang.compiler",
+ namespaces: [
+ {
+ hobgoblin: "sourcetext",
+ java: "org.zwobble.sourcetext",
+ },
+ ],
+ },
+ },
+ generators: [
+ {
+ generator: "java-transient-0",
+ path: "../src/gen/java",
+ },
+ {
+ generator: "rust-transient-0",
+ path: "../patio-to-cranelift/src/gen",
+ },
+ ],
+ },
+}
diff --git a/hobgoblin/src/patio.hob b/hobgoblin/src/patio.hob
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/hobgoblin/src/patio.hob
diff --git a/hobgoblin/src/sources.hob b/hobgoblin/src/sources.hob
new file mode 100644
index 00000000..ad089a13
--- /dev/null
+++ b/hobgoblin/src/sources.hob
@@ -0,0 +1,19 @@
+import {SourceRange} from ./sourcetext;
+
+sum Source {
+ variant NullSource;
+ variant RuntimeSource;
+ variant FileFragmentSource;
+}
+
+struct NullSource {
+ singleton;
+}
+
+struct RuntimeSource {
+ singleton;
+}
+
+struct FileFragmentSource {
+ field sourceRange: SourceRange;
+}
diff --git a/hobgoblin/src/sourcetext.hob b/hobgoblin/src/sourcetext.hob
new file mode 100644
index 00000000..14754196
--- /dev/null
+++ b/hobgoblin/src/sourcetext.hob
@@ -0,0 +1,13 @@
+struct SourceRange {
+ field sourceText: Shared[SourceText];
+ field start: SourcePosition;
+ field end: SourcePosition;
+}
+
+native SourceText {
+}
+
+struct SourcePosition {
+ field sourceText: Shared[SourceText];
+ field characterIndex: Int32;
+}
diff --git a/makefile b/makefile
index d2f4fcd5..858d9114 100644
--- a/makefile
+++ b/makefile
@@ -35,3 +35,8 @@ src/gen/java:
patio-to-cranelift:
flatc-25.12.19 -o patio-to-cranelift/src/gen --rust flatbuffers/*
cd patio-to-cranelift; cargo fmt && cargo build && cargo test
+
+.PHONY: hobgoblin
+
+hobgoblin:
+ hobgoblin compile hobgoblin
diff --git a/pom.xml b/pom.xml
index 548bf325..896a6300 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,7 +48,7 @@
<dependency>
<groupId>org.zwobble.source-text</groupId>
<artifactId>source-text</artifactId>
- <version>0.1.0</version>
+ <version>0.1.3</version>
</dependency>
<dependency>
<groupId>org.pcollections</groupId>
diff --git a/src/main/java/org/shedlang/compiler/sources/NullSource.java b/src/main/java/org/shedlang/compiler/sources/NullSource.java
index fbac0ea0..35c82aa3 100644
--- a/src/main/java/org/shedlang/compiler/sources/NullSource.java
+++ b/src/main/java/org/shedlang/compiler/sources/NullSource.java
@@ -4,7 +4,7 @@ public final class NullSource implements Source {
private NullSource() {
}
- static final NullSource INSTANCE = new NullSource();
+ public static final NullSource INSTANCE = new NullSource();
@Override
public String describe() {
diff --git a/src/main/java/org/shedlang/compiler/sources/RuntimeSource.java b/src/main/java/org/shedlang/compiler/sources/RuntimeSource.java
index 749b84e3..b3356f6a 100644
--- a/src/main/java/org/shedlang/compiler/sources/RuntimeSource.java
+++ b/src/main/java/org/shedlang/compiler/sources/RuntimeSource.java
@@ -4,7 +4,7 @@ public final class RuntimeSource implements Source {
private RuntimeSource() {
}
- static final RuntimeSource INSTANCE = new RuntimeSource();
+ public static final RuntimeSource INSTANCE = new RuntimeSource();
@Override
public String describe() {