changeset 233:c2b601dcd57d

- Added assert to parseDotListExpression(). - Fix: moved require(T.Dot) inside nested function in parseUnaryExpression().
author aziz
date Fri, 27 Jul 2007 14:49:02 +0000
parents 2a4e2c8ca094
children 5c1111dc8670
files trunk/src/Parser.d
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Parser.d	Fri Jul 27 12:12:05 2007 +0000
+++ b/trunk/src/Parser.d	Fri Jul 27 14:49:02 2007 +0000
@@ -1205,10 +1205,11 @@
             TemplateInstance
             NewExpression
     TemplateInstance:
-            Identifier !( TemplateArgumentList )
+            Identifier !( TemplateArguments )
   +/
   DotListExpression parseDotListExpression()
   {
+    assert(token.type == T.Identifier || token.type == T.Dot || token.type == T.Typeof);
     Expression[] identList;
     if (token.type == T.Dot)
     {
@@ -1250,6 +1251,7 @@
         goto LnewExpressionLoop;
       }
     }
+
   Lreturn:
     return new DotListExpression(identList);
   }
@@ -1267,7 +1269,7 @@
             Identifier
             TemplateInstance
     TemplateInstance:
-            Identifier !( TemplateArgumentList )
+            Identifier !( TemplateArguments )
   +/
   DotListType parseDotListType()
   {
@@ -1314,8 +1316,8 @@
             mixin ( AssignExpression ) ;
             mixin TemplateIdentifier ;
             mixin TemplateIdentifier MixinIdentifier ;
-            mixin TemplateIdentifier !( TemplateArgumentList ) ;
-            mixin TemplateIdentifier !( TemplateArgumentList ) MixinIdentifier ;
+            mixin TemplateIdentifier !( TemplateArguments ) ;
+            mixin TemplateIdentifier !( TemplateArguments ) MixinIdentifier ;
   */
   Declaration parseMixinDeclaration()
   {
@@ -2469,13 +2471,13 @@
         nT();
         auto type = parseType();
         require(T.RParen);
+        require(T.Dot);
         return type;
       }
       bool success;
       auto type = try_(parseType_(), success);
       if (success)
       {
-        require(T.Dot);
         string ident = requireIdentifier();
         e = new TypeDotIdExpression(type, ident);
         break;