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