Mercurial > projects > dil
changeset 178:62718b29679e
- Implemented parseSynchronizedStatement().
author | aziz |
---|---|
date | Sat, 14 Jul 2007 11:14:04 +0000 |
parents | 504b1b2f7c93 |
children | 507998c5c1ce |
files | trunk/src/Parser.d trunk/src/Statements.d |
diffstat | 2 files changed, 25 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/trunk/src/Parser.d Sat Jul 14 11:10:03 2007 +0000 +++ b/trunk/src/Parser.d Sat Jul 14 11:14:04 2007 +0000 @@ -1172,6 +1172,9 @@ case T.With: s = parseWithStatement(); break; + case T.Synchronized: + s = parseSynchronizedStatement(); + break; default: // TODO: issue error msg and return IllegalStatement. } @@ -1473,6 +1476,21 @@ return new WithStatement(expr, parseScopeStatement()); } + Statement parseSynchronizedStatement() + { + assert(token.type == T.Synchronized); + nT(); + Expression expr; + + if (token.type == T.LParen) + { + nT(); + expr = parseExpression(); + require(T.RParen); + } + return new SynchronizedStatement(expr, parseScopeStatement()); + } + /+++++++++++++++++++++++++++++ + Expression parsing methods + +++++++++++++++++++++++++++++/
--- a/trunk/src/Statements.d Sat Jul 14 11:10:03 2007 +0000 +++ b/trunk/src/Statements.d Sat Jul 14 11:14:04 2007 +0000 @@ -210,7 +210,13 @@ class SynchronizedStatement : Statement { - + Expression expr; + Statement syncBody; + this(Expression expr, Statement withBody) + { + this.expr = expr; + this.syncBody = syncBody; + } } class TryStatement : Statement