• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright (C) 2016 Google, Inc.
3 // Copyright (C) 2016 LunarG, Inc.
4 //
5 // All rights reserved.
6 //
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions
9 // are met:
10 //
11 //    Redistributions of source code must retain the above copyright
12 //    notice, this list of conditions and the following disclaimer.
13 //
14 //    Redistributions in binary form must reproduce the above
15 //    copyright notice, this list of conditions and the following
16 //    disclaimer in the documentation and/or other materials provided
17 //    with the distribution.
18 //
19 //    Neither the name of Google, Inc., nor the names of its
20 //    contributors may be used to endorse or promote products derived
21 //    from this software without specific prior written permission.
22 //
23 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 // POSSIBILITY OF SUCH DAMAGE.
35 //
36 
37 #ifndef EHLSLTOKENS_H_
38 #define EHLSLTOKENS_H_
39 
40 namespace glslang {
41 
42 enum EHlslTokenClass {
43     EHTokNone = 0,
44 
45     // qualifiers
46     EHTokStatic,
47     EHTokConst,
48     EHTokSNorm,
49     EHTokUnorm,
50     EHTokExtern,
51     EHTokUniform,
52     EHTokVolatile,
53     EHTokPrecise,
54     EHTokShared,
55     EHTokGroupShared,
56     EHTokLinear,
57     EHTokCentroid,
58     EHTokNointerpolation,
59     EHTokNoperspective,
60     EHTokSample,
61     EHTokRowMajor,
62     EHTokColumnMajor,
63     EHTokPackOffset,
64     EHTokIn,
65     EHTokOut,
66     EHTokInOut,
67     EHTokLayout,
68     EHTokGloballyCoherent,
69     EHTokInline,
70 
71     // primitive types
72     EHTokPoint,
73     EHTokLine,
74     EHTokTriangle,
75     EHTokLineAdj,
76     EHTokTriangleAdj,
77 
78     // stream out types
79     EHTokPointStream,
80     EHTokLineStream,
81     EHTokTriangleStream,
82 
83     // Tessellation patches
84     EHTokInputPatch,
85     EHTokOutputPatch,
86 
87     // template types
88     EHTokBuffer,
89     EHTokVector,
90     EHTokMatrix,
91 
92     // scalar types
93     EHTokVoid,
94     EHTokString,
95     EHTokBool,
96     EHTokInt,
97     EHTokUint,
98     EHTokUint64,
99     EHTokDword,
100     EHTokHalf,
101     EHTokFloat,
102     EHTokDouble,
103     EHTokMin16float,
104     EHTokMin10float,
105     EHTokMin16int,
106     EHTokMin12int,
107     EHTokMin16uint,
108 
109     // vector types
110     EHTokBool1,
111     EHTokBool2,
112     EHTokBool3,
113     EHTokBool4,
114     EHTokFloat1,
115     EHTokFloat2,
116     EHTokFloat3,
117     EHTokFloat4,
118     EHTokInt1,
119     EHTokInt2,
120     EHTokInt3,
121     EHTokInt4,
122     EHTokDouble1,
123     EHTokDouble2,
124     EHTokDouble3,
125     EHTokDouble4,
126     EHTokUint1,
127     EHTokUint2,
128     EHTokUint3,
129     EHTokUint4,
130     EHTokHalf1,
131     EHTokHalf2,
132     EHTokHalf3,
133     EHTokHalf4,
134     EHTokMin16float1,
135     EHTokMin16float2,
136     EHTokMin16float3,
137     EHTokMin16float4,
138     EHTokMin10float1,
139     EHTokMin10float2,
140     EHTokMin10float3,
141     EHTokMin10float4,
142     EHTokMin16int1,
143     EHTokMin16int2,
144     EHTokMin16int3,
145     EHTokMin16int4,
146     EHTokMin12int1,
147     EHTokMin12int2,
148     EHTokMin12int3,
149     EHTokMin12int4,
150     EHTokMin16uint1,
151     EHTokMin16uint2,
152     EHTokMin16uint3,
153     EHTokMin16uint4,
154 
155     // matrix types
156     EHTokInt1x1,
157     EHTokInt1x2,
158     EHTokInt1x3,
159     EHTokInt1x4,
160     EHTokInt2x1,
161     EHTokInt2x2,
162     EHTokInt2x3,
163     EHTokInt2x4,
164     EHTokInt3x1,
165     EHTokInt3x2,
166     EHTokInt3x3,
167     EHTokInt3x4,
168     EHTokInt4x1,
169     EHTokInt4x2,
170     EHTokInt4x3,
171     EHTokInt4x4,
172     EHTokUint1x1,
173     EHTokUint1x2,
174     EHTokUint1x3,
175     EHTokUint1x4,
176     EHTokUint2x1,
177     EHTokUint2x2,
178     EHTokUint2x3,
179     EHTokUint2x4,
180     EHTokUint3x1,
181     EHTokUint3x2,
182     EHTokUint3x3,
183     EHTokUint3x4,
184     EHTokUint4x1,
185     EHTokUint4x2,
186     EHTokUint4x3,
187     EHTokUint4x4,
188     EHTokBool1x1,
189     EHTokBool1x2,
190     EHTokBool1x3,
191     EHTokBool1x4,
192     EHTokBool2x1,
193     EHTokBool2x2,
194     EHTokBool2x3,
195     EHTokBool2x4,
196     EHTokBool3x1,
197     EHTokBool3x2,
198     EHTokBool3x3,
199     EHTokBool3x4,
200     EHTokBool4x1,
201     EHTokBool4x2,
202     EHTokBool4x3,
203     EHTokBool4x4,
204     EHTokFloat1x1,
205     EHTokFloat1x2,
206     EHTokFloat1x3,
207     EHTokFloat1x4,
208     EHTokFloat2x1,
209     EHTokFloat2x2,
210     EHTokFloat2x3,
211     EHTokFloat2x4,
212     EHTokFloat3x1,
213     EHTokFloat3x2,
214     EHTokFloat3x3,
215     EHTokFloat3x4,
216     EHTokFloat4x1,
217     EHTokFloat4x2,
218     EHTokFloat4x3,
219     EHTokFloat4x4,
220     EHTokHalf1x1,
221     EHTokHalf1x2,
222     EHTokHalf1x3,
223     EHTokHalf1x4,
224     EHTokHalf2x1,
225     EHTokHalf2x2,
226     EHTokHalf2x3,
227     EHTokHalf2x4,
228     EHTokHalf3x1,
229     EHTokHalf3x2,
230     EHTokHalf3x3,
231     EHTokHalf3x4,
232     EHTokHalf4x1,
233     EHTokHalf4x2,
234     EHTokHalf4x3,
235     EHTokHalf4x4,
236     EHTokDouble1x1,
237     EHTokDouble1x2,
238     EHTokDouble1x3,
239     EHTokDouble1x4,
240     EHTokDouble2x1,
241     EHTokDouble2x2,
242     EHTokDouble2x3,
243     EHTokDouble2x4,
244     EHTokDouble3x1,
245     EHTokDouble3x2,
246     EHTokDouble3x3,
247     EHTokDouble3x4,
248     EHTokDouble4x1,
249     EHTokDouble4x2,
250     EHTokDouble4x3,
251     EHTokDouble4x4,
252     EHTokMin16float1x1,
253     EHTokMin16float1x2,
254     EHTokMin16float1x3,
255     EHTokMin16float1x4,
256     EHTokMin16float2x1,
257     EHTokMin16float2x2,
258     EHTokMin16float2x3,
259     EHTokMin16float2x4,
260     EHTokMin16float3x1,
261     EHTokMin16float3x2,
262     EHTokMin16float3x3,
263     EHTokMin16float3x4,
264     EHTokMin16float4x1,
265     EHTokMin16float4x2,
266     EHTokMin16float4x3,
267     EHTokMin16float4x4,
268     EHTokMin10float1x1,
269     EHTokMin10float1x2,
270     EHTokMin10float1x3,
271     EHTokMin10float1x4,
272     EHTokMin10float2x1,
273     EHTokMin10float2x2,
274     EHTokMin10float2x3,
275     EHTokMin10float2x4,
276     EHTokMin10float3x1,
277     EHTokMin10float3x2,
278     EHTokMin10float3x3,
279     EHTokMin10float3x4,
280     EHTokMin10float4x1,
281     EHTokMin10float4x2,
282     EHTokMin10float4x3,
283     EHTokMin10float4x4,
284     EHTokMin16int1x1,
285     EHTokMin16int1x2,
286     EHTokMin16int1x3,
287     EHTokMin16int1x4,
288     EHTokMin16int2x1,
289     EHTokMin16int2x2,
290     EHTokMin16int2x3,
291     EHTokMin16int2x4,
292     EHTokMin16int3x1,
293     EHTokMin16int3x2,
294     EHTokMin16int3x3,
295     EHTokMin16int3x4,
296     EHTokMin16int4x1,
297     EHTokMin16int4x2,
298     EHTokMin16int4x3,
299     EHTokMin16int4x4,
300     EHTokMin12int1x1,
301     EHTokMin12int1x2,
302     EHTokMin12int1x3,
303     EHTokMin12int1x4,
304     EHTokMin12int2x1,
305     EHTokMin12int2x2,
306     EHTokMin12int2x3,
307     EHTokMin12int2x4,
308     EHTokMin12int3x1,
309     EHTokMin12int3x2,
310     EHTokMin12int3x3,
311     EHTokMin12int3x4,
312     EHTokMin12int4x1,
313     EHTokMin12int4x2,
314     EHTokMin12int4x3,
315     EHTokMin12int4x4,
316     EHTokMin16uint1x1,
317     EHTokMin16uint1x2,
318     EHTokMin16uint1x3,
319     EHTokMin16uint1x4,
320     EHTokMin16uint2x1,
321     EHTokMin16uint2x2,
322     EHTokMin16uint2x3,
323     EHTokMin16uint2x4,
324     EHTokMin16uint3x1,
325     EHTokMin16uint3x2,
326     EHTokMin16uint3x3,
327     EHTokMin16uint3x4,
328     EHTokMin16uint4x1,
329     EHTokMin16uint4x2,
330     EHTokMin16uint4x3,
331     EHTokMin16uint4x4,
332 
333     // texturing types
334     EHTokSampler,
335     EHTokSampler1d,
336     EHTokSampler2d,
337     EHTokSampler3d,
338     EHTokSamplerCube,
339     EHTokSamplerState,
340     EHTokSamplerComparisonState,
341     EHTokTexture,
342     EHTokTexture1d,
343     EHTokTexture1darray,
344     EHTokTexture2d,
345     EHTokTexture2darray,
346     EHTokTexture3d,
347     EHTokTextureCube,
348     EHTokTextureCubearray,
349     EHTokTexture2DMS,
350     EHTokTexture2DMSarray,
351     EHTokRWTexture1d,
352     EHTokRWTexture1darray,
353     EHTokRWTexture2d,
354     EHTokRWTexture2darray,
355     EHTokRWTexture3d,
356     EHTokRWBuffer,
357     EHTokSubpassInput,
358     EHTokSubpassInputMS,
359 
360     // Structure buffer variants
361     EHTokAppendStructuredBuffer,
362     EHTokByteAddressBuffer,
363     EHTokConsumeStructuredBuffer,
364     EHTokRWByteAddressBuffer,
365     EHTokRWStructuredBuffer,
366     EHTokStructuredBuffer,
367     EHTokTextureBuffer,
368 
369     // variable, user type, ...
370     EHTokIdentifier,
371     EHTokClass,
372     EHTokStruct,
373     EHTokCBuffer,
374     EHTokTBuffer,
375     EHTokTypedef,
376     EHTokThis,
377     EHTokNamespace,
378     EHTokConstantBuffer,
379 
380     // constant
381     EHTokFloat16Constant,
382     EHTokFloatConstant,
383     EHTokDoubleConstant,
384     EHTokIntConstant,
385     EHTokUintConstant,
386     EHTokBoolConstant,
387     EHTokStringConstant,
388 
389     // control flow
390     EHTokFor,
391     EHTokDo,
392     EHTokWhile,
393     EHTokBreak,
394     EHTokContinue,
395     EHTokIf,
396     EHTokElse,
397     EHTokDiscard,
398     EHTokReturn,
399     EHTokSwitch,
400     EHTokCase,
401     EHTokDefault,
402 
403     // expressions
404     EHTokLeftOp,
405     EHTokRightOp,
406     EHTokIncOp,
407     EHTokDecOp,
408     EHTokLeOp,
409     EHTokGeOp,
410     EHTokEqOp,
411     EHTokNeOp,
412     EHTokAndOp,
413     EHTokOrOp,
414     EHTokXorOp,
415     EHTokAssign,
416     EHTokMulAssign,
417     EHTokDivAssign,
418     EHTokAddAssign,
419     EHTokModAssign,
420     EHTokLeftAssign,
421     EHTokRightAssign,
422     EHTokAndAssign,
423     EHTokXorAssign,
424     EHTokOrAssign,
425     EHTokSubAssign,
426     EHTokLeftParen,
427     EHTokRightParen,
428     EHTokLeftBracket,
429     EHTokRightBracket,
430     EHTokLeftBrace,
431     EHTokRightBrace,
432     EHTokDot,
433     EHTokComma,
434     EHTokColon,
435     EHTokColonColon,
436     EHTokSemicolon,
437     EHTokBang,
438     EHTokDash,
439     EHTokTilde,
440     EHTokPlus,
441     EHTokStar,
442     EHTokSlash,
443     EHTokPercent,
444     EHTokLeftAngle,
445     EHTokRightAngle,
446     EHTokVerticalBar,
447     EHTokCaret,
448     EHTokAmpersand,
449     EHTokQuestion,
450 };
451 
452 } // end namespace glslang
453 
454 #endif // EHLSLTOKENS_H_
455