package io.gitlab.jfronny.muscript.ast.literal; import io.gitlab.jfronny.muscript.ast.Expr; import io.gitlab.jfronny.muscript.compiler.*; import io.gitlab.jfronny.muscript.data.Scope; import io.gitlab.jfronny.muscript.ast.BoolExpr; import java.io.IOException; import java.util.stream.Stream; public final class BoolLiteral extends BoolExpr { public final boolean value; public BoolLiteral(CodeLocation location, boolean value) { super(Order.Primary, location); this.value = value; } @Override public Boolean get(Scope dataRoot) { return value; } @Override public BoolExpr optimize() { return this; } @Override public Stream> extractSideEffects() { return Stream.empty(); } @Override public void decompile(ExprWriter writer) throws IOException { writer.append(value ? "true" : "false"); } @Override public boolean equals(Object obj) { return obj instanceof BoolLiteral literal && value == literal.value; } }