# HG changeset patch # User aziz # Date 1184446565 0 # Node ID 3ce110cefbc58f1534fb29ac340cb28204591a6f # Parent d0712601fa4754b81e001a2d6941d4f5d89fe2b2 - Added code for parsing AliasDeclaration and TypedefDeclaration. diff -r d0712601fa47 -r 3ce110cefbc5 trunk/src/Declarations.d --- a/trunk/src/Declarations.d Sat Jul 14 19:47:01 2007 +0000 +++ b/trunk/src/Declarations.d Sat Jul 14 20:56:05 2007 +0000 @@ -53,6 +53,26 @@ } } +class AliasDeclaration : Declaration +{ + Declaration decl; + this(Declaration decl) + { + super(false); + this.decl = decl; + } +} + +class TypedefDeclaration : Declaration +{ + Declaration decl; + this(Declaration decl) + { + super(false); + this.decl = decl; + } +} + class EnumDeclaration : Declaration { string name; diff -r d0712601fa47 -r 3ce110cefbc5 trunk/src/Parser.d --- a/trunk/src/Parser.d Sat Jul 14 19:47:01 2007 +0000 +++ b/trunk/src/Parser.d Sat Jul 14 20:56:05 2007 +0000 @@ -112,6 +112,14 @@ case_AttributeSpecifier: decl = parseAttributeSpecifier(); break; + case T.Alias: + nT(); + decl = new AliasDeclaration(parseDeclarationDefinition()); + break; + case T.Typedef: + nT(); + decl = new TypedefDeclaration(parseDeclarationDefinition()); + break; case T.Static: Token t; lx.peek(t); @@ -1121,6 +1129,23 @@ Declaration d; switch (token.type) { + case T.Extern, + T.Align, +// T.Pragma, +// T.Deprecated, +// T.Private, +// T.Package, +// T.Protected, +// T.Public, +// T.Export, + //T.Static, + T.Final, +// T.Override, +// T.Abstract, + T.Const, + T.Auto/+, + T.Scope+/: + break; case T.Identifier: Token next; lx.peek(next);