# HG changeset patch # User aziz # Date 1183666441 0 # Node ID 81cb24669ed3b2e093b44aae796588451601a757 # Parent c9544b7d5c7d3e0cae12cf0f65b140db2b02ea6a - Fixed parser of AssocArrayLiteralExpression. - Fixed parseArgumentList(). diff -r c9544b7d5c7d -r 81cb24669ed3 trunk/src/Parser.d --- a/trunk/src/Parser.d Thu Jul 05 19:52:00 2007 +0000 +++ b/trunk/src/Parser.d Thu Jul 05 20:14:01 2007 +0000 @@ -466,6 +466,8 @@ values ~= parseAssignExpression(); if (token.type != T.RBracket) + { + require(T.Comma); while (1) { keys ~= parseAssignExpression(); @@ -482,8 +484,9 @@ values ~= parseAssignExpression(); if (token.type == T.RBracket) break; - errorIfNot(T.Comma); + require(T.Comma); } + } assert(token.type == T.RBracket); nT(); e = new AssocArrayLiteralExpression(keys, values); @@ -530,15 +533,17 @@ T.Float, T.Double, T.Real, T.Ifloat, T.Idouble, T.Ireal, T.Cfloat, T.Cdouble, T.Creal: TOK type = token.type; + requireNext(T.Dot); string ident; - errorIfNot(T.Identifier); if (token.type == T.Identifier) { ident = token.srcText; nT(); } + else + errorIfNot(T.Identifier); e = new TypeDotIdExpression(type, ident); default: @@ -567,7 +572,7 @@ es ~= parseAssignExpression(); if (token.type == terminator) break; - errorIfNot(T.Comma); + require(T.Comma); } nT(); return es;