package org.develnext.jphp.core.tokenizer.token.expr.operator; 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.Memory; import php.runtime.env.Environment; import php.runtime.env.TraceInfo; public class BooleanXorExprToken extends OperatorExprToken { public BooleanXorExprToken(TokenMeta meta) { super(meta, TokenType.T_J_BOOLEAN_XOR); } @Override public int getPriority() { return 180; } @Override public Memory calc(Environment env, TraceInfo trace, Memory o1, Memory o2) { return o1.xor(o2) ? Memory.TRUE : Memory.FALSE; } @Override public String getCode() { return "xor"; } @Override public boolean isSide() { return false; } @Override public Class<?> getResultClass() { return Boolean.TYPE; } @Override public boolean isNamedToken() { return true; } }