12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /**
- * @fileoverview Define the cursor which iterates tokens only.
- * @author Toru Nagashima
- */
- "use strict";
- //------------------------------------------------------------------------------
- // Requirements
- //------------------------------------------------------------------------------
- const Cursor = require("./cursor");
- const utils = require("./utils");
- //------------------------------------------------------------------------------
- // Exports
- //------------------------------------------------------------------------------
- /**
- * The cursor which iterates tokens only.
- */
- module.exports = class ForwardTokenCursor extends Cursor {
- /**
- * 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.
- */
- constructor(tokens, comments, indexMap, startLoc, endLoc) {
- super();
- this.tokens = tokens;
- this.index = utils.getFirstIndex(tokens, indexMap, startLoc);
- this.indexEnd = utils.getLastIndex(tokens, indexMap, endLoc);
- }
- /** @inheritdoc */
- moveNext() {
- if (this.index <= this.indexEnd) {
- this.current = this.tokens[this.index];
- this.index += 1;
- return true;
- }
- return false;
- }
- /*
- *
- * Shorthand for performance.
- *
- */
- /** @inheritdoc */
- getOneToken() {
- return (this.index <= this.indexEnd) ? this.tokens[this.index] : null;
- }
- /** @inheritdoc */
- getAllTokens() {
- return this.tokens.slice(this.index, this.indexEnd + 1);
- }
- };
|