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

40 lines
920 B
Java

package io.gitlab.jfronny.muscript.ast;
import io.gitlab.jfronny.muscript.compiler.*;
import io.gitlab.jfronny.muscript.data.dynamic.Dynamic;
import io.gitlab.jfronny.muscript.ast.dynamic.unpack.*;
public abstract non-sealed class DynamicExpr extends Expr<Dynamic> {
protected DynamicExpr(Order order, CodeLocation location) {
super(order, location);
}
@Override
public Type getResultType() {
return Type.Dynamic;
}
@Override
public abstract DynamicExpr optimize();
@Override
public BoolExpr asBoolExpr() {
return new BoolUnpack(location, this);
}
@Override
public StringExpr asStringExpr() {
return new StringUnpack(location, this);
}
@Override
public NumberExpr asNumberExpr() {
return new NumberUnpack(location, this);
}
@Override
public DynamicExpr asDynamicExpr() {
return this;
}
}