code: function explodeSections( sourceStr ) {
  
          const sections = sourceStr.split( rComment );
          let prevSectionLineLength = getLinesLength( sections.shift() );
  
          return sections.reduce( function ( accum, section, index ) {
  
              // Group each comment with its context
              if ( index % 2 ) {
  
                  accum[ accum.length - 1 ].context = section.trimRight();
              }
              else {
                  accum.push({
                      line: prevSectionLineLength + 1,
                      source: section.trim()
                  });
              }
  
              prevSectionLineLength += getLinesLength( section );
  
              return accum;
  
          }, [] );
      }
docs: Splits a string into array of sections. Each section 3 properties:
  
  - line: starting line number
  - source: the comment source
  - context: source between the `commentEnd` token and next `commentBegin` token (or EOF).
  
  @param {String} sourceStr The source to parse.
  @returns {Array}