changeset 93:9f8b6c205ecc

- Made fixes to the way the while loop in parsePostExpression() works.
author aziz
date Fri, 06 Jul 2007 10:18:03 +0000
parents 6de2e6e7d872
children 0fe650a7a8d1
files trunk/src/Parser.d
diffstat 1 files changed, 8 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Parser.d	Fri Jul 06 10:02:00 2007 +0000
+++ b/trunk/src/Parser.d	Fri Jul 06 10:18:03 2007 +0000
@@ -332,32 +332,29 @@
         nT();
         if (token.type == T.Identifier)
         {
-          nT();
           e = new DotIdExpression(e);
+          break;
         }
         else if (token.type == T.New)
           e = parseNewExpression(e);
         else
           errorIfNot(T.Identifier);
-        break;
+        continue;
       case T.PlusPlus:
-        nT();
         e = new PostIncrExpression(e);
         break;
       case T.MinusMinus:
-        nT();
         e = new PostDecrExpression(e);
         break;
       case T.LParen:
         e = new CallExpression(e, parseArgumentList(T.LParen));
-        break;
+        continue;
       case T.LBracket:
         // parse Slice- and IndexExpression
         nT();
         if (token.type == T.RBracket)
         {
           e = new SliceExpression(e, null, null);
-          nT();
           break;
         }
 
@@ -368,7 +365,7 @@
           nT();
           e = new SliceExpression(e, es[0], parseAssignExpression());
           require(T.RBracket);
-          break;
+          continue;
         }
         else if (token.type == T.Comma)
         {
@@ -378,13 +375,13 @@
           require(T.RBracket);
 
         e = new IndexExpression(e, es);
-        break;
+        continue;
       default:
-        break;
+        return e;
       }
-      break;
+      nT();
     }
-    return e;
+    assert(0);
   }
 
   Expression parsePrimaryExpression()