Mercurial > projects > dil
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