package org.develnext.jphp.core.compiler.jvm.statement.expr.value;
import org.develnext.jphp.core.compiler.jvm.statement.ExpressionStmtCompiler;
import org.develnext.jphp.core.compiler.jvm.statement.expr.BaseExprCompiler;
import org.develnext.jphp.core.tokenizer.token.expr.value.DieExprToken;
import php.runtime.Memory;
import php.runtime.env.Environment;
public class DieCompiler extends BaseExprCompiler<DieExprToken> {
public DieCompiler(ExpressionStmtCompiler exprCompiler) {
super(exprCompiler);
}
@Override
public void write(DieExprToken token, boolean returnValue) {
expr.writePushEnv();
if (token.getValue() == null)
expr.writePushConstNull();
else {
expr.writeExpression(token.getValue(), true, false, true);
expr.writePopBoxing(false);
}
expr.writeSysDynamicCall(Environment.class, "die", void.class, Memory.class);
if (returnValue)
expr.writePushConstBoolean(true);
}
}