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.
|
|
var TYPE = require('../tokenizer').TYPE; var WHITESPACE = TYPE.WhiteSpace; var COMMENT = TYPE.Comment;
module.exports = function readSequence(recognizer) { var children = this.createList(); var child = null; var context = { recognizer: recognizer, space: null, ignoreWS: false, ignoreWSAfter: false };
this.scanner.skipSC();
while (!this.scanner.eof) { switch (this.scanner.tokenType) { case COMMENT: this.scanner.next(); continue;
case WHITESPACE: if (context.ignoreWS) { this.scanner.next(); } else { context.space = this.WhiteSpace(); } continue; }
child = recognizer.getNode.call(this, context);
if (child === undefined) { break; }
if (context.space !== null) { children.push(context.space); context.space = null; }
children.push(child);
if (context.ignoreWSAfter) { context.ignoreWSAfter = false; context.ignoreWS = true; } else { context.ignoreWS = false; } }
return children; };
|