diff trunk/src/dil/Declarations.d @ 364:1059295c2727

- Every command module has an execute method now. - Added module cmd.ImportGraph. - Renamed ModuleName to ModuleFQN. - Added module dil.Module. - Added member 'imports' to class Parser.
author aziz
date Fri, 31 Aug 2007 00:53:00 +0000
parents 511c14950cac
children ed67acc82268
line wrap: on
line diff
--- a/trunk/src/dil/Declarations.d	Thu Aug 30 12:02:04 2007 +0000
+++ b/trunk/src/dil/Declarations.d	Fri Aug 31 00:53:00 2007 +0000
@@ -58,30 +58,36 @@
   }
 }
 
-alias Token*[] ModuleName; // Identifier(.Identifier)*
+/// FQN = fully qualified name
+alias Token*[] ModuleFQN; // Identifier(.Identifier)*
 
 class ModuleDeclaration : Declaration
 {
-  ModuleName moduleName; // module name sits at end of array
-  this(ModuleName moduleName)
+  Token* moduleName;
+  Token*[] packages;
+  this(ModuleFQN moduleFQN)
   {
     super(false);
     mixin(set_kind);
-    this.moduleName = moduleName;
+    if (moduleFQN.length)
+    {
+      this.moduleName = moduleFQN[$-1];
+      this.packages = moduleFQN[0..$-1];
+    }
   }
 }
 
 class ImportDeclaration : Declaration
 {
-  ModuleName[] moduleNames;
+  ModuleFQN[] moduleFQNs;
   Token*[] moduleAliases;
   Token*[] bindNames;
   Token*[] bindAliases;
-  this(ModuleName[] moduleNames, Token*[] moduleAliases, Token*[] bindNames, Token*[] bindAliases)
+  this(ModuleFQN[] moduleFQNs, Token*[] moduleAliases, Token*[] bindNames, Token*[] bindAliases)
   {
     super(false);
     mixin(set_kind);
-    this.moduleNames = moduleNames;
+    this.moduleFQNs = moduleFQNs;
     this.moduleAliases = moduleAliases;
     this.bindNames = bindNames;
     this.bindAliases = bindAliases;