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);