mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 20:10:06 +00:00
69aa9c1b84
- do version checking for the line-continuation character - check for built-in names in #undef - bug fix for #elif after #else - do version checking for use of floating point suffixes (f, LF, etc.) git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24011 e7fa87d3-cd2b-0410-9028-fcbf551c1848
209 lines
2.5 KiB
GLSL
209 lines
2.5 KiB
GLSL
#version 400
|
|
|
|
#define ON
|
|
|
|
float sum = 0.0;
|
|
|
|
void main()
|
|
{
|
|
|
|
#ifdef ON
|
|
//yes
|
|
sum += 1.0;
|
|
#endif
|
|
|
|
#ifdef OFF
|
|
//no
|
|
sum += 20.0;
|
|
#endif
|
|
|
|
#if defined(ON)
|
|
//yes
|
|
sum += 300.0;
|
|
#endif
|
|
|
|
#if defined(OFF)
|
|
//no
|
|
sum += 4000.0;
|
|
#endif
|
|
|
|
#if !defined(ON)
|
|
//no
|
|
sum += 50000.0;
|
|
#endif
|
|
|
|
#ifndef OFF
|
|
//yes
|
|
sum += 600000.0;
|
|
#else
|
|
//no
|
|
sum += 0.6;
|
|
#endif
|
|
|
|
#if defined(ON) && defined(OFF)
|
|
//no
|
|
sum += 0.7;
|
|
#elif !defined(OFF)
|
|
//yes
|
|
sum += 7000000.0;
|
|
#endif
|
|
|
|
#if defined(ON) && !defined(OFF)
|
|
//yes
|
|
sum += 80000000.0;
|
|
#endif
|
|
|
|
#if defined(OFF) || defined(ON)
|
|
//yes
|
|
sum += 900000000.0;
|
|
#endif
|
|
|
|
#if NEVER_DEFINED
|
|
//no
|
|
sum += 0.04;
|
|
#else
|
|
sum += 0.05;
|
|
#endif
|
|
|
|
// sum should be 987600301.7
|
|
gl_Position = vec4(sum);
|
|
}
|
|
|
|
#define A 0
|
|
#define B 0
|
|
#define C 0
|
|
|
|
#if (A == B) || (A == C)
|
|
#error good1
|
|
#endif
|
|
|
|
#if A == B || (A == C)
|
|
#error good2
|
|
#endif
|
|
|
|
#if (A == B || (A == C))
|
|
#error good3
|
|
#endif
|
|
|
|
#if (AA == BB) || (AA == CC)
|
|
#error good4
|
|
#endif
|
|
|
|
#if AA == BB || (AA == CC)
|
|
#error good5
|
|
#endif
|
|
|
|
#if ((AA == BB || (AA == CC)))
|
|
#error good6
|
|
#endif
|
|
|
|
#if (A == B || (A == C)
|
|
#error bad1
|
|
#endif
|
|
|
|
#if A == B || A == C)
|
|
#error bad2
|
|
#endif
|
|
|
|
#if (A == B || (A == C)
|
|
#error bad3
|
|
#endif
|
|
|
|
#if AA == BB) || (AA == CC)
|
|
#error bad4
|
|
#endif
|
|
|
|
#if AA == BB || (AA == CC
|
|
#error bad5
|
|
#endif
|
|
|
|
#if ((AA == BB || (AA == CC))))
|
|
#error bad6
|
|
#endif extra tokens
|
|
|
|
int linenumber = __LINE__;
|
|
int filenumber = __FILE__;
|
|
int version = __VERSION__;
|
|
|
|
#define PI (3.14)
|
|
#define TWOPI (2.0 * PI)
|
|
float twoPi = TWOPI;
|
|
|
|
//#define PASTE(a,b) a ## b
|
|
//float PASTE(tod, ay) = 17;
|
|
|
|
"boo" // ERROR
|
|
int a = length("aoenatuh"); // ERROR
|
|
|
|
'int'; // ERROR
|
|
|
|
// ERROR: all the following are reserved
|
|
#define GL_
|
|
#define GL_Macro 1
|
|
#define __M
|
|
#define M__
|
|
#define ABC__DE abc
|
|
|
|
#if 4
|
|
#else extra
|
|
#elif
|
|
// ERROR elif after else
|
|
#endif
|
|
|
|
#if blah
|
|
#if 0
|
|
#else extra
|
|
#ifdef M
|
|
#else
|
|
#else
|
|
// ERROR else after else
|
|
#endif extra
|
|
#endif
|
|
#endif
|
|
|
|
#define m1(a,a) // ERROR
|
|
#define m2(a,b)
|
|
|
|
// okay
|
|
#define m3 (a)
|
|
#define m3 (a)
|
|
|
|
// ERROR
|
|
#define m4(b)
|
|
#define m4 (b)
|
|
|
|
// ERROR
|
|
#define m5 (b)
|
|
#define m5(b)
|
|
|
|
// ERROR
|
|
#define m6(a)
|
|
#define m6
|
|
|
|
// ERROR (whitespace)
|
|
#define m7 (a)
|
|
#define m7 ( a)
|
|
|
|
#define m80(a,b) is + exactly m3 the same
|
|
#define m80(a,b) is + exactly m3 the same
|
|
|
|
// ERROR
|
|
#define m8(a,b) almost + exactly m3 the same
|
|
#define m8(a,b) almost + exactly m3 thee same
|
|
|
|
// ERROR
|
|
#define m9(a,b,c) aoe
|
|
#define m9(a,d,c) aoe
|
|
|
|
#define n1 0xf
|
|
int n = n1;
|
|
|
|
#define f1 .08e-2Lf
|
|
double f = f1;
|
|
|
|
#undef __VERSION__
|
|
#undef GL_ARB_texture_rectangle
|
|
|
|
#if 1
|
|
#else
|
|
// ERROR, missing #endif |