changeset 177:504b1b2f7c93

- Implemented parseWithStatement().
author aziz
date Sat, 14 Jul 2007 11:10:03 +0000
parents 3071522c0cf0
children 62718b29679e
files trunk/src/Parser.d trunk/src/Statements.d
diffstat 2 files changed, 20 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Parser.d	Sat Jul 14 11:02:00 2007 +0000
+++ b/trunk/src/Parser.d	Sat Jul 14 11:10:03 2007 +0000
@@ -1169,6 +1169,9 @@
     case T.Goto:
       s = parseGotoStatement();
       break;
+    case T.With:
+      s = parseWithStatement();
+      break;
     default:
       // TODO: issue error msg and return IllegalStatement.
     }
@@ -1460,6 +1463,16 @@
     return new GotoStatement(ident, caseExpr);
   }
 
+  Statement parseWithStatement()
+  {
+    assert(token.type == T.With);
+    nT();
+    require(T.LParen);
+    auto expr = parseExpression();
+    require(T.RParen);
+    return new WithStatement(expr, parseScopeStatement());
+  }
+
   /+++++++++++++++++++++++++++++
   + Expression parsing methods +
   +++++++++++++++++++++++++++++/
--- a/trunk/src/Statements.d	Sat Jul 14 11:02:00 2007 +0000
+++ b/trunk/src/Statements.d	Sat Jul 14 11:10:03 2007 +0000
@@ -199,7 +199,13 @@
 
 class WithStatement : Statement
 {
-
+  Expression expr;
+  Statement withBody;
+  this(Expression expr, Statement withBody)
+  {
+    this.expr = expr;
+    this.withBody = withBody;
+  }
 }
 
 class SynchronizedStatement : Statement