code: @Nullable
    public static CSSDeclarationList readFromReader (@Nonnull @WillClose final Reader aReader,
                                                     @Nonnull final CSSReaderSettings aSettings)
    {
      ValueEnforcer.notNull (aReader, "Reader");
      ValueEnforcer.notNull (aSettings, "Settings");
  
      final ECSSVersion eVersion = aSettings.getCSSVersion ();
      try
      {
        final CSSCharStream aCharStream = new CSSCharStream (aReader);
  
        // Use the default CSS parse error handler if none is provided
        ICSSParseErrorHandler aRealParseErrorHandler = aSettings.getCustomErrorHandler ();
        if (aRealParseErrorHandler == null)
          aRealParseErrorHandler = getDefaultParseErrorHandler ();
  
        // Use the default CSS exception handler if none is provided
        ICSSParseExceptionCallback aRealParseExceptionHandler = aSettings.getCustomExceptionHandler ();
        if (aRealParseExceptionHandler == null)
          aRealParseExceptionHandler = getDefaultParseExceptionHandler ();
  
        final CSSNode aNode = _readStyleDeclaration (aCharStream,
                                                     eVersion,
                                                     aRealParseErrorHandler,
                                                     aRealParseExceptionHandler);
  
        // Failed to parse content as CSS?
        if (aNode == null)
          return null;
  
        // Get the interpret error handler
        ICSSInterpretErrorHandler aRealInterpretErrorHandler = aSettings.getInterpretErrorHandler ();
        if (aRealInterpretErrorHandler == null)
          aRealInterpretErrorHandler = getDefaultInterpretErrorHandler ();
  
        // Convert the AST to a domain object
        return CSSHandler.readDeclarationListFromNode (eVersion, aNode, aRealInterpretErrorHandler);
      }
      finally
      {
        StreamHelper.close (aReader);
      }
    }
docs: Read the CSS from the passed {@link Reader}.
  
  @param aReader
  The reader to use. Will be closed automatically after reading -
  independent of success or error. May not be <code>null</code>.
  @param aSettings
  The settings to be used for reading the CSS. May not be
  <code>null</code>.
  @return <code>null</code> if reading failed, the CSS declarations
  otherwise.
  @since 3.8.2