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.
42 lines
1.1 KiB
42 lines
1.1 KiB
/** |
|
* @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(); |
|
} |
|
};
|
|
|