From ae42c0952a28700c82a96d965d05a3037c9f56e5 Mon Sep 17 00:00:00 2001 From: aNNiMON Date: Sat, 20 Apr 2024 00:16:45 +0300 Subject: [PATCH] Ability to include from resources --- .../com/annimon/ownlang/parser/ast/IncludeStatement.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/IncludeStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/IncludeStatement.java index 45a95b3..d963ca1 100644 --- a/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/IncludeStatement.java +++ b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/IncludeStatement.java @@ -8,7 +8,7 @@ import com.annimon.ownlang.parser.error.ParseErrorsFormatterStage; import com.annimon.ownlang.stages.*; import com.annimon.ownlang.util.Range; import com.annimon.ownlang.util.SourceLocation; -import com.annimon.ownlang.util.input.InputSourceFile; +import com.annimon.ownlang.util.input.InputSourceDetector; import com.annimon.ownlang.util.input.SourceLoaderStage; /** @@ -18,10 +18,12 @@ import com.annimon.ownlang.util.input.SourceLoaderStage; public final class IncludeStatement extends InterruptableNode implements Statement, SourceLocation { public final Node expression; + private final InputSourceDetector inputSourceDetector; private Range range; - + public IncludeStatement(Node expression) { this.expression = expression; + inputSourceDetector = new InputSourceDetector(); } public void setRange(Range range) { @@ -46,7 +48,7 @@ public final class IncludeStatement extends InterruptableNode implements Stateme // TODO LinterStage based on main context .then(new FunctionAddingStage()) .then(new ExecutionStage()) - .perform(stagesData, new InputSourceFile(path)); + .perform(stagesData, inputSourceDetector.toInputSource(path)); } catch (OwnLangParserException ex) { final var error = new ParseErrorsFormatterStage() .perform(stagesData, ex.getParseErrors());