Changeset 74

Show
Ignore:
Timestamp:
08/07/06 11:45:09 (2 years ago)
Author:
Gregor
Message:

bcd.gen/bcd/gen/bcdgen.d: Fixed constructor reflection bug, added -b option.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/bcd.gen/bcd/gen/bcdgen.d

    r71 r74  
    6060char[] cout; 
    6161private { 
     62/** The base of the D namespace */ 
     63char[] dNamespaceBase; 
    6264/** The class currently being processed */ 
    6365char[] curClass; 
     
    126128        writefln("    the count."); 
    127129        writefln("  -N<symbol to ignore>"); 
     130        writefln("  -b"); 
     131        writefln("    Do not prepend 'bcd.' to the D namespace."); 
    128132        return 1; 
    129133    } 
     
    133137     
    134138    // set the globals 
     139    dNamespaceBase = "bcd."; 
    135140    curFile = args[1]; 
    136141    baseDir = getDirName(args[1]); 
     
    190195            outputReflections = true; 
    191196 
     197        } else if (args[i] == "-b") { 
     198            dNamespaceBase = ""; 
     199 
    192200        } else { 
    193201            writefln("Argument %s not recognized.", args[i]); 
     
    202210    // some buffers 
    203211    dhead = genhead; // the D header (extern (C)'s) 
    204     dhead ~= "module bcd." ~ dNamespace ~ "." ~ shortName ~ ";\n"; 
     212    dhead ~= "module " ~ dNamespaceBase ~ dNamespace ~ "." ~ shortName ~ ";\n"; 
    205213    if (!outputC) dhead ~= "import bcd.bind;\n"; 
    206214    dhead ~= forcedImport; 
     
    606614             
    607615            if (baseName != shortName) 
    608                 dhead ~= "import bcd." ~ dNamespace ~ "." ~ safeName(baseName) ~ ";\n"; 
     616                dhead ~= "import " ~ dNamespaceBase ~ dNamespace ~ "." ~ safeName(baseName) ~ ";\n"; 
    609617        } 
    610618         
     
    620628                 
    621629                if (baseName != shortName) 
    622                     dhead ~= "import bcd." ~ reqDependencies[req] ~ "." ~ safeName(baseName) ~ ";\n"; 
     630                    dhead ~= "import " ~ dNamespaceBase ~ reqDependencies[req] ~ "." ~ safeName(baseName) ~ ";\n"; 
    623631            } 
    624632        } 
     
    13941402     
    13951403    // make sure it's not already defined (particularly problematic for overrides that aren't overrides in D) 
    1396     static bool[char[]] handledCtors; 
    1397     char[] fid = curClass ~ "(" ~ Deargs ~ ")"
    1398     if (fid in handledCtors) return
    1399     handledCtors[fid] = true
    1400  
    1401     if (reflection) { 
     1404    if (!reflection) { 
     1405        static bool[char[]] handledCtors
     1406        char[] fid = curClass ~ "(" ~ Deargs ~ ")"
     1407        if (fid in handledCtors) return
     1408        handledCtors[fid] = true; 
     1409    } else if (reflection) { 
    14021410        // make sure it's not already reflected 
    14031411        char[] sfid = name ~ "(" ~ Deargs ~ ")";