Spaces:
Runtime error
Runtime error
; | |
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; | |