diff options
author | cooldome <cdome@bk.ru> | 2019-04-17 10:55:41 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-04-17 11:55:41 +0200 |
commit | 7d8af25d5828e67f10c0f5a75abf9ee8fc02a9bb (patch) | |
tree | dd25210549bc8c64b17db2776fa75bde463ab58b /compiler | |
parent | 43832f8e575b472907579b74dca0797f8130baa8 (diff) | |
download | Nim-7d8af25d5828e67f10c0f5a75abf9ee8fc02a9bb.tar.gz |
revert parser stmtListExpr (#11007)
* Revert "Support for stmtListExpr in parser after major keywords. Scaled down version. (#10852)" This reverts commit 862897dc0f122e374c0e4d44770ffcd8825e51e3. * redo fix for #4035 * render stmtlistExpr using semicolon * Revert "render stmtlistExpr using semicolon" This reverts commit cafb78b8d5b125b5f6ba94248377a1433b3138cb. * revert test
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/parser.nim | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/compiler/parser.nim b/compiler/parser.nim index ec62dbf54..c154e5eb0 100644 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -238,7 +238,6 @@ proc newIdentNodeP(ident: PIdent, p: TParser): PNode = proc parseExpr(p: var TParser): PNode proc parseStmt(p: var TParser): PNode -proc parseStmtListExpr(p: var TParser): PNode proc parseTypeDesc(p: var TParser): PNode proc parseParamList(p: var TParser, retColon = true): PNode @@ -1482,12 +1481,12 @@ proc parseFromStmt(p: var TParser): PNode = #expectNl(p) proc parseReturnOrRaise(p: var TParser, kind: TNodeKind): PNode = - #| returnStmt = 'return' stmtListExpr? - #| raiseStmt = 'raise' stmtListExpr? - #| yieldStmt = 'yield' stmtListExpr? - #| discardStmt = 'discard' stmtListExpr? - #| breakStmt = 'break' stmtListExpr? - #| continueStmt = 'break' stmtListExpr? + #| returnStmt = 'return' optInd expr? + #| raiseStmt = 'raise' optInd expr? + #| yieldStmt = 'yield' optInd expr? + #| discardStmt = 'discard' optInd expr? + #| breakStmt = 'break' optInd expr? + #| continueStmt = 'break' optInd expr? result = newNodeP(kind, p) getTok(p) if p.tok.tokType == tkComment: @@ -1497,7 +1496,9 @@ proc parseReturnOrRaise(p: var TParser, kind: TNodeKind): PNode = # NL terminates: addSon(result, p.emptyNode) else: - addSon(result, parseStmtListExpr(p)) + var e = parseExpr(p) + e = postExprBlocks(p, e) + addSon(result, e) proc parseIfOrWhen(p: var TParser, kind: TNodeKind): PNode = #| condStmt = expr colcom stmt COMMENT? @@ -2252,17 +2253,6 @@ proc parseStmt(p: var TParser): PNode = getTok(p) if err and p.tok.tokType == tkEof: break -proc parseStmtListExpr(p: var TParser): PNode = - #| stmtListExpr = (IND{>} stmt) / expr - if p.tok.indent > p.currInd: - result = parseStmt(p) - result.kind = nkStmtListExpr - if result.len == 1: - result = result[0] - else: - result = parseExpr(p) - result = postExprBlocks(p, result) - proc parseAll(p: var TParser): PNode = ## Parses the rest of the input stream held by the parser into a PNode. result = newNodeP(nkStmtList, p) |