changeset 173:d237b38b5858

Small changes
author korDen
date Sun, 10 Oct 2010 01:55:35 +0400
parents 5a9a88e919f9
children af724d3510d7
files dmd/ArrayLengthExp.d dmd/Global.d dmd/expression/ArrayLength.d dmd/expression/Util.d
diffstat 4 files changed, 54 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/dmd/ArrayLengthExp.d	Fri Oct 08 20:23:30 2010 +0400
+++ b/dmd/ArrayLengthExp.d	Sun Oct 10 01:55:35 2010 +0400
@@ -28,6 +28,7 @@
 import dmd.AddrExp;
 
 import dmd.expression.ArrayLength;
+import dmd.expression.Util;
 
 import dmd.backend.Util;
 import dmd.backend.OPER;
--- a/dmd/Global.d	Fri Oct 08 20:23:30 2010 +0400
+++ b/dmd/Global.d	Sun Oct 10 01:55:35 2010 +0400
@@ -22,7 +22,7 @@
 {
     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
@@ -49,7 +49,7 @@
 ///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;
@@ -58,28 +58,28 @@
     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
@@ -89,35 +89,37 @@
 	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();
+		params.imppath = 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;
@@ -132,4 +134,4 @@
 	}
 }
 
-Global global;
+__gshared Global global;
--- a/dmd/expression/ArrayLength.d	Fri Oct 08 20:23:30 2010 +0400
+++ b/dmd/expression/ArrayLength.d	Sun Oct 10 01:55:35 2010 +0400
@@ -48,26 +48,4 @@
 		e = EXP_CANT_INTERPRET;
 
     return e;
-}
-
-Expression opAssignToOp(Loc loc, TOK op, Expression e1, Expression e2)
-{   
-	Expression e;
-
-    switch (op)
-    {
-		case TOK.TOKaddass:   e = new AddExp(loc, e1, e2);	break;
-		case TOK.TOKminass:   e = new MinExp(loc, e1, e2);	break;
-		case TOK.TOKmulass:   e = new MulExp(loc, e1, e2);	break;
-		case TOK.TOKdivass:   e = new DivExp(loc, e1, e2);	break;
-		case TOK.TOKmodass:   e = new ModExp(loc, e1, e2);	break;
-		case TOK.TOKandass:   e = new AndExp(loc, e1, e2);	break;
-		case TOK.TOKorass:    e = new OrExp (loc, e1, e2);	break;
-		case TOK.TOKxorass:   e = new XorExp(loc, e1, e2);	break;
-		case TOK.TOKshlass:   e = new ShlExp(loc, e1, e2);	break;
-		case TOK.TOKshrass:   e = new ShrExp(loc, e1, e2);	break;
-		case TOK.TOKushrass:  e = new UshrExp(loc, e1, e2);	break;
-		default:	assert(0);
-    }
-    return e;
 }
\ No newline at end of file
--- a/dmd/expression/Util.d	Fri Oct 08 20:23:30 2010 +0400
+++ b/dmd/expression/Util.d	Sun Oct 10 01:55:35 2010 +0400
@@ -12,6 +12,17 @@
 import dmd.SymOffExp;
 import dmd.ExpInitializer;
 import dmd.Lexer;
+import dmd.AddExp;
+import dmd.MinExp;
+import dmd.MulExp;
+import dmd.DivExp;
+import dmd.ModExp;
+import dmd.AndExp;
+import dmd.OrExp;
+import dmd.ShlExp;
+import dmd.ShrExp;
+import dmd.UshrExp;
+import dmd.XorExp;
 import dmd.TypeSArray;
 import dmd.TypeArray;
 import dmd.VarDeclaration;
@@ -1845,4 +1856,26 @@
 	if (t.isimaginary())
 	    buf.writeByte('i');
     }
+}
+
+Expression opAssignToOp(Loc loc, TOK op, Expression e1, Expression e2)
+{   
+	Expression e;
+
+    switch (op)
+    {
+		case TOK.TOKaddass:   e = new AddExp(loc, e1, e2);	break;
+		case TOK.TOKminass:   e = new MinExp(loc, e1, e2);	break;
+		case TOK.TOKmulass:   e = new MulExp(loc, e1, e2);	break;
+		case TOK.TOKdivass:   e = new DivExp(loc, e1, e2);	break;
+		case TOK.TOKmodass:   e = new ModExp(loc, e1, e2);	break;
+		case TOK.TOKandass:   e = new AndExp(loc, e1, e2);	break;
+		case TOK.TOKorass:    e = new OrExp (loc, e1, e2);	break;
+		case TOK.TOKxorass:   e = new XorExp(loc, e1, e2);	break;
+		case TOK.TOKshlass:   e = new ShlExp(loc, e1, e2);	break;
+		case TOK.TOKshrass:   e = new ShrExp(loc, e1, e2);	break;
+		case TOK.TOKushrass:  e = new UshrExp(loc, e1, e2);	break;
+		default:	assert(0);
+    }
+    return e;
 }
\ No newline at end of file