changeset 188:5c6ebf9f60a9

- Added code for parsing DeclarationStatement.
author aziz
date Sat, 14 Jul 2007 18:47:02 +0000
parents c977b8a78507
children b1060d432e5e
files trunk/src/Parser.d trunk/src/Statements.d
diffstat 2 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Parser.d	Sat Jul 14 18:34:02 2007 +0000
+++ b/trunk/src/Parser.d	Sat Jul 14 18:47:02 2007 +0000
@@ -1118,6 +1118,7 @@
   Statement parseStatement()
   {
     Statement s;
+    Declaration d;
     switch (token.type)
     {
     case T.Identifier:
@@ -1214,6 +1215,21 @@
         goto case_Declaration;
       }
       assert(0);
+    case T.Enum:
+      d = parseEnumDeclaration();
+      goto case_DeclarationStatement;
+    case T.Class:
+      d = parseClassDeclaration();
+      goto case_DeclarationStatement;
+    case T.Interface:
+      d = parseInterfaceDeclaration();
+      goto case_DeclarationStatement;
+    case T.Struct, T.Union:
+      d = parseAggregateDeclaration();
+      goto case_DeclarationStatement;
+    case_DeclarationStatement:
+      s = new DeclarationStatement(d);
+      break;
     default:
       bool failed;
       auto expression = try_(parseExpression(), failed);
--- a/trunk/src/Statements.d	Sat Jul 14 18:34:02 2007 +0000
+++ b/trunk/src/Statements.d	Sat Jul 14 18:47:02 2007 +0000
@@ -53,7 +53,11 @@
 
 class DeclarationStatement : Statement
 {
-
+  Declaration declaration;
+  this(Declaration declaration)
+  {
+    this.declaration = declaration;
+  }
 }
 
 class IfStatement : Statement