diff --git a/runtime/src/main/java/dev/ionfusion/fusion/BaseValue.java b/runtime/src/main/java/dev/ionfusion/fusion/BaseValue.java index 89830d18..24a4fb5a 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/BaseValue.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/BaseValue.java @@ -19,7 +19,7 @@ import dev.ionfusion.fusion.FusionBool.BaseBool; import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import dev.ionfusion.runtime.embed.FusionRuntime; import java.io.IOException; @@ -77,9 +77,9 @@ BaseBool strictEquals(Evaluator eval, Object right) } - SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxValue makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { - return SimpleSyntaxValue.makeOriginalSyntax(eval, loc, this); + return SimpleSyntaxValue.makeOriginalSyntax(eval, pos, this); } @@ -95,10 +95,10 @@ SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) */ SyntaxValue datumToSyntaxMaybe(Evaluator eval, SyntaxSymbol context, - SourceLocation loc) + ResourcePosition pos) throws FusionException { - SyntaxValue stx = datumToSyntaxMaybe(eval, loc); + SyntaxValue stx = datumToSyntaxMaybe(eval, pos); if (stx == null) return null; return Syntax.applyContext(eval, context, stx); @@ -107,7 +107,7 @@ SyntaxValue datumToSyntaxMaybe(Evaluator eval, /** * @return null if something in the datum can't be converted into syntax. */ - SyntaxValue datumToSyntaxMaybe(Evaluator eval, SourceLocation loc) + SyntaxValue datumToSyntaxMaybe(Evaluator eval, ResourcePosition pos) throws FusionException { return null; diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionBool.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionBool.java index 46d8537a..01d3e6a5 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionBool.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionBool.java @@ -14,7 +14,7 @@ import com.amazon.ion.ValueFactory; import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import dev.ionfusion.runtime.embed.TopLevel; import java.io.IOException; @@ -53,9 +53,9 @@ public BaseBool annotate(Evaluator eval, BaseSymbol[] annotations) } @Override - SyntaxValue datumToSyntaxMaybe(Evaluator eval, SourceLocation loc) + SyntaxValue datumToSyntaxMaybe(Evaluator eval, ResourcePosition pos) { - return makeSyntax(eval, loc, this); + return makeSyntax(eval, pos, this); } } diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionList.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionList.java index 7572dfb2..b7b576b9 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionList.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionList.java @@ -29,7 +29,7 @@ import dev.ionfusion.fusion.FusionSexp.BaseSexp; import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import java.io.IOException; import java.util.Arrays; import java.util.Iterator; @@ -607,9 +607,9 @@ BaseBool looseEquals2(Evaluator eval, BaseSexp left) } @Override - SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxValue makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { - return SyntaxList.makeOriginal(eval, loc, this); + return SyntaxList.makeOriginal(eval, pos, this); } /** @@ -622,7 +622,7 @@ SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) @Override SyntaxValue datumToSyntaxMaybe(Evaluator eval, SyntaxSymbol context, - SourceLocation loc) + ResourcePosition pos) throws FusionException { SyntaxList stx; @@ -639,7 +639,7 @@ SyntaxValue datumToSyntaxMaybe(Evaluator eval, { Object rawChild = unsafeRef(eval, i); Object child = - Syntax.datumToSyntaxMaybe(eval, rawChild, context, loc); + Syntax.datumToSyntaxMaybe(eval, rawChild, context, pos); if (child == null) { // Hit something that's not syntax-able @@ -650,7 +650,7 @@ SyntaxValue datumToSyntaxMaybe(Evaluator eval, BaseSymbol[] anns = getAnnotations(); Object list = immutableList(eval, anns, children); - stx = SyntaxList.make(eval, loc, list); + stx = SyntaxList.make(eval, pos, list); } // TODO This should retain context, but not push it diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionLob.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionLob.java index e7aa5df4..f9ada88e 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionLob.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionLob.java @@ -11,7 +11,7 @@ import dev.ionfusion.fusion.FusionBool.BaseBool; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import dev.ionfusion.runtime.embed.TopLevel; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -70,9 +70,9 @@ BaseBool looseEquals(Evaluator eval, Object right) } @Override - SyntaxValue datumToSyntaxMaybe(Evaluator eval, SourceLocation loc) + SyntaxValue datumToSyntaxMaybe(Evaluator eval, ResourcePosition pos) { - return makeSyntax(eval, loc, this); + return makeSyntax(eval, pos, this); } } diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionNull.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionNull.java index 5369131f..c30247ba 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionNull.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionNull.java @@ -13,7 +13,7 @@ import dev.ionfusion.fusion.FusionBool.BaseBool; import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import dev.ionfusion.runtime.embed.TopLevel; import java.io.IOException; @@ -62,9 +62,9 @@ BaseBool looseEquals(Evaluator eval, Object right) } @Override - SyntaxValue datumToSyntaxMaybe(Evaluator eval, SourceLocation loc) + SyntaxValue datumToSyntaxMaybe(Evaluator eval, ResourcePosition pos) { - return makeSyntax(eval, loc, this); + return makeSyntax(eval, pos, this); } @Override diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionNumber.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionNumber.java index a76f4a39..4a26e1cd 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionNumber.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionNumber.java @@ -24,7 +24,7 @@ import dev.ionfusion.fusion.FusionBool.BaseBool; import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import dev.ionfusion.runtime.embed.TopLevel; import java.io.IOException; import java.math.BigDecimal; @@ -114,9 +114,9 @@ BaseBool looseEquals2(Evaluator eval, ActualFloat left) } @Override - SyntaxValue datumToSyntaxMaybe(Evaluator eval, SourceLocation loc) + SyntaxValue datumToSyntaxMaybe(Evaluator eval, ResourcePosition pos) { - return makeSyntax(eval, loc, this); + return makeSyntax(eval, pos, this); } } diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionSexp.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionSexp.java index f0fbdbe8..d885f3ba 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionSexp.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionSexp.java @@ -29,7 +29,7 @@ import dev.ionfusion.fusion.FusionSequence.BaseSequence; import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import dev.ionfusion.runtime.embed.TopLevel; import java.io.IOException; import java.util.LinkedList; @@ -538,20 +538,20 @@ BaseBool looseEquals(Evaluator eval, Object right) } @Override - SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxValue makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { - return SyntaxSexp.makeOriginal(eval, loc, this); + return SyntaxSexp.makeOriginal(eval, pos, this); } @Override SyntaxValue datumToSyntaxMaybe(Evaluator eval, SyntaxSymbol context, - SourceLocation loc) + ResourcePosition pos) throws FusionException { assert size(eval) == 0; - SyntaxValue stx = SyntaxSexp.make(eval, loc, this); + SyntaxValue stx = SyntaxSexp.make(eval, pos, this); return Syntax.applyContext(eval, context, stx); } @@ -936,11 +936,11 @@ else if (tail instanceof EmptySexp) */ private BaseSexp toPairOfSyntaxMaybe(Evaluator eval, SyntaxSymbol context, - SourceLocation loc) + ResourcePosition pos) throws FusionException { SyntaxValue head = - Syntax.datumToSyntaxMaybe(eval, myHead, context, loc); + Syntax.datumToSyntaxMaybe(eval, myHead, context, pos); if (head == null) return null; Object tail = myTail; @@ -948,11 +948,11 @@ private BaseSexp toPairOfSyntaxMaybe(Evaluator eval, { tail = ((ImmutablePair)tail).toPairOfSyntaxMaybe(eval, context, - loc); + pos); } else if (! isEmptySexp(eval, tail)) { - tail = Syntax.datumToSyntaxMaybe(eval, tail, context, loc); + tail = Syntax.datumToSyntaxMaybe(eval, tail, context, pos); } if (tail == null) return null; @@ -968,13 +968,13 @@ else if (! isEmptySexp(eval, tail)) @Override SyntaxValue datumToSyntaxMaybe(Evaluator eval, SyntaxSymbol context, - SourceLocation loc) + ResourcePosition pos) throws FusionException { - BaseSexp newPair = toPairOfSyntaxMaybe(eval, context, loc); + BaseSexp newPair = toPairOfSyntaxMaybe(eval, context, pos); if (newPair == null) return null; - SyntaxValue stx = SyntaxSexp.make(eval, loc, newPair); + SyntaxValue stx = SyntaxSexp.make(eval, pos, newPair); // TODO This should retain context, but not push it // down to the current children (which already have it). diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionString.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionString.java index 6e0022ff..52cdb520 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionString.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionString.java @@ -34,7 +34,7 @@ import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.fusion.FusionText.BaseText; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import dev.ionfusion.runtime.embed.TopLevel; import java.io.IOException; import java.nio.ByteBuffer; @@ -95,15 +95,15 @@ BaseBool tightEquals(Evaluator eval, Object right) } @Override - SyntaxString makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxString makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { - return SyntaxString.makeOriginal(eval, loc, this); + return SyntaxString.makeOriginal(eval, pos, this); } @Override - SyntaxString datumToSyntaxMaybe(Evaluator eval, SourceLocation loc) + SyntaxString datumToSyntaxMaybe(Evaluator eval, ResourcePosition pos) { - return SyntaxString.make(eval, loc, this); + return SyntaxString.make(eval, pos, this); } diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionStruct.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionStruct.java index 4542ecb9..9f69e086 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionStruct.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionStruct.java @@ -35,7 +35,7 @@ import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.runtime._private.util.hamt.MultiHashTrie; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import java.io.IOException; import java.util.Collections; import java.util.Iterator; @@ -583,18 +583,18 @@ public boolean isAnyNull() } @Override - SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxValue makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { - return SyntaxStruct.makeOriginal(eval, loc, this); + return SyntaxStruct.makeOriginal(eval, pos, this); } @Override SyntaxValue datumToSyntaxMaybe(Evaluator eval, SyntaxSymbol context, - SourceLocation loc) + ResourcePosition pos) throws FusionException { - SyntaxValue stx = SyntaxStruct.make(eval, loc, this); + SyntaxValue stx = SyntaxStruct.make(eval, pos, this); // TODO This should retain context, but not push it // down to the current children (which already have it). @@ -872,7 +872,7 @@ NonNullImmutableStruct transformFields(Evaluator eval, } @Override - SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxValue makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { throw new IllegalStateException("Cannot wrap mutable struct as syntax"); } @@ -891,11 +891,12 @@ private static final class VisitFailure @Override SyntaxValue datumToSyntaxMaybe(final Evaluator eval, final SyntaxSymbol context, - final SourceLocation loc) + final ResourcePosition pos) throws FusionException { StructFieldVisitor visitor = (name, value) -> { - SyntaxValue converted = Syntax.datumToSyntaxMaybe(eval, value, context, loc); + SyntaxValue converted = Syntax.datumToSyntaxMaybe(eval, value, context, + pos); if (converted == null) { // Hit something that's not syntax-able @@ -907,7 +908,7 @@ SyntaxValue datumToSyntaxMaybe(final Evaluator eval, try { ImmutableStruct datum = transformFields(eval, visitor); - return SyntaxStruct.make(eval, loc, datum); + return SyntaxStruct.make(eval, pos, datum); } catch (VisitFailure e) // This is crazy. { @@ -1171,9 +1172,9 @@ private NonNullImmutableStruct(BaseSymbol[] annotations) } @Override - SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxValue makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { - return SyntaxStruct.makeOriginal(eval, loc, this); + return SyntaxStruct.makeOriginal(eval, pos, this); } @Override diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionSymbol.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionSymbol.java index 1c71dd89..e406e05d 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionSymbol.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionSymbol.java @@ -3,9 +3,8 @@ package dev.ionfusion.fusion; -import static com.amazon.ion.util.IonTextUtils.symbolVariant; import static com.amazon.ion.util.IonTextUtils.SymbolVariant.OPERATOR; - +import static com.amazon.ion.util.IonTextUtils.symbolVariant; import static dev.ionfusion.fusion.FusionBool.falseBool; import static dev.ionfusion.fusion.FusionBool.makeBool; import static dev.ionfusion.fusion.FusionBool.trueBool; @@ -21,7 +20,7 @@ import dev.ionfusion.fusion.FusionBool.BaseBool; import dev.ionfusion.runtime._private.util.InternMap; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import dev.ionfusion.runtime.embed.TopLevel; import java.io.IOException; import java.util.Arrays; @@ -148,24 +147,24 @@ private boolean isKeyword() } @Override - SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxValue makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { if (isKeyword()) { - return SyntaxKeyword.makeOriginal(eval, loc, this); + return SyntaxKeyword.makeOriginal(eval, pos, this); } - return SyntaxSymbol.makeOriginal(loc, this); + return SyntaxSymbol.makeOriginal(pos, this); } @Override - SyntaxValue datumToSyntaxMaybe(Evaluator eval, SourceLocation loc) + SyntaxValue datumToSyntaxMaybe(Evaluator eval, ResourcePosition pos) throws FusionException { if (isKeyword()) { - return SyntaxKeyword.make(eval, loc, this); + return SyntaxKeyword.make(eval, pos, this); } - return SyntaxSymbol.make(loc, this); + return SyntaxSymbol.make(pos, this); } } @@ -204,18 +203,18 @@ BaseBool looseEquals(Evaluator eval, Object right) } @Override - SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxValue makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { // No need to check for keywords. - return SyntaxSymbol.makeOriginal(loc, this); + return SyntaxSymbol.makeOriginal(pos, this); } @Override - SyntaxValue datumToSyntaxMaybe(Evaluator eval, SourceLocation loc) + SyntaxValue datumToSyntaxMaybe(Evaluator eval, ResourcePosition pos) throws FusionException { // No need to check for keywords. - return SyntaxSymbol.make(loc, this); + return SyntaxSymbol.make(pos, this); } @Override diff --git a/runtime/src/main/java/dev/ionfusion/fusion/FusionTimestamp.java b/runtime/src/main/java/dev/ionfusion/fusion/FusionTimestamp.java index 633b4c5a..09a61108 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/FusionTimestamp.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/FusionTimestamp.java @@ -35,7 +35,7 @@ import dev.ionfusion.fusion.FusionNumber.BaseDecimal; import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; import dev.ionfusion.runtime.embed.TopLevel; import java.io.IOException; import java.math.BigDecimal; @@ -67,9 +67,9 @@ public BaseTimestamp annotate(Evaluator eval, BaseSymbol[] annotations) } @Override - SyntaxValue datumToSyntaxMaybe(Evaluator eval, SourceLocation loc) + SyntaxValue datumToSyntaxMaybe(Evaluator eval, ResourcePosition pos) { - return makeSyntax(eval, loc, this); + return makeSyntax(eval, pos, this); } } diff --git a/runtime/src/main/java/dev/ionfusion/fusion/Syntax.java b/runtime/src/main/java/dev/ionfusion/fusion/Syntax.java index ebb6d77c..514de19a 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/Syntax.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/Syntax.java @@ -7,7 +7,7 @@ import static dev.ionfusion.fusion.ArgumentException.makeArgumentError; import dev.ionfusion.runtime.base.FusionException; -import dev.ionfusion.runtime.base.SourceLocation; +import dev.ionfusion.runtime.base.ResourcePosition; /** * Utilities for working with {@link SyntaxValue}s. @@ -57,13 +57,12 @@ static SyntaxValue applyContext(Evaluator eval, static SyntaxValue datumToSyntaxMaybe(Evaluator eval, Object datum, SyntaxSymbol context, - SourceLocation location) + ResourcePosition pos) throws FusionException { if (datum instanceof BaseValue) { - return ((BaseValue) datum).datumToSyntaxMaybe(eval, context, - location); + return ((BaseValue) datum).datumToSyntaxMaybe(eval, context, pos); } return null; @@ -80,11 +79,11 @@ static SyntaxValue datumToSyntaxMaybe(Evaluator eval, static SyntaxValue datumToSyntax(Evaluator eval, Object datum, SyntaxSymbol context, - SourceLocation location, + ResourcePosition pos, String whosCalling) throws FusionException { - SyntaxValue stx = datumToSyntaxMaybe(eval, datum, context, location); + SyntaxValue stx = datumToSyntaxMaybe(eval, datum, context, pos); if (stx == null) { if (whosCalling == null) whosCalling = "datum_to_syntax"; @@ -111,9 +110,9 @@ static SyntaxValue datumToSyntax(Evaluator eval, static SyntaxValue datumToSyntax(Evaluator eval, Object datum, SyntaxSymbol context, - SourceLocation location) + ResourcePosition pos) throws FusionException { - return datumToSyntax(eval, datum, context, location, null); + return datumToSyntax(eval, datum, context, pos, null); } } diff --git a/runtime/src/main/java/dev/ionfusion/fusion/SyntaxValue.java b/runtime/src/main/java/dev/ionfusion/fusion/SyntaxValue.java index 39d16860..1d980d17 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/SyntaxValue.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/SyntaxValue.java @@ -323,7 +323,7 @@ abstract Object syntaxToDatum(Evaluator eval) @Override final SyntaxValue datumToSyntaxMaybe(Evaluator eval, SyntaxSymbol context, - SourceLocation loc) + ResourcePosition pos) throws FusionException { return this; @@ -331,7 +331,7 @@ final SyntaxValue datumToSyntaxMaybe(Evaluator eval, @Override - SyntaxValue makeOriginalSyntax(Evaluator eval, SourceLocation loc) + SyntaxValue makeOriginalSyntax(Evaluator eval, ResourcePosition pos) { throw new IllegalStateException("Cannot wrap syntax as syntax"); }