Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions runtime/src/main/java/dev/ionfusion/fusion/SimpleSyntaxValue.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.amazon.ion.IonException;
import com.amazon.ion.IonWriter;
import dev.ionfusion.runtime.base.FusionException;
import dev.ionfusion.runtime.base.SourceLocation;
import dev.ionfusion.runtime.base.ResourcePosition;
import java.io.IOException;

/**
Expand All @@ -22,58 +22,58 @@ class SimpleSyntaxValue


/**
* @param loc may be null.
* @param pos can be null.
* @param properties must not be null.
* @param datum must not be null and must not be a {@link SyntaxValue}.
*/
SimpleSyntaxValue(SourceLocation loc, Object[] properties, BaseValue datum)
SimpleSyntaxValue(ResourcePosition pos, Object[] properties, BaseValue datum)
{
super(loc, properties);
super(pos, properties);
assert ! (datum instanceof SyntaxValue);
myDatum = datum;
}

/**
* @param loc may be null.
* @param pos may be null.
* @param datum must not be null and must not be a {@link SyntaxValue}.
*/
SimpleSyntaxValue(SourceLocation loc, BaseValue datum)
SimpleSyntaxValue(ResourcePosition pos, BaseValue datum)
{
this(loc, EMPTY_OBJECT_ARRAY, datum);
this(pos, EMPTY_OBJECT_ARRAY, datum);
}


/**
* @param loc may be null.
* @param pos may be null.
* @param datum must not be null and must not be a {@link SyntaxValue}.
*/
static SyntaxValue makeOriginalSyntax(Evaluator eval,
SourceLocation loc,
ResourcePosition pos,
BaseValue datum)
{
return new SimpleSyntaxValue(loc, ORIGINAL_STX_PROPS, datum);
return new SimpleSyntaxValue(pos, ORIGINAL_STX_PROPS, datum);
}

/**
* @param loc may be null.
* @param pos may be null.
* @param datum must not be null and must not be a {@link SyntaxValue}.
*/
static SyntaxValue makeSyntax(Evaluator eval,
SourceLocation loc,
ResourcePosition pos,
BaseValue datum)
{
return new SimpleSyntaxValue(loc, datum);
return new SimpleSyntaxValue(pos, datum);
}

/**
* @param loc may be null.
* @param pos may be null.
* @param datum must be a Fusion value but not a {@link SyntaxValue}.
*/
static SyntaxValue makeSyntax(Evaluator eval,
SourceLocation loc,
ResourcePosition pos,
Object datum)
{
return new SimpleSyntaxValue(loc, (BaseValue) datum);
return new SimpleSyntaxValue(pos, (BaseValue) datum);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import static dev.ionfusion.runtime._private.util.Empties.EMPTY_OBJECT_ARRAY;

import dev.ionfusion.runtime.base.FusionException;
import dev.ionfusion.runtime.base.SourceLocation;
import dev.ionfusion.runtime.base.ResourcePosition;

abstract class SyntaxContainer
extends SyntaxValue
Expand All @@ -20,15 +20,15 @@ abstract class SyntaxContainer
*/
SyntaxWraps myWraps;

SyntaxContainer(SourceLocation loc, Object[] properties, SyntaxWraps wraps)
SyntaxContainer(ResourcePosition pos, Object[] properties, SyntaxWraps wraps)
{
super(loc, properties);
super(pos, properties);
myWraps = wraps;
}

SyntaxContainer(SourceLocation loc)
SyntaxContainer(ResourcePosition pos)
{
super(loc, EMPTY_OBJECT_ARRAY);
super(pos, EMPTY_OBJECT_ARRAY);
myWraps = null;
}

Expand Down
34 changes: 16 additions & 18 deletions runtime/src/main/java/dev/ionfusion/fusion/SyntaxKeyword.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import com.amazon.ion.IonWriter;
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;

final class SyntaxKeyword
Expand All @@ -20,38 +20,36 @@ final class SyntaxKeyword
/**
* @param datum must not be null.
*/
private SyntaxKeyword(SyntaxWraps wraps,
SourceLocation loc,
Object[] properties,
BaseSymbol datum)
private SyntaxKeyword(SyntaxWraps wraps,
ResourcePosition pos,
Object[] properties,
BaseSymbol datum)
{
super(wraps, loc, properties, datum);
super(wraps, pos, properties, datum);
}

/**
* @param datum must not be null.
*/
private SyntaxKeyword(SourceLocation loc,
Object[] properties,
BaseSymbol datum)
private SyntaxKeyword(ResourcePosition pos,
Object[] properties,
BaseSymbol datum)
{
super(null, loc, properties, datum);
super(null, pos, properties, datum);
}


static SyntaxKeyword makeOriginal(Evaluator eval,
SourceLocation loc,
BaseSymbol symbol)
static SyntaxKeyword makeOriginal(Evaluator eval,
ResourcePosition pos,
BaseSymbol symbol)
{
return new SyntaxKeyword(loc, ORIGINAL_STX_PROPS, symbol);
return new SyntaxKeyword(pos, ORIGINAL_STX_PROPS, symbol);
}


static SyntaxKeyword make(Evaluator eval,
SourceLocation loc,
BaseSymbol symbol)
static SyntaxKeyword make(Evaluator eval, ResourcePosition pos, BaseSymbol symbol)
{
return new SyntaxKeyword(loc, EMPTY_OBJECT_ARRAY, symbol);
return new SyntaxKeyword(pos, EMPTY_OBJECT_ARRAY, symbol);
}


Expand Down
28 changes: 12 additions & 16 deletions runtime/src/main/java/dev/ionfusion/fusion/SyntaxList.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import dev.ionfusion.fusion.FusionList.BaseList;
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;

final class SyntaxList
Expand All @@ -32,23 +32,23 @@ final class SyntaxList
/**
* @param datum an immutable list of {@link SyntaxValue}s.
*/
private SyntaxList(SourceLocation loc,
Object[] properties,
SyntaxWraps wraps,
BaseList datum)
private SyntaxList(ResourcePosition pos,
Object[] properties,
SyntaxWraps wraps,
BaseList datum)
{
super(loc, properties, wraps);
super(pos, properties, wraps);
myImmutableList = datum;
}

/**
* @param datum an immutable list of {@link SyntaxValue}s.
*/
private SyntaxList(Evaluator eval,
SourceLocation loc,
ResourcePosition pos,
BaseList datum)
{
super(loc);
super(pos);
assert isImmutableList(eval, datum);
myImmutableList = datum;
}
Expand All @@ -64,21 +64,17 @@ Object visit(Visitor v) throws FusionException
/**
* @param datum an immutable list of {@link SyntaxValue}s.
*/
static SyntaxList makeOriginal(Evaluator eval,
SourceLocation loc,
BaseList datum)
static SyntaxList makeOriginal(Evaluator eval, ResourcePosition pos, BaseList datum)
{
return new SyntaxList(loc, ORIGINAL_STX_PROPS, null, datum);
return new SyntaxList(pos, ORIGINAL_STX_PROPS, null, datum);
}

/**
* @param datum an immutable list of {@link SyntaxValue}s.
*/
static SyntaxList make(Evaluator eval,
SourceLocation loc,
Object datum)
static SyntaxList make(Evaluator eval, ResourcePosition pos, Object datum)
{
return new SyntaxList(eval, loc, (BaseList) datum);
return new SyntaxList(eval, pos, (BaseList) datum);
}


Expand Down
10 changes: 5 additions & 5 deletions runtime/src/main/java/dev/ionfusion/fusion/SyntaxSequence.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@


import dev.ionfusion.runtime.base.FusionException;
import dev.ionfusion.runtime.base.SourceLocation;
import dev.ionfusion.runtime.base.ResourcePosition;

abstract class SyntaxSequence
extends SyntaxContainer
{
SyntaxSequence(SourceLocation loc, Object[] properties, SyntaxWraps wraps)
SyntaxSequence(ResourcePosition pos, Object[] properties, SyntaxWraps wraps)
{
super(loc, properties, wraps);
super(pos, properties, wraps);
}

SyntaxSequence(SourceLocation loc)
SyntaxSequence(ResourcePosition pos)
{
super(loc);
super(pos);
}


Expand Down
48 changes: 23 additions & 25 deletions runtime/src/main/java/dev/ionfusion/fusion/SyntaxSexp.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import dev.ionfusion.fusion.FusionSexp.ImmutablePair;
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.lang.reflect.Array;
import java.util.IdentityHashMap;
Expand All @@ -37,12 +37,12 @@ final class SyntaxSexp
/**
* @param sexp must not be null.
*/
private SyntaxSexp(SourceLocation loc,
Object[] properties,
SyntaxWraps wraps,
BaseSexp sexp)
private SyntaxSexp(ResourcePosition pos,
Object[] properties,
SyntaxWraps wraps,
BaseSexp sexp)
{
super(loc, properties, wraps);
super(pos, properties, wraps);
assert sexp != null;
mySexp = sexp;
}
Expand All @@ -51,9 +51,9 @@ private SyntaxSexp(SourceLocation loc,
/**
* @param sexp must not be null.
*/
private SyntaxSexp(SourceLocation loc, BaseSexp sexp)
private SyntaxSexp(ResourcePosition pos, BaseSexp sexp)
{
super(loc);
super(pos);
assert sexp != null;
mySexp = sexp;
}
Expand All @@ -66,62 +66,60 @@ Object visit(Visitor v) throws FusionException
}


static SyntaxSexp makeOriginal(Evaluator eval,
SourceLocation loc,
BaseSexp sexp)
static SyntaxSexp makeOriginal(Evaluator eval, ResourcePosition pos, BaseSexp sexp)
{
return new SyntaxSexp(loc, ORIGINAL_STX_PROPS, null, sexp);
return new SyntaxSexp(pos, ORIGINAL_STX_PROPS, null, sexp);
}

static SyntaxSexp make(Evaluator eval, SourceLocation loc, BaseSexp sexp)
static SyntaxSexp make(Evaluator eval, ResourcePosition pos, BaseSexp sexp)
{
return new SyntaxSexp(loc, sexp);
return new SyntaxSexp(pos, sexp);
}

/**
* Instance will be {@link #isAnyNull()} if children is null.
* Instance will be {@link #isAnyNull()} if {@code children} is null.
*
* @param anns must not be null.
* This method takes ownership of the array; the array and its elements
* must not be changed by calling code afterwards!
* must not be changed by calling code afterward!
* @param children the children of the new sexp.
* This method takes ownership of the array; the array and its elements
* must not be changed by calling code afterwards!
* must not be changed by calling code afterward!
*/
static SyntaxSexp make(Evaluator eval,
SourceLocation loc,
ResourcePosition pos,
BaseSymbol[] anns,
SyntaxValue[] children)
{
BaseSexp datum = (children == null
? nullSexp(eval, anns)
: immutableSexp(eval, anns, children));
return new SyntaxSexp(loc, datum);
return new SyntaxSexp(pos, datum);
}

/**
* Instance will be {@link #isAnyNull()} if children is null.
* Instance will be {@link #isAnyNull()} if {@code children} is null.

* @param children the children of the new sexp.
* This method takes ownership of the array; the array and its elements
* must not be changed by calling code afterwards!
* must not be changed by calling code afterward!
*/
static SyntaxSexp make(Evaluator eval, SyntaxValue... children)
{
return make(eval, null, BaseSymbol.EMPTY_ARRAY, children);
}

/**
* Instance will be {@link #isAnyNull()} if children is null.
* Instance will be {@link #isAnyNull()} if {@code children} is null.

* @param children the children of the new sexp.
* This method takes ownership of the array; the array and its elements
* must not be changed by calling code afterwards!
* must not be changed by calling code afterward!
*/
static SyntaxSexp make(Evaluator eval, SourceLocation loc,
static SyntaxSexp make(Evaluator eval, ResourcePosition pos,
SyntaxValue... children)
{
return make(eval, loc, BaseSymbol.EMPTY_ARRAY, children);
return make(eval, pos, BaseSymbol.EMPTY_ARRAY, children);
}


Expand Down
Loading
Loading