diff parser/Parser.d @ 21:0fb2d13dce37

Now working with gdc also (gdc use reverse paremeter validating on function calls)
author johnsen@johnsen-laptop
date Fri, 18 Apr 2008 21:39:17 +0200
parents 6282db07115f
children e331e4e816e4
line wrap: on
line diff
--- a/parser/Parser.d	Fri Apr 18 20:28:49 2008 +0200
+++ b/parser/Parser.d	Fri Apr 18 21:39:17 2008 +0200
@@ -7,6 +7,8 @@
        ast.Stmt,
        ast.Decl;
 
+import misc.Error;
+
 import tango.io.Stdout,
        Integer = tango.text.convert.Integer;
 
@@ -45,6 +47,7 @@
                 Identifier type = new Identifier(t);
 
                 Token iden = lexer.next;
+
                 switch(iden.type)
                 {
                     case Tok.Identifier:
@@ -170,7 +173,9 @@
 
         while(lexer.peek.type != Tok.CloseParentheses)
         {
-            funcArgs ~= new VarDecl(parseType, parseIdentifier);
+            auto t = parseType;
+            auto i = parseIdentifier;
+            funcArgs ~= new VarDecl(t, i);
 
             if(lexer.peek.type == Tok.Comma)
                 lexer.next;
@@ -191,7 +196,7 @@
                 return new Identifier(identifier);
                 break;
             default:
-                error("Unexpexted token in Identifier parsing");
+                throw new Error("Unexpexted token in Identifier parsing. Got "~identifier.getType, identifier.location);
         }
     }