diff options
author | Araq <rumpf_a@web.de> | 2011-04-22 12:41:03 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2011-04-22 12:41:03 +0200 |
commit | 05fee773ec48b5b45cdb7469a6c8410b59fcb542 (patch) | |
tree | 63cabdee2f8fbffc18773604861c3088f5caf052 /compiler/parser.nim | |
parent | 8dda362fa67bcf75a24f2a60b7a124fdea319a64 (diff) | |
download | Nim-05fee773ec48b5b45cdb7469a6c8410b59fcb542.tar.gz |
parser got rid of cruft
Diffstat (limited to 'compiler/parser.nim')
-rwxr-xr-x | compiler/parser.nim | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/compiler/parser.nim b/compiler/parser.nim index c7e9cbac7..2289bb98f 100755 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -246,38 +246,15 @@ proc accExpr(p: var TParser): PNode = addSon(result, x) eat(p, tkAccent) -proc optExpr(p: var TParser): PNode = - # [expr] - if (p.tok.tokType != tkComma) and (p.tok.tokType != tkBracketRi) and - (p.tok.tokType != tkDotDot): - result = parseExpr(p) - else: - result = ast.emptyNode - -proc dotdotExpr(p: var TParser, first: PNode): PNode = - result = newNodeP(nkRange, p) - addSon(result, first) - getTok(p) - optInd(p, result) - addSon(result, optExpr(p)) - proc indexExpr(p: var TParser): PNode = - # indexExpr ::= '..' [expr] | expr ['=' expr] - if p.tok.tokType == tkDotDot: - result = dotdotExpr(p, ast.emptyNode) - else: - result = parseExpr(p) - if p.tok.tokType == tkEquals: - var a = result - result = newNodeP(nkExprEqExpr, p) - addSon(result, a) - getTok(p) - if p.tok.tokType == tkDotDot: - addSon(result, dotdotExpr(p, ast.emptyNode)) - else: - var b = parseExpr(p) - if p.tok.tokType == tkDotDot: b = dotdotExpr(p, b) - addSon(result, b) + # indexExpr ::= expr ['=' expr] + result = parseExpr(p) + if p.tok.tokType == tkEquals: + var a = result + result = newNodeP(nkExprEqExpr, p) + addSon(result, a) + getTok(p) + addSon(result, parseExpr(p)) proc indexExprList(p: var TParser, first: PNode): PNode = result = newNodeP(nkBracketExpr, p) @@ -994,7 +971,7 @@ proc parseFor(p: var TParser): PNode = a = parseSymbol(p) addSon(result, a) eat(p, tkIn) - addSon(result, exprColonEqExpr(p, nkRange, tkDotDot)) + addSon(result, parseExpr(p)) eat(p, tkColon) skipComment(p, result) addSon(result, parseStmt(p)) |