changeset 271:68987c1c59b6

- Fixed parsing empty ArrayLiteralExpression. Needed to skip T.RBracket. - Simplified AssocArrayLiteralExpression parser.
author aziz
date Sat, 04 Aug 2007 19:49:01 +0000
parents 764eccdf619d
children 0bde32503976
files trunk/src/Parser.d
diffstat 1 files changed, 12 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Parser.d	Sat Aug 04 19:27:00 2007 +0000
+++ b/trunk/src/Parser.d	Sat Aug 04 19:49:01 2007 +0000
@@ -2963,6 +2963,8 @@
         else
           require(T.RBracket);
       }
+      else
+        nT();
 
       e = new ArrayLiteralExpression(values);
       break;
@@ -2972,20 +2974,17 @@
 
       keys ~= e;
       nT(); // Skip colon.
-      values ~= parseAssignExpression();
-
-      if (token.type != T.RBracket)
+      goto LenterLoop;
+
+      while (1)
       {
-        require(T.Comma);
-        while (1)
-        {
-          keys ~= parseAssignExpression();
-          require(T.Colon);
-          values ~= parseAssignExpression();
-          if (token.type != T.Comma)
-            break;
-          nT();
-        }
+        keys ~= parseAssignExpression();
+        require(T.Colon);
+      LenterLoop:
+        values ~= parseAssignExpression();
+        if (token.type != T.Comma)
+          break;
+        nT();
       }
       require(T.RBracket);
       e = new AssocArrayLiteralExpression(keys, values);