changeset 180:d5a67aa578a8

- Implemented parseThrowStatement().
author aziz
date Sat, 14 Jul 2007 13:45:00 +0000
parents 507998c5c1ce
children abfd51142477
files trunk/src/Parser.d trunk/src/Statements.d
diffstat 2 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Parser.d	Sat Jul 14 13:41:01 2007 +0000
+++ b/trunk/src/Parser.d	Sat Jul 14 13:45:00 2007 +0000
@@ -1178,6 +1178,9 @@
     case T.Try:
       s = parseTryStatement();
       break;
+    case T.Throw:
+      s = parseThrowStatement();
+      break;
     default:
       // TODO: issue error msg and return IllegalStatement.
     }
@@ -1533,6 +1536,15 @@
     return new TryStatement(tryBody, catchBodies, finBody);
   }
 
+  Statement parseThrowStatement()
+  {
+    assert(token.type == T.Throw);
+    nT();
+    auto expr = parseExpression();
+    require(T.Semicolon);
+    return new ThrowStatement(expr);
+  }
+
   /+++++++++++++++++++++++++++++
   + Expression parsing methods +
   +++++++++++++++++++++++++++++/
--- a/trunk/src/Statements.d	Sat Jul 14 13:41:01 2007 +0000
+++ b/trunk/src/Statements.d	Sat Jul 14 13:45:00 2007 +0000
@@ -259,7 +259,11 @@
 
 class ThrowStatement : Statement
 {
-
+  Expression expr;
+  this(Expression expr)
+  {
+    this.expr = expr;
+  }
 }
 
 class VolatileStatement : Statement