Merge pull request #2565 from nanoant/parser-consistency
Parser consistency
This commit is contained in:
commit
2f973c783c
1 changed files with 11 additions and 22 deletions
|
|
@ -389,7 +389,6 @@ proc exprList(p: var TParser, endTok: TTokType, result: PNode) =
|
||||||
if p.tok.tokType != tkComma: break
|
if p.tok.tokType != tkComma: break
|
||||||
getTok(p)
|
getTok(p)
|
||||||
optInd(p, a)
|
optInd(p, a)
|
||||||
eat(p, endTok)
|
|
||||||
|
|
||||||
proc dotExpr(p: var TParser, a: PNode): PNode =
|
proc dotExpr(p: var TParser, a: PNode): PNode =
|
||||||
#| dotExpr = expr '.' optInd symbol
|
#| dotExpr = expr '.' optInd symbol
|
||||||
|
|
@ -945,8 +944,7 @@ proc parseDoBlock(p: var TParser): PNode =
|
||||||
getTok(p)
|
getTok(p)
|
||||||
let params = parseParamList(p, retColon=false)
|
let params = parseParamList(p, retColon=false)
|
||||||
let pragmas = optPragmas(p)
|
let pragmas = optPragmas(p)
|
||||||
eat(p, tkColon)
|
colcom(p, result)
|
||||||
skipComment(p, result)
|
|
||||||
result = newProcNode(nkDo, info, parseStmt(p),
|
result = newProcNode(nkDo, info, parseStmt(p),
|
||||||
params = params,
|
params = params,
|
||||||
pragmas = pragmas)
|
pragmas = pragmas)
|
||||||
|
|
@ -1156,16 +1154,14 @@ proc parseMacroColon(p: var TParser, x: PNode): PNode =
|
||||||
getTok(p)
|
getTok(p)
|
||||||
optInd(p, b)
|
optInd(p, b)
|
||||||
addSon(b, parseExpr(p))
|
addSon(b, parseExpr(p))
|
||||||
eat(p, tkColon)
|
|
||||||
of tkExcept:
|
of tkExcept:
|
||||||
b = newNodeP(nkExceptBranch, p)
|
b = newNodeP(nkExceptBranch, p)
|
||||||
exprList(p, tkColon, b)
|
exprList(p, tkColon, b)
|
||||||
skipComment(p, b)
|
|
||||||
of tkElse:
|
of tkElse:
|
||||||
b = newNodeP(nkElse, p)
|
b = newNodeP(nkElse, p)
|
||||||
getTok(p)
|
getTok(p)
|
||||||
eat(p, tkColon)
|
|
||||||
else: break
|
else: break
|
||||||
|
eat(p, tkColon)
|
||||||
addSon(b, parseStmt(p))
|
addSon(b, parseStmt(p))
|
||||||
addSon(stmtList, b)
|
addSon(stmtList, b)
|
||||||
if b.kind == nkElse: break
|
if b.kind == nkElse: break
|
||||||
|
|
@ -1318,8 +1314,7 @@ proc parseIfOrWhen(p: var TParser, kind: TNodeKind): PNode =
|
||||||
var branch = newNodeP(nkElifBranch, p)
|
var branch = newNodeP(nkElifBranch, p)
|
||||||
optInd(p, branch)
|
optInd(p, branch)
|
||||||
addSon(branch, parseExpr(p))
|
addSon(branch, parseExpr(p))
|
||||||
eat(p, tkColon)
|
colcom(p, branch)
|
||||||
skipComment(p, branch)
|
|
||||||
addSon(branch, parseStmt(p))
|
addSon(branch, parseStmt(p))
|
||||||
skipComment(p, branch)
|
skipComment(p, branch)
|
||||||
addSon(result, branch)
|
addSon(result, branch)
|
||||||
|
|
@ -1327,8 +1322,7 @@ proc parseIfOrWhen(p: var TParser, kind: TNodeKind): PNode =
|
||||||
if p.tok.tokType == tkElse and sameOrNoInd(p):
|
if p.tok.tokType == tkElse and sameOrNoInd(p):
|
||||||
var branch = newNodeP(nkElse, p)
|
var branch = newNodeP(nkElse, p)
|
||||||
eat(p, tkElse)
|
eat(p, tkElse)
|
||||||
eat(p, tkColon)
|
colcom(p, branch)
|
||||||
skipComment(p, branch)
|
|
||||||
addSon(branch, parseStmt(p))
|
addSon(branch, parseStmt(p))
|
||||||
addSon(result, branch)
|
addSon(result, branch)
|
||||||
|
|
||||||
|
|
@ -1376,13 +1370,11 @@ proc parseCase(p: var TParser): PNode =
|
||||||
getTok(p)
|
getTok(p)
|
||||||
optInd(p, b)
|
optInd(p, b)
|
||||||
addSon(b, parseExpr(p))
|
addSon(b, parseExpr(p))
|
||||||
eat(p, tkColon)
|
|
||||||
of tkElse:
|
of tkElse:
|
||||||
b = newNodeP(nkElse, p)
|
b = newNodeP(nkElse, p)
|
||||||
getTok(p)
|
getTok(p)
|
||||||
eat(p, tkColon)
|
|
||||||
else: break
|
else: break
|
||||||
skipComment(p, b)
|
colcom(p, b)
|
||||||
addSon(b, parseStmt(p))
|
addSon(b, parseStmt(p))
|
||||||
addSon(result, b)
|
addSon(result, b)
|
||||||
if b.kind == nkElse: break
|
if b.kind == nkElse: break
|
||||||
|
|
@ -1399,8 +1391,7 @@ proc parseTry(p: var TParser; isExpr: bool): PNode =
|
||||||
#| (optInd 'finally' colcom stmt)?
|
#| (optInd 'finally' colcom stmt)?
|
||||||
result = newNodeP(nkTryStmt, p)
|
result = newNodeP(nkTryStmt, p)
|
||||||
getTok(p)
|
getTok(p)
|
||||||
eat(p, tkColon)
|
colcom(p, result)
|
||||||
skipComment(p, result)
|
|
||||||
addSon(result, parseStmt(p))
|
addSon(result, parseStmt(p))
|
||||||
var b: PNode = nil
|
var b: PNode = nil
|
||||||
while sameOrNoInd(p) or isExpr:
|
while sameOrNoInd(p) or isExpr:
|
||||||
|
|
@ -1410,10 +1401,9 @@ proc parseTry(p: var TParser; isExpr: bool): PNode =
|
||||||
exprList(p, tkColon, b)
|
exprList(p, tkColon, b)
|
||||||
of tkFinally:
|
of tkFinally:
|
||||||
b = newNodeP(nkFinally, p)
|
b = newNodeP(nkFinally, p)
|
||||||
getTokNoInd(p)
|
getTok(p)
|
||||||
eat(p, tkColon)
|
|
||||||
else: break
|
else: break
|
||||||
skipComment(p, b)
|
colcom(p, b)
|
||||||
addSon(b, parseStmt(p))
|
addSon(b, parseStmt(p))
|
||||||
addSon(result, b)
|
addSon(result, b)
|
||||||
if b.kind == nkFinally: break
|
if b.kind == nkFinally: break
|
||||||
|
|
@ -1422,7 +1412,7 @@ proc parseTry(p: var TParser; isExpr: bool): PNode =
|
||||||
proc parseExceptBlock(p: var TParser, kind: TNodeKind): PNode =
|
proc parseExceptBlock(p: var TParser, kind: TNodeKind): PNode =
|
||||||
#| exceptBlock = 'except' colcom stmt
|
#| exceptBlock = 'except' colcom stmt
|
||||||
result = newNodeP(kind, p)
|
result = newNodeP(kind, p)
|
||||||
getTokNoInd(p)
|
getTok(p)
|
||||||
colcom(p, result)
|
colcom(p, result)
|
||||||
addSon(result, parseStmt(p))
|
addSon(result, parseStmt(p))
|
||||||
|
|
||||||
|
|
@ -1455,7 +1445,7 @@ proc parseStaticOrDefer(p: var TParser; k: TNodeKind): PNode =
|
||||||
#| staticStmt = 'static' colcom stmt
|
#| staticStmt = 'static' colcom stmt
|
||||||
#| deferStmt = 'defer' colcom stmt
|
#| deferStmt = 'defer' colcom stmt
|
||||||
result = newNodeP(k, p)
|
result = newNodeP(k, p)
|
||||||
getTokNoInd(p)
|
getTok(p)
|
||||||
colcom(p, result)
|
colcom(p, result)
|
||||||
addSon(result, parseStmt(p))
|
addSon(result, parseStmt(p))
|
||||||
|
|
||||||
|
|
@ -1694,9 +1684,8 @@ proc parseObjectCase(p: var TParser): PNode =
|
||||||
of tkElse:
|
of tkElse:
|
||||||
b = newNodeP(nkElse, p)
|
b = newNodeP(nkElse, p)
|
||||||
getTok(p)
|
getTok(p)
|
||||||
eat(p, tkColon)
|
|
||||||
else: break
|
else: break
|
||||||
skipComment(p, b)
|
colcom(p, b)
|
||||||
var fields = parseObjectPart(p)
|
var fields = parseObjectPart(p)
|
||||||
if fields.kind == nkEmpty:
|
if fields.kind == nkEmpty:
|
||||||
parMessage(p, errIdentifierExpected, p.tok)
|
parMessage(p, errIdentifierExpected, p.tok)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue