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.StringExprToken;
import php.runtime.Memory;
import php.runtime.memory.BinaryMemory;
import php.runtime.memory.StringMemory;
public class StringValueCompiler extends BaseExprCompiler<StringExprToken> {
public StringValueCompiler(ExpressionStmtCompiler exprCompiler) {
super(exprCompiler);
}
@Override
public void write(StringExprToken token, boolean returnValue) {
if (token.isBinary()) {
expr.writePushConstString(token.getValue());
expr.writeSysStaticCall(BinaryMemory.class, "valueOf", Memory.class, String.class);
} else
expr.writePushMemory(new StringMemory(token.getValue()));
}
}