package io.gitlab.jfronny.muscript.ast.literal; import io.gitlab.jfronny.muscript.compiler.ExprWriter; import io.gitlab.jfronny.muscript.compiler.Order; import io.gitlab.jfronny.muscript.data.Scope; import io.gitlab.jfronny.muscript.data.dynamic.Dynamic; import io.gitlab.jfronny.muscript.ast.DynamicExpr; import java.io.IOException; public final class DynamicLiteral extends DynamicExpr { public final Dynamic value; public DynamicLiteral(int chStart, int chEnd, Dynamic value) { super(Order.Primary, chStart, chEnd); this.value = value; } @Override public Dynamic get(Scope dataRoot) { return value; } @Override public DynamicExpr optimize() { return this; } @Override public void decompile(ExprWriter writer) throws IOException { value.serialize(writer); } @Override public boolean equals(Object obj) { return obj instanceof DynamicLiteral literal && value.equals(literal.value); } }