docs: private static void parse(final ExpressionReader reader, 
                              final List<String> metric_queries,
                              final ExpressionTree root,
                              final TSQuery data_query) {
  
      int parameter_index = 0;
      reader.skipWhitespaces();
      if (reader.peek() != ')') {
        final String param = reader.readNextParameter();
        parseParam(param, metric_queries, root, data_query, parameter_index++);
      }
  
      while (!reader.isEOF()) {
        reader.skipWhitespaces();
        if (reader.peek() == ')') {
          return;
        } else if (reader.isNextSeq(",,")) {
          reader.skip(2); //swallow the ",," delimiter
          reader.skipWhitespaces();
          final String param = reader.readNextParameter();
          parseParam(param, metric_queries, root, data_query, parameter_index++);
        } else {
          throw new IllegalArgumentException("Invalid delimiter in parameter " +
                  "list at pos=" + reader.getMark() + ", expr="
                  + reader.toString());
        }
      }
    }