summary refs log tree commit diff stats
path: root/compiler/parser.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2011-04-22 12:41:03 +0200
committerAraq <rumpf_a@web.de>2011-04-22 12:41:03 +0200
commit05fee773ec48b5b45cdb7469a6c8410b59fcb542 (patch)
tree63cabdee2f8fbffc18773604861c3088f5caf052 /compiler/parser.nim
parent8dda362fa67bcf75a24f2a60b7a124fdea319a64 (diff)
downloadNim-05fee773ec48b5b45cdb7469a6c8410b59fcb542.tar.gz
parser got rid of cruft
Diffstat (limited to 'compiler/parser.nim')
-rwxr-xr-xcompiler/parser.nim41
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))