Mercurial > projects > dil
changeset 93:9f8b6c205ecc
- Made fixes to the way the while loop in parsePostExpression() works.
author | aziz |
---|---|
date | Fri, 06 Jul 2007 10:18:03 +0000 |
parents | 6de2e6e7d872 |
children | 0fe650a7a8d1 |
files | trunk/src/Parser.d |
diffstat | 1 files changed, 8 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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()