You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.6 KiB
38 lines
1.6 KiB
/** |
|
* @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); |
|
} |
|
};
|
|
|