package org.develnext.jphp.core.tokenizer.token.expr.operator;
import php.runtime.common.Association;
import php.runtime.Memory;
import org.develnext.jphp.core.tokenizer.TokenType;
import org.develnext.jphp.core.tokenizer.TokenMeta;
import org.develnext.jphp.core.tokenizer.token.expr.OperatorExprToken;
import php.runtime.env.Environment;
import php.runtime.env.TraceInfo;
public class BooleanNotExprToken extends OperatorExprToken {
public BooleanNotExprToken(TokenMeta meta) {
super(meta, TokenType.T_J_BOOLEAN_NOT);
}
@Override
public Association getOnlyAssociation() {
return Association.RIGHT;
}
@Override
public int getPriority() {
return 30;
}
@Override
public boolean isBinary() {
return false;
}
@Override
public String getCode() {
return "not";
}
@Override
public Class<?> getResultClass() {
return Boolean.TYPE;
}
@Override
public boolean isSide() {
return false;
}
@Override
public Memory calc(Environment env, TraceInfo trace, Memory o1, Memory o2) {
return o1.not() ? Memory.TRUE : Memory.FALSE;
}
}