added undef value

This commit is contained in:
gnembon committed 2022-02-01 01:23:45 +01:00
1 parent 36c1e8b321
commit 0f9d2f6d5b
3 files changed
+142 -1

No files matched your search

@@ -32,7 +32,7 @@ public class NullValue extends NumericValue // TODO check nonsingleton code
{
return new NullValue();
}
private NullValue() {super(0);}
protected NullValue() {super(0);}
@Override
public boolean equals(final Object o)
@@ -0,0 +1,140 @@
package carpet.script.value;
import carpet.script.exception.InternalExpressionException;
import com.google.gson.JsonElement;
import net.minecraft.nbt.Tag;
public class UndefValue extends NullValue {
public static final UndefValue UNDEF = new UndefValue();
private RuntimeException getError() {
return new InternalExpressionException("variable "+boundVariable+" was used before initialization under 'strict' app config");
}
@Override
public String getString()
{
throw getError();
}
@Override
public String getPrettyString()
{
return "undefined";
}
@Override
public boolean getBoolean()
{
throw getError();
}
@Override
public Value clone()
{
return new UndefValue();
}
@Override
public boolean equals(final Object o)
{
throw getError();
}
@Override
public Value slice(long fromDesc, Long toDesc) {
throw getError();
}
@Override
public NumericValue opposite() {
throw getError();
}
@Override
public int length() {
throw getError();
}
@Override
public int compareTo(Value o)
{
throw getError();
}
@Override
public Value in(Value value) {
throw getError();
}
@Override
public String getTypeString()
{
return "undef";
}
@Override
public int hashCode()
{
throw getError();
}
@Override
public Tag toTag(boolean force)
{
throw getError();
}
@Override
public Value split(Value delimiter) {
throw getError();
}
@Override
public JsonElement toJson()
{
throw getError();
}
@Override
public boolean isNull() {
throw getError();
}
@Override
public Value add(Value v) {
throw getError();
}
@Override
public Value subtract(Value v)
{
throw getError();
}
@Override
public Value multiply(Value v)
{
throw getError();
}
@Override
public Value divide(Value v)
{
throw getError();
}
@Override
public double readDoubleNumber()
{
throw getError();
}
@Override
public long readInteger()
{
throw getError();
}
}
@@ -21,6 +21,7 @@ public abstract class Value implements Comparable<Value>, Cloneable
public static NumericValue ONE = new NumericValue(1);
public static NullValue NULL = NullValue.NULL;
public static UndefValue UNDEF = UndefValue.UNDEF;
public String boundVariable;