java-commons/muscript/src/main/java/io/gitlab/jfronny/muscript/compiler/expr/DynamicExpr.java

40 lines
918 B
Java
Raw Normal View History

package io.gitlab.jfronny.muscript.compiler.expr;
import io.gitlab.jfronny.commons.data.dynamic.Dynamic;
import io.gitlab.jfronny.muscript.compiler.Type;
import io.gitlab.jfronny.muscript.compiler.expr.dynamic.unpack.*;
public abstract non-sealed class DynamicExpr extends Expr<Dynamic<?>> {
2022-06-13 13:31:54 +02:00
public DynamicExpr(int character) {
super(character);
}
@Override
public Type getResultType() {
return Type.Dynamic;
}
@Override
public abstract DynamicExpr optimize();
@Override
public BoolExpr asBoolExpr() {
2022-06-13 13:31:54 +02:00
return new BoolUnpack(character, this);
}
@Override
public StringExpr asStringExpr() {
2022-06-13 13:31:54 +02:00
return new StringUnpack(character, this);
}
@Override
public NumberExpr asNumberExpr() {
2022-06-13 13:31:54 +02:00
return new NumberUnpack(character, this);
}
@Override
public DynamicExpr asDynamicExpr() {
return this;
}
}