Mercurial > projects > dil
diff trunk/src/Parser.d @ 165:797074d143d7
- Implemented parseDoWhileStatement().
author | aziz |
---|---|
date | Fri, 13 Jul 2007 23:02:01 +0000 |
parents | 8ec99326752b |
children | 56334292a29e |
line wrap: on
line diff
--- a/trunk/src/Parser.d Fri Jul 13 22:55:05 2007 +0000 +++ b/trunk/src/Parser.d Fri Jul 13 23:02:01 2007 +0000 @@ -1142,6 +1142,9 @@ case T.While: s = parseWhileStatement(); break; + case T.Do: + s = parseDoWhileStatement(); + break; default: // TODO: issue error msg and return IllegalStatement. } @@ -1227,6 +1230,18 @@ return new WhileStatement(condition, parseScopeStatement()); } + Statement parseDoWhileStatement() + { + assert(token.type == T.Do); + nT(); + auto doBody = parseScopeStatement(); + require(T.While); + require(T.RParen); + auto condition = parseExpression(); + require(T.LParen); + return new DoWhileStatement(condition, doBody); + } + /+++++++++++++++++++++++++++++ + Expression parsing methods + +++++++++++++++++++++++++++++/