annotate src/dil/Enums.d @ 806:bcb74c9b895c

Moved out files in the trunk folder to the root.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Sun, 09 Mar 2008 00:12:19 +0100
parents trunk/src/dil/Enums.d@3b34f6a95a27
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
489
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
1 /++
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
2 Author: Aziz Köksal
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
3 License: GPL3
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
4 +/
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
5 module dil.Enums;
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
6
775
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
7 import common;
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
8
786
3b34f6a95a27 Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 775
diff changeset
9 /// Enumeration of storage classes.
489
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
10 enum StorageClass
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
11 {
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
12 None = 0,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
13 Abstract = 1,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
14 Auto = 1<<2,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
15 Const = 1<<3,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
16 Deprecated = 1<<4,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
17 Extern = 1<<5,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
18 Final = 1<<6,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
19 Invariant = 1<<7,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
20 Override = 1<<8,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
21 Scope = 1<<9,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
22 Static = 1<<10,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
23 Synchronized = 1<<11,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
24 In = 1<<12,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
25 Out = 1<<13,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
26 Ref = 1<<14,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
27 Lazy = 1<<15,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
28 Variadic = 1<<16,
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
29 }
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
30
786
3b34f6a95a27 Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 775
diff changeset
31 /// Enumeration of protection attributes.
489
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
32 enum Protection
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
33 {
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
34 None,
775
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
35 Private/+ = 1+/,
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
36 Protected/+ = 1<<1+/,
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
37 Package/+ = 1<<2+/,
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
38 Public/+ = 1<<3+/,
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
39 Export/+ = 1<<4+/
489
a7291d3ee9d7 Refactored classes that inherit from Node.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
40 }
495
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
41
786
3b34f6a95a27 Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 775
diff changeset
42 /// Enumeration of linkage types.
495
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
43 enum LinkageType
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
44 {
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
45 None,
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
46 C,
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
47 Cpp,
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
48 D,
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
49 Windows,
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
50 Pascal,
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
51 System
b60450804b6e Attributes are evaluated during the parsing phase now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 489
diff changeset
52 }
775
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
53
786
3b34f6a95a27 Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 775
diff changeset
54 /// Returns the string for prot.
775
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
55 string toString(Protection prot)
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
56 {
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
57 switch (prot)
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
58 { alias Protection P;
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
59 case P.None: return "";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
60 case P.Private: return "private";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
61 case P.Protected: return "protected";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
62 case P.Package: return "package";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
63 case P.Public: return "public";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
64 case P.Export: return "export";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
65 default:
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
66 assert(0);
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
67 }
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
68 }
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
69
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
70 /// Returns the string of a storage class. Only one bit may be set.
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
71 string toString(StorageClass stc)
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
72 {
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
73 switch (stc)
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
74 { alias StorageClass SC;
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
75 case SC.Abstract: return "abstract";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
76 case SC.Auto: return "auto";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
77 case SC.Const: return "const";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
78 case SC.Deprecated: return "deprecated";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
79 case SC.Extern: return "extern";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
80 case SC.Final: return "final";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
81 case SC.Invariant: return "invariant";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
82 case SC.Override: return "override";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
83 case SC.Scope: return "scope";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
84 case SC.Static: return "static";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
85 case SC.Synchronized: return "synchronized";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
86 case SC.In: return "in";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
87 case SC.Out: return "out";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
88 case SC.Ref: return "ref";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
89 case SC.Lazy: return "lazy";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
90 case SC.Variadic: return "variadic";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
91 default:
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
92 assert(0);
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
93 }
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
94 }
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
95
786
3b34f6a95a27 Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 775
diff changeset
96 /// Returns the strings for stc. Any number of bits may be set.
775
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
97 string[] toStrings(StorageClass stc)
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
98 {
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
99 string[] result;
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
100 for (auto i = StorageClass.max; i; i >>= 1)
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
101 if (stc & i)
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
102 result ~= toString(i);
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
103 return result;
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
104 }
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
105
786
3b34f6a95a27 Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 775
diff changeset
106 /// Returns the string for ltype.
775
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
107 string toString(LinkageType ltype)
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
108 {
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
109 switch (ltype)
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
110 { alias LinkageType LT;
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
111 case LT.None: return "";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
112 case LT.C: return "C";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
113 case LT.Cpp: return "Cpp";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
114 case LT.D: return "D";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
115 case LT.Windows: return "Windows";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
116 case LT.Pascal: return "Pascal";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
117 case LT.System: return "System";
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
118 default:
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
119 assert(0);
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
120 }
e76c9fdb83a3 DDocEmitter emits declaration attributes now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 495
diff changeset
121 }