Mercurial > projects > dil
changeset 182:673b355ba0e9
- Implemented parseVolatileStatement().
author | aziz |
---|---|
date | Sat, 14 Jul 2007 14:38:01 +0000 |
parents | abfd51142477 |
children | c9df82f6f6be |
files | trunk/src/Parser.d trunk/src/Statements.d |
diffstat | 2 files changed, 22 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/trunk/src/Parser.d Sat Jul 14 14:10:01 2007 +0000 +++ b/trunk/src/Parser.d Sat Jul 14 14:38:01 2007 +0000 @@ -1188,6 +1188,9 @@ goto case_Declaration; s = parseScopeGuardStatement(); break; + case T.Volatile: + s = parseVolatileStatement(); + break; default: // TODO: issue error msg and return IllegalStatement. } @@ -1579,6 +1582,20 @@ return new ScopeGuardStatement(condition, scopeBody); } + Statement parseVolatileStatement() + { + assert(token.type == T.Volatile); + nT(); + Statement volatileBody; + if (token.type == T.Semicolon) + nT(); + else if (token.type == T.LBrace) + volatileBody = parseScopeStatement(); + else + volatileBody = parseNoScopeStatement(); + return new VolatileStatement(volatileBody); + } + /+++++++++++++++++++++++++++++ + Expression parsing methods + +++++++++++++++++++++++++++++/
--- a/trunk/src/Statements.d Sat Jul 14 14:10:01 2007 +0000 +++ b/trunk/src/Statements.d Sat Jul 14 14:38:01 2007 +0000 @@ -274,7 +274,11 @@ class VolatileStatement : Statement { - + Statement volatileBody; + this(Statement volatileBody) + { + this.volatileBody = volatileBody; + } } class AsmStatement : Statement