annotate trunk/src/dil/Identifier.d @ 391:33b566df6af4

Migrated project to Tango. Decremented the numbers of the format placeholders in the localized messages by one. Replaced all instances of writef/ln with Stdout. Added module common.d with string aliases and a global Layout!(char) instance. Replaced %s format specifiers with index placeholders in html/xml_tags. Changed member Information.arguments to string message. Copied std.metastring, std.uni and std.utf from Phobos.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Sat, 15 Sep 2007 17:12:26 +0200
parents a48a987f7515
children 52447db67938
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
274
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
1 /++
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
2 Author: Aziz Köksal
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
3 License: GPL3
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
4 +/
326
4a7359b88c11 - Added package 'dil' to module declarations.
aziz
parents: 325
diff changeset
5 module dil.Identifier;
327
a48a987f7515 - Added package dil to import declarations.
aziz
parents: 326
diff changeset
6 import dil.Token;
391
33b566df6af4 Migrated project to Tango.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 327
diff changeset
7 import common;
274
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
8
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
9 struct Identifier
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
10 {
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
11 TOK type;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
12 string str;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
13
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
14 static Identifier opCall(TOK type, string str)
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
15 {
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
16 Identifier i;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
17 i.type = type;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
18 i.str = str;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
19 return i;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
20 }
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
21
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
22 uint toHash()
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
23 {
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
24 uint hash;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
25 foreach(c; str) {
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
26 hash *= 9;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
27 hash += c;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
28 }
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
29 return hash;
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
30 }
dcce141c97f5 - Added module Identifier.
aziz
parents:
diff changeset
31 }