diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-04-24 12:37:49 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-04-24 12:37:49 +0100 |
| commit | b2a60a830841e59622bc571e9488f018a9e4728e (patch) | |
| tree | c9f1ffc3ea69db26d8ef7eaa894934634fb98696 /src | |
| parent | 045969708f21e19f852256f8bf934f4289b96495 (diff) | |
Store Source in SourceError
Diffstat (limited to 'src')
3 files changed, 10 insertions, 8 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/errors/SourceError.java b/src/main/java/org/zwobble/hobgoblin/compiler/errors/SourceError.java index afeb9b4..c60167f 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/errors/SourceError.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/errors/SourceError.java @@ -1,20 +1,20 @@ package org.zwobble.hobgoblin.compiler.errors; -import org.zwobble.sourcetext.SourceRange; +import org.zwobble.hobgoblin.compiler.sources.Source; /** * An error in the source code. These errors are expected when attempting to * compile invalid code. */ public class SourceError extends RuntimeException { - private final SourceRange sourceRange; + private final Source source; - public SourceError(String message, SourceRange sourceRange) { + public SourceError(String message, Source source) { super(message); - this.sourceRange = sourceRange; + this.source = source; } - public SourceRange sourceRange() { - return sourceRange; + public Source source() { + return source; } } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/parser/ParseError.java b/src/main/java/org/zwobble/hobgoblin/compiler/parser/ParseError.java index 78d063d..36e5bdb 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/parser/ParseError.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/parser/ParseError.java @@ -1,6 +1,7 @@ package org.zwobble.hobgoblin.compiler.parser; import org.zwobble.hobgoblin.compiler.errors.SourceError; +import org.zwobble.hobgoblin.compiler.sources.FileFragmentSource; import org.zwobble.sourcetext.SourceRange; public class ParseError extends SourceError { @@ -18,6 +19,6 @@ public class ParseError extends SourceError { } public ParseError(String message, SourceRange sourceRange) { - super(message, sourceRange); + super(message, new FileFragmentSource(sourceRange)); } } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/parser/UnexpectedTokenError.java b/src/main/java/org/zwobble/hobgoblin/compiler/parser/UnexpectedTokenError.java index 543aeb4..3b7515e 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/parser/UnexpectedTokenError.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/parser/UnexpectedTokenError.java @@ -1,6 +1,7 @@ package org.zwobble.hobgoblin.compiler.parser; import org.zwobble.hobgoblin.compiler.errors.SourceError; +import org.zwobble.hobgoblin.compiler.sources.FileFragmentSource; public class UnexpectedTokenError extends SourceError { private final String expected; @@ -12,7 +13,7 @@ public class UnexpectedTokenError extends SourceError { ) { super( "Expected: " + expected + "\nBut got: " + actual.tokenType() + " \"" + actual.charSequence() + "\"", - actual.sourceRange() + new FileFragmentSource(actual.sourceRange()) ); this.expected = expected; this.actual = actual; |
