@Override
    protected Value evaluate(ExecutionContext executionContext) throws InterpretationException {

        Value valA = ((AbsValueNode) this.getChildAt(0)).evaluate(executionContext);
        Value valB = ((AbsValueNode) this.getChildAt(1)).evaluate(executionContext);

        if (valA.getType() == VariableType.BOOLEAN && valB.getType() == VariableType.BOOLEAN) {
            return new Value(((Boolean) valA.getValue()) && ((Boolean) valB.getValue()));
        } else {
            throw new InterpretationException(InterpretationErrorType.INVALID_ARGUMENT, line, null);
        }
    }