summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2012-11-22 08:31:40 +0100
committerAraq <rumpf_a@web.de>2012-11-22 08:31:40 +0100
commitf610d2d2217b757901929ed92725a1b682e1165c (patch)
treec3f684991eda6ba26613c44e190be3b0e20d382a /compiler
parent476f6fc8ee6b7a26c2ac04cb356837d35a6cb929 (diff)
downloadNim-f610d2d2217b757901929ed92725a1b682e1165c.tar.gz
'iterator' as type description
Diffstat (limited to 'compiler')
-rwxr-xr-xcompiler/parser.nim6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/parser.nim b/compiler/parser.nim
index 680279bcf..59f7934e0 100755
--- a/compiler/parser.nim
+++ b/compiler/parser.nim
@@ -731,7 +731,8 @@ proc parseProcExpr(p: var TParser, isExpr: bool): PNode =
 
 proc isExprStart(p: TParser): bool = 
   case p.tok.tokType
-  of tkSymbol, tkAccent, tkOpr, tkNot, tkNil, tkCast, tkIf, tkProc, tkBind, 
+  of tkSymbol, tkAccent, tkOpr, tkNot, tkNil, tkCast, tkIf, 
+     tkProc, tkIterator, tkBind, 
      tkParLe, tkBracketLe, tkCurlyLe, tkIntLit..tkCharLit, tkVar, tkRef, tkPtr, 
      tkTuple, tkType, tkWhen, tkCase:
     result = true
@@ -811,6 +812,9 @@ proc primary(p: var TParser, skipSuffix = false): PNode =
   
 proc parseTypeDesc(p: var TParser): PNode = 
   if p.tok.toktype == tkProc: result = parseProcExpr(p, false)
+  elif p.tok.toktype == tkIterator: 
+    result = parseProcExpr(p, false)
+    result.kind = nkIteratorTy
   else: result = parseExpr(p)
 
 proc parseExprStmt(p: var TParser): PNode =