changeset 770:26d8ed59806d

Emitting SYMBOL macro with interesting parameters. Added DDoc macro file for dil.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Mon, 18 Feb 2008 02:47:15 +0100
parents 5e3ef1b2011c
children ef9bee5a2d61
files trunk/src/cmd/DDoc.d trunk/src/config.d trunk/src/macros_dil.ddoc
diffstat 3 files changed, 27 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/cmd/DDoc.d	Sun Feb 17 02:21:55 2008 +0100
+++ b/trunk/src/cmd/DDoc.d	Mon Feb 18 02:47:15 2008 +0100
@@ -446,9 +446,12 @@
       text ~= s;
   }
 
-  void SYMBOL(char[] name)
+  void SYMBOL(char[] name, Declaration d)
   {
-    write("$(DDOC_PSYMBOL ", name, ")");
+    auto loc = d.begin.getRealLocation();
+    auto str = Format("$(SYMBOL {}, {}, {}.d, {})", name, modul.getFQN(), modul.getFQNPath(), loc.lineNum);
+    write(str);
+    // write("$(DDOC_PSYMBOL ", name, ")");
   }
 
   uint prevDeclOffset;
@@ -497,7 +500,7 @@
       return d;
     DECL({
       write(d.begin.srcText, " ");
-      SYMBOL(d.name.str);
+      SYMBOL(d.name.str, d);
       writeTemplateParams();
       writeInheritanceList(d.bases);
     });
@@ -517,7 +520,7 @@
     DECL({
       write(d.begin.srcText, d.name ? " " : "");
       if (d.name)
-        SYMBOL(d.name.str);
+        SYMBOL(d.name.str, d);
       writeTemplateParams();
     });
     DESC({
@@ -539,7 +542,12 @@
   {
     if (!ddoc(d))
       return d;
-    DECL({ write(textSpan(d.begin, d.end)); }, false);
+    if (auto vd = d.decl.Is!(VariablesDeclaration))
+      foreach (name; vd.names)
+        DECL({ write("alias "); SYMBOL(name.str, d); });
+    else if (auto fd = d.decl.Is!(FunctionDeclaration))
+    {}
+    // DECL({ write(textSpan(d.begin, d.end)); }, false);
     DESC({ writeComment(); });
     return d;
   }
@@ -548,7 +556,12 @@
   {
     if (!ddoc(d))
       return d;
-    DECL({ write(textSpan(d.begin, d.end)); }, false);
+    if (auto vd = d.decl.Is!(VariablesDeclaration))
+      foreach (name; vd.names)
+        DECL({ write("typedef "); SYMBOL(name.str, d); });
+    else if (auto fd = d.decl.Is!(FunctionDeclaration))
+    {}
+    // DECL({ write(textSpan(d.begin, d.end)); }, false);
     DESC({ writeComment(); });
     return d;
   }
@@ -559,7 +572,7 @@
       return d;
     DECL({
       write("enum", d.name ? " " : "");
-      d.name && SYMBOL(d.name.str);
+      d.name && SYMBOL(d.name.str, d);
     });
     DESC({
       writeComment();
@@ -572,7 +585,7 @@
   {
     if (!ddoc(d))
       return d;
-    DECL({ SYMBOL(d.name.str); }, false);
+    DECL({ SYMBOL(d.name.str, d); }, false);
     DESC({ writeComment(); });
     return d;
   }
@@ -590,7 +603,7 @@
       return d;
     DECL({
       write("template ");
-      SYMBOL(d.name.str);
+      SYMBOL(d.name.str, d);
       writeTemplateParams();
     });
     DESC({
@@ -670,7 +683,7 @@
     auto type = textSpan(d.returnType.baseType.begin, d.returnType.end);
     DECL({
       write(escape(type), " ");
-      SYMBOL(d.name.str);
+      SYMBOL(d.name.str, d);
       writeTemplateParams();
       writeParams(d.params);
     });
@@ -704,7 +717,7 @@
     if (d.typeNode)
       type = textSpan(d.typeNode.baseType.begin, d.typeNode.end);
     foreach (name; d.names)
-      DECL({ write(escape(type), " "); SYMBOL(name.str); });
+      DECL({ write(escape(type), " "); SYMBOL(name.str, d); });
     DESC({ writeComment(); });
     return d;
   }
--- a/trunk/src/config.d	Sun Feb 17 02:21:55 2008 +0100
+++ b/trunk/src/config.d	Mon Feb 18 02:47:15 2008 +0100
@@ -10,7 +10,7 @@
 var import_paths = []; /// E.g.: ["src/", "import/"]
 
 /// DDoc macro file paths.
-var ddoc_files = []; /// E.g.: ["src/mymacros.ddoc", "othermacros.ddoc"]
+var ddoc_files = ["predefined.ddoc"]; /// E.g.: ["src/mymacros.ddoc", "othermacros.ddoc"]
 
 var xml_map = "xml_map.d";
 var html_map = "html_map.d";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/trunk/src/macros_dil.ddoc	Mon Feb 18 02:47:15 2008 +0100
@@ -0,0 +1,2 @@
+COPYRIGHT = Copyright © 2007-$(YEAR), Aziz Köksal. All rights reserved.
+SYMBOL = <a href="http://hg.sharesource.org/dil/file/tip/trunk/src/$3#L$4">$1</a>