Mercurial > projects > ddmd
view dmd/Global.d @ 170:96c0fff6897d
more global state cleanup
author | korDen |
---|---|
date | Thu, 30 Sep 2010 14:09:50 +0400 |
parents | e7769d53e750 |
children | d237b38b5858 |
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; this() { params.versionids = new Array(); st = new DsymbolTable(); stringtable = new StringTable(); stringbuffer = new OutBuffer(); modules = new DsymbolTable(); amodules = new Array(); deferred = new Array(); 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); } } Global global;