From 74acf05e0eea4fcf8911243d44cf8a4a6c3a6d99 Mon Sep 17 00:00:00 2001 From: Araq Date: Wed, 10 Oct 2012 00:59:09 +0200 Subject: [PATCH] bugfix: prevent endless loop in the parser for 'nimrod check' --- compiler/parser.nim | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/parser.nim b/compiler/parser.nim index 095252d59a..347c12b133 100755 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -1552,11 +1552,16 @@ proc parseAll(p: var TParser): PNode = while true: case p.tok.tokType of tkSad: getTok(p) - of tkDed, tkInd: parMessage(p, errInvalidIndentation) - of tkEof: break + of tkDed, tkInd: + parMessage(p, errInvalidIndentation) + getTok(p) + of tkEof: break else: var a = complexOrSimpleStmt(p) - if a.kind == nkEmpty: parMessage(p, errExprExpected, p.tok) + if a.kind == nkEmpty: + parMessage(p, errExprExpected, p.tok) + # bugfix: consume a token here to prevent an endless loop: + getTok(p) addSon(result, a) proc parseTopLevelStmt(p: var TParser): PNode =