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