From b2a60a830841e59622bc571e9488f018a9e4728e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 24 Apr 2026 12:37:49 +0100 Subject: Store Source in SourceError --- .../org/zwobble/hobgoblin/compiler/errors/SourceError.java | 12 ++++++------ .../org/zwobble/hobgoblin/compiler/parser/ParseError.java | 3 ++- .../hobgoblin/compiler/parser/UnexpectedTokenError.java | 3 ++- 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; -- cgit v1.2.3