code: private JsDocInfoParser createJsDocInfoParser(Comment node) {
      String comment = node.value;
      int lineno = lineno(node.location.start);
      int charno = charno(node.location.start);
      int position = node.location.start.offset;
  
      // The JsDocInfoParser expects the comment without the initial '/**'.
      int numOpeningChars = 3;
      JsDocInfoParser jsdocParser =
        new JsDocInfoParser(
            new JsDocTokenStream(comment.substring(numOpeningChars),
                                 lineno,
                                 charno + numOpeningChars),
            comment,
            position,
            templateNode,
            config,
            errorReporter);
      jsdocParser.setFileLevelJsDocBuilder(fileLevelJsDocBuilder);
      jsdocParser.setFileOverviewJSDocInfo(fileOverviewInfo);
      if (node.type == Comment.Type.IMPORTANT && node.value.length() > 0) {
        jsdocParser.parseImportantComment();
      } else {
        jsdocParser.parse();
      }
  
      return jsdocParser;
    }
docs: Creates a JsDocInfoParser and parses the JsDoc string.
  
  Used both for handling individual JSDoc comments and for handling
  file-level JSDoc comments (@fileoverview and @license).
  
  @param node The JsDoc Comment node to parse.
  @return A JsDocInfoParser. Will contain either fileoverview JsDoc, or
  normal JsDoc, or no JsDoc (if the method parses to the wrong level).