Spaces:
Paused
Paused
| ; | |
| const types = require('../tokenizer/types.cjs'); | |
| function readSequence(recognizer) { | |
| const children = this.createList(); | |
| let space = false; | |
| const context = { | |
| recognizer | |
| }; | |
| while (!this.eof) { | |
| switch (this.tokenType) { | |
| case types.Comment: | |
| this.next(); | |
| continue; | |
| case types.WhiteSpace: | |
| space = true; | |
| this.next(); | |
| continue; | |
| } | |
| let child = recognizer.getNode.call(this, context); | |
| if (child === undefined) { | |
| break; | |
| } | |
| if (space) { | |
| if (recognizer.onWhiteSpace) { | |
| recognizer.onWhiteSpace.call(this, child, children, context); | |
| } | |
| space = false; | |
| } | |
| children.push(child); | |
| } | |
| if (space && recognizer.onWhiteSpace) { | |
| recognizer.onWhiteSpace.call(this, null, children, context); | |
| } | |
| return children; | |
| } | |
| exports.readSequence = readSequence; | |