# HG changeset patch # User aziz # Date 1184438822 0 # Node ID 5c6ebf9f60a90653e5cf9ea9b79a11bb0c01f576 # Parent c977b8a78507e00bd138b1c5b3993e4b19a0266d - Added code for parsing DeclarationStatement. diff -r c977b8a78507 -r 5c6ebf9f60a9 trunk/src/Parser.d --- 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); diff -r c977b8a78507 -r 5c6ebf9f60a9 trunk/src/Statements.d --- 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