documented optional indentation for 'case' statements/'case' objects
This commit is contained in:
parent
09499b3822
commit
48847b5616
5 changed files with 35 additions and 4 deletions
|
|
@ -1279,7 +1279,13 @@ proc parseObjectCase(p: var TParser): PNode =
|
|||
addSon(a, parseTypeDesc(p))
|
||||
addSon(a, ast.emptyNode)
|
||||
addSon(result, a)
|
||||
if p.tok.tokType == tkColon: getTok(p)
|
||||
skipComment(p, result)
|
||||
var wasIndented = false
|
||||
if p.tok.tokType == tkInd:
|
||||
pushInd(p.lex, p.tok.indent)
|
||||
getTok(p)
|
||||
wasIndented = true
|
||||
while true:
|
||||
if p.tok.tokType == tkSad: getTok(p)
|
||||
var b: PNode
|
||||
|
|
@ -1300,6 +1306,9 @@ proc parseObjectCase(p: var TParser): PNode =
|
|||
addSon(b, fields)
|
||||
addSon(result, b)
|
||||
if b.kind == nkElse: break
|
||||
if wasIndented:
|
||||
eat(p, tkDed)
|
||||
popInd(p.lex)
|
||||
|
||||
proc parseObjectPart(p: var TParser): PNode =
|
||||
case p.tok.tokType
|
||||
|
|
|
|||
|
|
@ -97,7 +97,8 @@ proc getOrdValue(n: PNode): biggestInt =
|
|||
case n.kind
|
||||
of nkCharLit..nkInt64Lit: result = n.intVal
|
||||
of nkNilLit: result = 0
|
||||
else:
|
||||
of nkHiddenStdConv: result = getOrdValue(n.sons[1])
|
||||
else:
|
||||
LocalError(n.info, errOrdinalTypeExpected)
|
||||
result = 0
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue