diff dmd/Loc.d @ 0:10317f0c89a5

Initial commit
author korDen
date Sat, 24 Oct 2009 08:42:06 +0400
parents
children e28b18c23469
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dmd/Loc.d	Sat Oct 24 08:42:06 2009 +0400
@@ -0,0 +1,43 @@
+module dmd.Loc;
+
+import dmd.Module;
+import dmd.OutBuffer;
+
+struct Loc
+{
+    string filename;
+    uint linnum;
+
+    this(int x)
+    {
+		linnum = x;
+		filename = null;
+    }
+
+    this(Module mod, uint linnum)
+	{
+		this.linnum = linnum;
+		this.filename = mod ? mod.srcfile.toChars() : null;
+	}
+
+    string toChars()
+	{
+		scope OutBuffer buf = new OutBuffer();
+
+		if (filename !is null) {
+			buf.printf("%s", filename);
+		}
+
+		if (linnum) {
+			buf.printf("(%d)", linnum);
+			buf.writeByte(0);
+		}
+
+		return buf.extractString();
+	}
+
+    bool equals(ref const(Loc) loc)
+	{
+		assert(false);
+	}
+}
\ No newline at end of file