| /** |
| * @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); |
| } |
| }; |