40 lines
920 B
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;
|
|
}
|
|
}
|