diff --git a/src/vm/parser.ts b/src/vm/parser.ts index aacff69..1edaf23 100644 --- a/src/vm/parser.ts +++ b/src/vm/parser.ts @@ -70,14 +70,18 @@ export class Parser extends BehaviorSubject> { }) return } finally { - this.parseCandidate = undefined - this.inputForCandidate = [] + this.resetForNewParse() } } throw new InternalParseError('Encountered invalid token.') } + private resetForNewParse() { + this.parseCandidate = undefined + this.inputForCandidate = [] + } + private isKeyword(token: LexToken): token is (LexInput & {literal: undefined}) { return token.type === 'input' && !token.literal }