code: @Override
    protected boolean parseLine(String line) throws ParseException {
      boolean hasDependencies = false;
  
      // Quick check that will catch most cases. This is a performance win for teams with a lot of JS.
      if (line.contains("addDependency")) {
        depMatcher.reset(line);
        // See if the line looks like: goog.addDependency(...)
        if (depMatcher.matches()) {
          hasDependencies = true;
          String addDependencyParams = depMatcher.group(1);
          depArgsMatch.reset(addDependencyParams);
          // Extract the three parameters.
          if (!depArgsMatch.matches()) {
            // Although we could recover, we mark this as fatal since there should
            // not be problems with generated deps.js files.
            throw new ParseException("Invalid arguments to goog.addDependency(). Found: "
                + addDependencyParams, true);
          }
          // Parse the file path.
          String relativePath = parseJsString(depArgsMatch.group(1));
          String path = pathTranslator.apply(relativePath);
  
          List<String> provides = parseJsStringArray(depArgsMatch.group(2));
          Map<String, String> loadFlags = parseLoadFlags(depArgsMatch.group(4));
  
          // ES6 modules are require'd by path but do not provide them in the addDependency call.
          if ("es6".equals(loadFlags.get("module"))) {
            provides.add(relativePath);
          }
  
          DependencyInfo depInfo =
              SimpleDependencyInfo.builder(path, filePath)
                  .setProvides(provides)
                  .setRequires(
                      parseJsStringArray(depArgsMatch.group(3))
                          .stream()
                          .map(Require::parsedFromDeps)
                          .collect(toImmutableList()))
                  .setLoadFlags(loadFlags)
                  .build();
  
          if (logger.isLoggable(Level.FINE)) {
            logger.fine("Found dep: " + depInfo);
          }
          depInfos.add(depInfo);
        }
      }
  
      return !shortcutMode || hasDependencies ||
          CharMatcher.whitespace().matchesAllOf(line);
    }
docs: Extracts dependency information from lines that look like
  goog.addDependency('pathRelativeToClosure', ['provides'], ['requires']);
  Adds the dependencies to depInfos.
  
  @throws ParseException Thrown if the given line has a malformed
  goog.addDependency().