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.ShellExecExprToken;
import org.develnext.jphp.core.tokenizer.token.expr.value.StringBuilderExprToken;
import php.runtime.env.Environment;
public class ShellExecValueCompiler extends BaseExprCompiler<ShellExecExprToken> {
public ShellExecValueCompiler(ExpressionStmtCompiler exprCompiler) {
super(exprCompiler);
}
@Override
public void write(ShellExecExprToken token, boolean returnValue) {
expr.writePushEnv();
expr.getCompiler(StringBuilderExprToken.class).write(token);
expr.writePopString();
expr.writeSysDynamicCall(Environment.class, "__shellExecute", String.class, String.class);
if (!returnValue)
expr.writePopAll(1);
}
}