Mercurial > projects > ddmd
view dmd/Global.d @ 175:94b6033c07f3
get rid of globals
malloc -> GC.malloc
author | korDen |
---|---|
date | Sun, 10 Oct 2010 03:48:06 +0400 |
parents | af724d3510d7 |
children | fa9a71a9f5a8 |
line wrap: on
line source
module dmd.Global; import dmd.common; import dmd.Array; import dmd.Param; import dmd.ClassDeclaration; import dmd.DsymbolTable; import dmd.StringTable; import dmd.OutBuffer; import dmd.Token; import dmd.Scope; import dmd.Module; import dmd.Id; import dmd.codegen.Util; import dmd.backend.Classsym; import core.stdc.time; import core.stdc.stdio; class Global { string mars_ext = "d"; string sym_ext = "d"; version (TARGET_WINDOS) { string obj_ext = "obj"; } else version (POSIX) { // TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS string obj_ext = "o"; } else version (TARGET_NET) { } else { static assert (false); } version (TARGET_WINDOS) { string lib_ext = "lib"; } else version (POSIX) { // TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS string lib_ext = "a"; } else version (TARGET_NET) { } else { static assert (false); } string doc_ext = "html"; // for Ddoc generated files string ddoc_ext = "ddoc"; // for Ddoc macro include files string json_ext = "json"; string hdr_ext = "di"; // for D 'header' import files string copyright= "Copyright (c) 1999-2009 by Digital Mars"; string written = "written by Walter Bright, ported to D by community"; ///version (TARGET_NET) { /// "\nMSIL back-end (alpha release) by Cristian L. Vlasceanu and associates."; ///} string[] path; // Array of char*'s which form the import lookup path string[] filePath; // Array of char*'s which form the file import lookup path int structalign = 8; string version_ = "v2.039"; Param params; uint errors; // number of errors reported so far uint gag; // !=0 means gag reporting of errors ClassDeclaration object; ClassDeclaration classinfo; // Used in FuncDeclaration.genCfunc() DsymbolTable st; // Used in Lexer.uniqueId() int num; // Used in Identifier.generateId() size_t i; // Used in Lexer StringTable stringtable; OutBuffer stringbuffer; Token* freelist; char date[11+1]; char time[8+1]; char timestamp[24+1]; // Used in Module Module rootModule; DsymbolTable modules; // symbol table of all modules Array amodules; // array of all modules Array deferred; // deferred Dsymbol's needing semantic() run on them uint dprogress; // progress resolving the deferred list int nested; Classsym* scc; ClassDeclaration moduleinfo; // Used in PowExp bool importMathChecked = false; // Used in Scope Scope scope_freelist; // Used in TemplateMixin int nest; // Used in Type StringTable type_stringtable; ClassDeclaration typeinfo; ClassDeclaration typeinfoclass; ClassDeclaration typeinfointerface; ClassDeclaration typeinfostruct; ClassDeclaration typeinfotypedef; ClassDeclaration typeinfopointer; ClassDeclaration typeinfoarray; ClassDeclaration typeinfostaticarray; ClassDeclaration typeinfoassociativearray; ClassDeclaration typeinfoenum; ClassDeclaration typeinfofunction; ClassDeclaration typeinfodelegate; ClassDeclaration typeinfotypelist; ClassDeclaration typeinfoconst; ClassDeclaration typeinfoinvariant; ClassDeclaration typeinfoshared; ClassDeclaration typeinfowild; this() { params.versionids = new Array(); params.imppath = new Array(); st = new DsymbolTable(); stringtable = new StringTable(); stringbuffer = new OutBuffer(); modules = new DsymbolTable(); amodules = new Array(); deferred = new Array(); type_stringtable = new StringTable(); init_time(); } void initClasssym() { scc = fake_classsym(Id.ClassInfo); } void init_time() { time_t tm; char* p; .time(&tm); p = ctime(&tm); assert(p); sprintf(date.ptr, "%.6s %.4s", p + 4, p + 20); sprintf(time.ptr, "%.8s", p + 11); sprintf(timestamp.ptr, "%.24s", p); } } __gshared Global global;