diff parser/Parser.d @ 185:7b274cfdc1dc

Added support for array literals. Codegen is broken, though.
author Anders Johnsen <skabet@gmail.com>
date Fri, 25 Jul 2008 12:18:05 +0200
parents 8ea749b7da91
children 75d0544ddc45
line wrap: on
line diff
--- a/parser/Parser.d	Fri Jul 25 11:04:00 2008 +0200
+++ b/parser/Parser.d	Fri Jul 25 12:18:05 2008 +0200
@@ -966,6 +966,23 @@
             return action.actOnNumericConstant(n);
         else if (n.type == Tok.String)
             return action.actOnStringExp(n);
+        else if (n.type == Tok.OpenBracket)
+        {
+            // Array literals
+            Exp[] exps;
+            exps ~= parseExpression();
+
+            while (isa(Tok.Comma))
+            {
+                next();
+
+                if (isa(Tok.CloseBracket))
+                    break;
+                exps ~= parseExpression();
+            }
+            scope e = require(Tok.CloseBracket);
+            return action.actOnArrayLiteralExpr(exps, n.location, e.location);
+        }
         else if (n.type == Tok.New)
         {
             Exp[] allocator_args;