/** | |
* @fileoverview Define the cursor which limits the number of tokens. | |
* @author Toru Nagashima | |
*/ | |
; | |
//------------------------------------------------------------------------------ | |
// Requirements | |
//------------------------------------------------------------------------------ | |
const DecorativeCursor = require("./decorative-cursor"); | |
//------------------------------------------------------------------------------ | |
// Exports | |
//------------------------------------------------------------------------------ | |
/** | |
* The decorative cursor which limits the number of tokens. | |
*/ | |
module.exports = class LimitCursor extends DecorativeCursor { | |
/** | |
* Initializes this cursor. | |
* @param {Cursor} cursor The cursor to be decorated. | |
* @param {number} count The count of tokens this cursor iterates. | |
*/ | |
constructor(cursor, count) { | |
super(cursor); | |
this.count = count; | |
} | |
/** @inheritdoc */ | |
moveNext() { | |
if (this.count > 0) { | |
this.count -= 1; | |
return super.moveNext(); | |
} | |
return false; | |
} | |
}; | |