/** * @fileoverview Define the cursor which iterates tokens only, with inflated range. * @author Toru Nagashima */ "use strict"; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const ForwardTokenCursor = require("./forward-token-cursor"); //------------------------------------------------------------------------------ // Exports //------------------------------------------------------------------------------ /** * The cursor which iterates tokens only, with inflated range. * This is for the backward compatibility of padding options. */ module.exports = class PaddedTokenCursor extends ForwardTokenCursor { /** * Initializes this cursor. * @param {Token[]} tokens - The array of tokens. * @param {Comment[]} comments - The array of comments. * @param {Object} indexMap - The map from locations to indices in `tokens`. * @param {number} startLoc - The start location of the iteration range. * @param {number} endLoc - The end location of the iteration range. * @param {number} beforeCount - The number of tokens this cursor iterates before start. * @param {number} afterCount - The number of tokens this cursor iterates after end. */ constructor(tokens, comments, indexMap, startLoc, endLoc, beforeCount, afterCount) { super(tokens, comments, indexMap, startLoc, endLoc); this.index = Math.max(0, this.index - beforeCount); this.indexEnd = Math.min(tokens.length - 1, this.indexEnd + afterCount); } };