added undef value
This commit is contained in:
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();
|
return new NullValue();
|
||||||
}
|
}
|
||||||
private NullValue() {super(0);}
|
protected NullValue() {super(0);}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(final Object o)
|
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 NumericValue ONE = new NumericValue(1);
|
||||||
|
|
||||||
public static NullValue NULL = NullValue.NULL;
|
public static NullValue NULL = NullValue.NULL;
|
||||||
|
public static UndefValue UNDEF = UndefValue.UNDEF;
|
||||||
|
|
||||||
public String boundVariable;
|
public String boundVariable;
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user