| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 'use strict';
- 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;
|