1 /**
2  * This file is part of DCD, a development tool for the D programming language.
3  * Copyright (C) 2014 Brian Schott
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 module common.constants;
20 
21 // The lists in this module should be kept sorted.
22 
23 /**
24  * Pragma arguments
25  */
26 immutable string[] pragmas = [
27 	"inline",
28 	"lib",
29 	"mangle",
30 	"msg",
31 	"startaddress"
32 ];
33 
34 /**
35  * Linkage types
36  */
37 immutable string[] linkages = [
38 	"C",
39 	"C++",
40 	"D",
41 	"Pascal",
42 	"System",
43 	"Windows"
44 ];
45 
46 /**
47  * Traits arguments
48  */
49 immutable string[] traits = [
50 	"allMembers",
51 	"classInstanceSize",
52 	"compiles",
53 	"derivedMembers",
54 	"getAliasThis",
55 	"getAttributes",
56 	"getFunctionAttributes",
57 	"getMember",
58 	"getOverloads",
59 	"getPointerBitmap",
60 	"getProtection",
61 	"getUnitTests",
62 	"getVirtualFunctions",
63 	"getVirtualIndex",
64 	"getVirtualMethods",
65 	"hasMember",
66 	"identifier",
67 	"isAbstractClass",
68 	"isAbstractFunction",
69 	"isArithmetic",
70 	"isAssociativeArray",
71 	"isFinalClass",
72 	"isFinalFunction",
73 	"isFloating",
74 	"isIntegral",
75 	"isLazy",
76 	"isNested",
77 	"isOut",
78 	"isOverrideFunction",
79 	"isPOD",
80 	"isRef",
81 	"isSame",
82 	"isScalar",
83 	"isStaticArray",
84 	"isStaticFunction",
85 	"isTemplate",
86 	"isUnsigned",
87 	"isVirtualFunction",
88 	"isVirtualMethod",
89 	"parent"
90 ];
91 
92 /**
93  * Scope conditions
94  */
95 immutable string[] scopes = [
96 	"exit",
97 	"failure",
98 	"success"
99 ];
100 
101 /**
102  * Compiler-defined values for version() conditions.
103  */
104 immutable string[] predefinedVersions = [
105 	"AArch64",
106 	"AIX",
107 	"all",
108 	"Alpha",
109 	"Alpha_HardFloat",
110 	"Alpha_SoftFloat",
111 	"Android",
112 	"ARM",
113 	"ARM_HardFloat",
114 	"ARM_SoftFloat",
115 	"ARM_SoftFP",
116 	"ARM_Thumb",
117 	"assert",
118 	"BigEndian",
119 	"BSD",
120 	"Cygwin",
121 	"D_Coverage",
122 	"D_Ddoc",
123 	"D_HardFloat",
124 	"DigitalMars",
125 	"D_InlineAsm_X86",
126 	"D_InlineAsm_X86_64",
127 	"D_LP64",
128 	"D_NoBoundsChecks",
129 	"D_PIC",
130 	"DragonFlyBSD",
131 	"D_SIMD",
132 	"D_SoftFloat",
133 	"D_Version2",
134 	"D_X32",
135 	"FreeBSD",
136 	"FreeStanding",
137 	"GNU",
138 	"Haiku",
139 	"HPPA",
140 	"HPPA64",
141 	"Hurd",
142 	"IA64",
143 	"LDC",
144 	"linux",
145 	"LittleEndian",
146 	"MIPS32",
147 	"MIPS64",
148 	"MIPS_EABI",
149 	"MIPS_HardFloat",
150 	"MIPS_N32",
151 	"MIPS_N64",
152 	"MIPS_O32",
153 	"MIPS_O64",
154 	"MIPS_SoftFloat",
155 	"NetBSD",
156 	"none",
157 	"OpenBSD",
158 	"OSX",
159 	"Posix",
160 	"PPC",
161 	"PPC64",
162 	"PPC_HardFloat",
163 	"PPC_SoftFloat",
164 	"S390",
165 	"S390X",
166 	"SDC",
167 	"SH",
168 	"SH64",
169 	"SkyOS",
170 	"Solaris",
171 	"SPARC",
172 	"SPARC64",
173 	"SPARC_HardFloat",
174 	"SPARC_SoftFloat",
175 	"SPARC_V8Plus",
176 	"SysV3",
177 	"SysV4",
178 	"unittest",
179 	"Win32",
180 	"Win64",
181 	"Windows",
182 	"X86",
183 	"X86_64",
184 ];