Mercurial > projects > dil
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);