# HG changeset patch # User aziz # Date 1183717083 0 # Node ID 9f8b6c205ecc7e9af43ea089e348d1439813f52c # Parent 6de2e6e7d87204f5d335ffef08343269b115929e - Made fixes to the way the while loop in parsePostExpression() works. diff -r 6de2e6e7d872 -r 9f8b6c205ecc trunk/src/Parser.d --- 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()