/**
  * Initializes a new SourceNodeRangeReader.
  *
  * @param sourceLocation the source location
  * @param bounds the start (inclusive) and end (exclusive) of the range to read
  * @param skipHandler an object that will determine characters to skip while reading a source
  *     node. Specify <code>null</code> to skip no characters.
  */
 public SourceNodeRangeReader(
     @Nonnull SourceLocation sourceLocation,
     @Nonnull SubstringBounds bounds,
     @CheckForNull SkipHandler skipHandler) {
   this(
       sourceLocation,
       Objects.requireNonNull(bounds, "bounds").getStart(),
       bounds.getEnd(),
       skipHandler);
 }
 /**
  * Initializes a new SourceNodeRangeReader.
  *
  * @param sourceLocation the source location
  * @param bounds the start (inclusive) and end (exclusive) of the range to read
  */
 public SourceNodeRangeReader(
     @Nonnull SourceLocation sourceLocation, @Nonnull SubstringBounds bounds) {
   this(
       sourceLocation, Objects.requireNonNull(bounds, "bounds").getStart(), bounds.getEnd(), null);
 }