@@ -63,13 +63,258 @@ class Ptrdiff_t extends Type {
6363 override string getAPrimaryQlClass ( ) { result = "Ptrdiff_t" }
6464}
6565
66+ /**
67+ * A common base type for describing the C/C++ fixed-width numeric types
68+ */
69+ abstract class FixedWidthIntegralType extends UserType {
70+ FixedWidthIntegralType ( ) { this .getUnderlyingType ( ) instanceof IntegralType }
71+ }
72+
73+ /**
74+ * A common base type for describing the C/C++ minimum-width numeric types.
75+ */
76+ abstract class MinimumWidthIntegralType extends UserType {
77+ MinimumWidthIntegralType ( ) { this .getUnderlyingType ( ) instanceof IntegralType }
78+ }
79+
80+ /**
81+ * A common base type for describing the C/C++ maximum-width numeric types.
82+ */
83+ abstract class MaximumWidthIntegralType extends UserType {
84+ MaximumWidthIntegralType ( ) { this .getUnderlyingType ( ) instanceof IntegralType }
85+ }
86+
87+ /**
88+ * A common base type for describing enum types that are based on fixed-width types.
89+ */
90+ class FixedWidthEnumType extends UserType {
91+ FixedWidthEnumType ( ) {
92+ this .( Enum ) .getExplicitUnderlyingType ( ) instanceof FixedWidthIntegralType
93+ }
94+ }
95+
96+ /**
97+ * The C/C++ `int8_t` type.
98+ */
99+ class Int8_t extends FixedWidthIntegralType {
100+ Int8_t ( ) { this .hasGlobalOrStdName ( "int8_t" ) }
101+
102+ override string getAPrimaryQlClass ( ) { result = "Int8_t" }
103+ }
104+
105+ /**
106+ * The C/C++ `int16_t` type.
107+ */
108+ class Int16_t extends FixedWidthIntegralType {
109+ Int16_t ( ) { this .hasGlobalOrStdName ( "int16_t" ) }
110+
111+ override string getAPrimaryQlClass ( ) { result = "Int16_t" }
112+ }
113+
114+ /**
115+ * The C/C++ `int32_t` type.
116+ */
117+ class Int32_t extends FixedWidthIntegralType {
118+ Int32_t ( ) { this .hasGlobalOrStdName ( "int32_t" ) }
119+
120+ override string getAPrimaryQlClass ( ) { result = "Int32_t" }
121+ }
122+
123+ /**
124+ * The C/C++ `int64_t` type.
125+ */
126+ class Int64_t extends FixedWidthIntegralType {
127+ Int64_t ( ) { this .hasGlobalOrStdName ( "int64_t" ) }
128+
129+ override string getAPrimaryQlClass ( ) { result = "Int64_t" }
130+ }
131+
132+ /**
133+ * The C/C++ `uint8_t` type.
134+ */
135+ class UInt8_t extends FixedWidthIntegralType {
136+ UInt8_t ( ) { this .hasGlobalOrStdName ( "uint8_t" ) }
137+
138+ override string getAPrimaryQlClass ( ) { result = "UInt8_t" }
139+ }
140+
141+ /**
142+ * The C/C++ `uint16_t` type.
143+ */
144+ class UInt16_t extends FixedWidthIntegralType {
145+ UInt16_t ( ) { this .hasGlobalOrStdName ( "uint16_t" ) }
146+
147+ override string getAPrimaryQlClass ( ) { result = "UInt16_t" }
148+ }
149+
150+ /**
151+ * The C/C++ `uint32_t` type.
152+ */
153+ class UInt32_t extends FixedWidthIntegralType {
154+ UInt32_t ( ) { this .hasGlobalOrStdName ( "uint32_t" ) }
155+
156+ override string getAPrimaryQlClass ( ) { result = "UInt32_t" }
157+ }
158+
159+ /**
160+ * The C/C++ `uint64_t` type.
161+ */
162+ class UInt64_t extends FixedWidthIntegralType {
163+ UInt64_t ( ) { this .hasGlobalOrStdName ( "uint64_t" ) }
164+
165+ override string getAPrimaryQlClass ( ) { result = "UInt64_t" }
166+ }
167+
168+ /**
169+ * The C/C++ `int_least8_t` type.
170+ */
171+ class Int_least8_t extends MinimumWidthIntegralType {
172+ Int_least8_t ( ) { this .hasGlobalOrStdName ( "int_least8_t" ) }
173+
174+ override string getAPrimaryQlClass ( ) { result = "Int_least8_t" }
175+ }
176+
177+ /**
178+ * The C/C++ `int_least16_t` type.
179+ */
180+ class Int_least16_t extends MinimumWidthIntegralType {
181+ Int_least16_t ( ) { this .hasGlobalOrStdName ( "int_least16_t" ) }
182+
183+ override string getAPrimaryQlClass ( ) { result = "Int_least16_t" }
184+ }
185+
186+ /**
187+ * The C/C++ `int_least32_t` type.
188+ */
189+ class Int_least32_t extends MinimumWidthIntegralType {
190+ Int_least32_t ( ) { this .hasGlobalOrStdName ( "int_least32_t" ) }
191+
192+ override string getAPrimaryQlClass ( ) { result = "Int_least32_t" }
193+ }
194+
195+ /**
196+ * The C/C++ `int_least64_t` type.
197+ */
198+ class Int_least64_t extends MinimumWidthIntegralType {
199+ Int_least64_t ( ) { this .hasGlobalOrStdName ( "int_least64_t" ) }
200+
201+ override string getAPrimaryQlClass ( ) { result = "Int_least64_t" }
202+ }
203+
204+ /**
205+ * The C/C++ `uint_least8_t` type.
206+ */
207+ class UInt_least8_t extends MinimumWidthIntegralType {
208+ UInt_least8_t ( ) { this .hasGlobalOrStdName ( "uint_least8_t" ) }
209+
210+ override string getAPrimaryQlClass ( ) { result = "UInt_least8_t" }
211+ }
212+
213+ /**
214+ * The C/C++ `uint_least16_t` type.
215+ */
216+ class UInt_least16_t extends MinimumWidthIntegralType {
217+ UInt_least16_t ( ) { this .hasGlobalOrStdName ( "uint_least16_t" ) }
218+
219+ override string getAPrimaryQlClass ( ) { result = "UInt_least16_t" }
220+ }
221+
222+ /**
223+ * The C/C++ `uint_least32_t` type.
224+ */
225+ class UInt_least32_t extends MinimumWidthIntegralType {
226+ UInt_least32_t ( ) { this .hasGlobalOrStdName ( "uint_least32_t" ) }
227+
228+ override string getAPrimaryQlClass ( ) { result = "UInt_least32_t" }
229+ }
230+
231+ /**
232+ * The C/C++ `uint_least64_t` type.
233+ */
234+ class UInt_least64_t extends MinimumWidthIntegralType {
235+ UInt_least64_t ( ) { this .hasGlobalOrStdName ( "uint_least64_t" ) }
236+
237+ override string getAPrimaryQlClass ( ) { result = "UInt_least64_t" }
238+ }
239+
240+ /**
241+ * The C/C++ `int_fast8_t` type.
242+ */
243+ class Int_fast8_t extends MinimumWidthIntegralType {
244+ Int_fast8_t ( ) { this .hasGlobalOrStdName ( "int_fast8_t" ) }
245+
246+ override string getAPrimaryQlClass ( ) { result = "Int_fast8_t" }
247+ }
248+
249+ /**
250+ * The C/C++ `int_fast16_t` type.
251+ */
252+ class Int_fast16_t extends MinimumWidthIntegralType {
253+ Int_fast16_t ( ) { this .hasGlobalOrStdName ( "int_fast16_t" ) }
254+
255+ override string getAPrimaryQlClass ( ) { result = "Int_fast16_t" }
256+ }
257+
258+ /**
259+ * The C/C++ `int_fast32_t` type.
260+ */
261+ class Int_fast32_t extends MinimumWidthIntegralType {
262+ Int_fast32_t ( ) { this .hasGlobalOrStdName ( "int_fast32_t" ) }
263+
264+ override string getAPrimaryQlClass ( ) { result = "Int_fast32_t" }
265+ }
266+
267+ /**
268+ * The C/C++ `int_fast64_t` type.
269+ */
270+ class Int_fast64_t extends MinimumWidthIntegralType {
271+ Int_fast64_t ( ) { this .hasGlobalOrStdName ( "int_fast64_t" ) }
272+
273+ override string getAPrimaryQlClass ( ) { result = "Int_fast64_t" }
274+ }
275+
276+ /**
277+ * The C/C++ `uint_fast8_t` type.
278+ */
279+ class UInt_fast8_t extends MinimumWidthIntegralType {
280+ UInt_fast8_t ( ) { this .hasGlobalOrStdName ( "uint_fast8_t" ) }
281+
282+ override string getAPrimaryQlClass ( ) { result = "UInt_fast8_t" }
283+ }
284+
285+ /**
286+ * The C/C++ `uint_fast16_t` type.
287+ */
288+ class UInt_fast16_t extends MinimumWidthIntegralType {
289+ UInt_fast16_t ( ) { this .hasGlobalOrStdName ( "uint_fast16_t" ) }
290+
291+ override string getAPrimaryQlClass ( ) { result = "UInt_fast16_t" }
292+ }
293+
294+ /**
295+ * The C/C++ `uint_fast32_t` type.
296+ */
297+ class UInt_fast32_t extends MinimumWidthIntegralType {
298+ UInt_fast32_t ( ) { this .hasGlobalOrStdName ( "uint_fast32_t" ) }
299+
300+ override string getAPrimaryQlClass ( ) { result = "UInt_fast32_t" }
301+ }
302+
303+ /**
304+ * The C/C++ `uint_fast64_t` type.
305+ */
306+ class UInt_fast64_t extends MinimumWidthIntegralType {
307+ UInt_fast64_t ( ) { this .hasGlobalOrStdName ( "uint_fast64_t" ) }
308+
309+ override string getAPrimaryQlClass ( ) { result = "UInt_fast64_t" }
310+ }
311+
66312/**
67313 * The C/C++ `intmax_t` type.
68314 */
69- class Intmax_t extends Type {
315+ class Intmax_t extends MaximumWidthIntegralType {
70316 Intmax_t ( ) {
71- this .getUnderlyingType ( ) instanceof IntegralType and
72- this .hasName ( "intmax_t" )
317+ this .hasGlobalOrStdName ( "intmax_t" )
73318 }
74319
75320 override string getAPrimaryQlClass ( ) { result = "Intmax_t" }
@@ -78,10 +323,9 @@ class Intmax_t extends Type {
78323/**
79324 * The C/C++ `uintmax_t` type.
80325 */
81- class Uintmax_t extends Type {
326+ class Uintmax_t extends MaximumWidthIntegralType {
82327 Uintmax_t ( ) {
83- this .getUnderlyingType ( ) instanceof IntegralType and
84- this .hasName ( "uintmax_t" )
328+ this .hasGlobalOrStdName ( "uintmax_t" )
85329 }
86330
87331 override string getAPrimaryQlClass ( ) { result = "Uintmax_t" }
0 commit comments