changeset 187:c977b8a78507

- Added code for parsing ExpressionStatement.
author aziz
date Sat, 14 Jul 2007 18:34:02 +0000
parents d4292a5a7b8b
children 5c6ebf9f60a9
files trunk/src/Parser.d trunk/src/Statements.d
diffstat 2 files changed, 17 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Parser.d	Sat Jul 14 17:24:05 2007 +0000
+++ b/trunk/src/Parser.d	Sat Jul 14 18:34:02 2007 +0000
@@ -1215,7 +1215,17 @@
       }
       assert(0);
     default:
-      // TODO: issue error msg and return IllegalStatement.
+      bool failed;
+      auto expression = try_(parseExpression(), failed);
+      if (!failed)
+      {
+        require(T.Semicolon);
+        s = new ExpressionStatement(expression);
+      }
+      else
+      {
+        // TODO: issue error msg and return IllegalStatement.
+      }
     }
     return s;
   }
--- a/trunk/src/Statements.d	Sat Jul 14 17:24:05 2007 +0000
+++ b/trunk/src/Statements.d	Sat Jul 14 18:34:02 2007 +0000
@@ -44,7 +44,11 @@
 
 class ExpressionStatement : Statement
 {
-
+  Expression expression;
+  this(Expression expression)
+  {
+    this.expression = expression;
+  }
 }
 
 class DeclarationStatement : Statement
@@ -329,4 +333,4 @@
     this.condition = condition;
     this.message = message;
   }
-}
\ No newline at end of file
+}