diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2017-04-04 12:20:43 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-04-04 12:20:43 +0200 |
commit | e21ca54b11409764e495530136376f1b8f309fcb (patch) | |
tree | d7408f3fe93b38a873245dedadf8825178e5d971 /compiler | |
parent | 9aeccda2629ae0828fbcd4fd8aa50b3abc7e95b3 (diff) | |
download | Nim-e21ca54b11409764e495530136376f1b8f309fcb.tar.gz |
assignments support ': stmtList' like let/var do
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/parser.nim | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/parser.nim b/compiler/parser.nim index 46953de1e..e9dff25ac 100644 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -1208,7 +1208,7 @@ proc parseMacroColon(p: var TParser, x: PNode): PNode = proc parseExprStmt(p: var TParser): PNode = #| exprStmt = simpleExpr - #| (( '=' optInd expr ) + #| (( '=' optInd expr colonBody? ) #| / ( expr ^+ comma #| doBlocks #| / macroColon @@ -1219,6 +1219,12 @@ proc parseExprStmt(p: var TParser): PNode = getTok(p) optInd(p, result) var b = parseExpr(p) + if p.tok.tokType == tkColon and p.tok.indent < 0: + if b.kind != nkEmpty: + let call = makeCall(b) + call.add parseDoBlock(p, parLineInfo(p)) + parseDoBlocks(p, call) + b = call addSon(result, a) addSon(result, b) else: |