mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 00:34:20 +03:00
Ability to include from resources
This commit is contained in:
parent
fcb21f6e63
commit
ae42c0952a
@ -8,7 +8,7 @@ import com.annimon.ownlang.parser.error.ParseErrorsFormatterStage;
|
|||||||
import com.annimon.ownlang.stages.*;
|
import com.annimon.ownlang.stages.*;
|
||||||
import com.annimon.ownlang.util.Range;
|
import com.annimon.ownlang.util.Range;
|
||||||
import com.annimon.ownlang.util.SourceLocation;
|
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;
|
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 class IncludeStatement extends InterruptableNode implements Statement, SourceLocation {
|
||||||
|
|
||||||
public final Node expression;
|
public final Node expression;
|
||||||
|
private final InputSourceDetector inputSourceDetector;
|
||||||
private Range range;
|
private Range range;
|
||||||
|
|
||||||
public IncludeStatement(Node expression) {
|
public IncludeStatement(Node expression) {
|
||||||
this.expression = expression;
|
this.expression = expression;
|
||||||
|
inputSourceDetector = new InputSourceDetector();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRange(Range range) {
|
public void setRange(Range range) {
|
||||||
@ -46,7 +48,7 @@ public final class IncludeStatement extends InterruptableNode implements Stateme
|
|||||||
// TODO LinterStage based on main context
|
// TODO LinterStage based on main context
|
||||||
.then(new FunctionAddingStage())
|
.then(new FunctionAddingStage())
|
||||||
.then(new ExecutionStage())
|
.then(new ExecutionStage())
|
||||||
.perform(stagesData, new InputSourceFile(path));
|
.perform(stagesData, inputSourceDetector.toInputSource(path));
|
||||||
} catch (OwnLangParserException ex) {
|
} catch (OwnLangParserException ex) {
|
||||||
final var error = new ParseErrorsFormatterStage()
|
final var error = new ParseErrorsFormatterStage()
|
||||||
.perform(stagesData, ex.getParseErrors());
|
.perform(stagesData, ex.getParseErrors());
|
||||||
|
Loading…
Reference in New Issue
Block a user