bugfix: invalid indentation for 'else' is detected; optional indentation for 'if' expressions

This commit is contained in:
Araq 2012-01-13 14:59:58 +01:00
commit c682a1da2b
4 changed files with 36 additions and 3 deletions

View file

@ -503,12 +503,15 @@ proc parseIfExpr(p: var TParser): PNode =
var branch = newNodeP(nkElifExpr, p)
addSon(branch, parseExpr(p))
eat(p, tkColon)
optInd(p, branch)
addSon(branch, parseExpr(p))
optInd(p, branch)
addSon(result, branch)
if p.tok.tokType != tkElif: break
var branch = newNodeP(nkElseExpr, p)
eat(p, tkElse)
eat(p, tkColon)
optInd(p, branch)
addSon(branch, parseExpr(p))
addSon(result, branch)
@ -1368,7 +1371,9 @@ proc parseStmt(p: var TParser): PNode =
break
else:
var a = complexOrSimpleStmt(p)
if a.kind == nkEmpty: break
if a.kind == nkEmpty:
parMessage(p, errInvalidIndentation)
break
addSon(result, a)
popInd(p.lex)
else: