| /** | 
|  * @fileoverview Define the cursor which limits the number of tokens. | 
|  * @author Toru Nagashima | 
|  */ | 
| "use strict"; | 
|   | 
| //------------------------------------------------------------------------------ | 
| // 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; | 
|     } | 
| }; |