Mercurial > projects > dil
changeset 191:3ce110cefbc5
- Added code for parsing AliasDeclaration and TypedefDeclaration.
author | aziz |
---|---|
date | Sat, 14 Jul 2007 20:56:05 +0000 |
parents | d0712601fa47 |
children | 5c898f80b436 |
files | trunk/src/Declarations.d trunk/src/Parser.d |
diffstat | 2 files changed, 45 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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;
--- 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);