annotate dmdscript_tango/identifier.d @ 3:8363a4bf6a8f

rename package: dmdscript to dmdscript_tango
author saaadel
date Sun, 24 Jan 2010 18:33:05 +0200
parents 55c2951c07be
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
2 /* Digital Mars DMDScript source code.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
3 * Copyright (c) 2000-2002 by Chromium Communications
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
4 * D version Copyright (c) 2004-2009 by Digital Mars
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
5 * All Rights Reserved
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
6 * written by Walter Bright
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
7 * http://www.digitalmars.com
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
8 * Use at your own risk. There is no warranty, express or implied.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
9 * License for redistribution is by the GNU General Public License in gpl.txt.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
10 *
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
11 * A binary, non-exclusive license for commercial use can be
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
12 * purchased from www.digitalmars.com/dscript/buy.html.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
13 *
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
14 * DMDScript is implemented in the D Programming Language,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
15 * www.digitalmars.com/d/
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
16 *
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
17 * For a C++ implementation of DMDScript, including COM support,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
18 * see www.digitalmars.com/dscript/cppscript.html.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
19 */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
20
3
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
21 module dmdscript_tango.identifier;
0
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
22
3
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
23 import dmdscript_tango.script;
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
24 import dmdscript_tango.value;
0
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
25
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
26 /* An Identifier is a special case of a Value - it is a V_STRING
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
27 * and has the hash value computed and set.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
28 */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
29
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
30 struct Identifier
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
31 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
32 Value value;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
33
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
34 tchar[] toString()
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
35 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
36 return value.string;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
37 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
38
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
39 int opEquals(Identifier *id)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
40 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
41 return this is id || value.string == id.value.string;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
42 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
43
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
44 static Identifier* build(tchar[] s)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
45 { Identifier* id = new Identifier;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
46 id.value.putVstring(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
47 id.value.toHash();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
48 return id;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
49 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
50
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
51 uint toHash()
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
52 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
53 return value.hash;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
54 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
55 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
56
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
57