#version 310 es #define X 1 #define Y clamp #define Z X #define F 1, 2 #define make_function \ float fn ( float x ) \ {\ return x + 4.0; \ } make_function int main() { gl_Position = vec4(X); gl_Position = Y(1, 2, 3); gl_Position = vec4(Z); gl_Position = vec4(F); gl_Position = vec4(fn(3)); [] . ++ -- + - * % / - ! ~ << >> < > <= >= == != & ^ | && ^^ || ? : += -= *= /= %= <<= >>= &= |= ^= 1.2 2E10 5u -5lf } struct S { int member1; float member2; vec4 member3; }; #define xyz xxyz #define yzy() yyz #define FUN_MAC() \ vec3 a = vec3(0); \ vec3 b = a.zxyz; \ vec3 b = a.xyz; \ vec3 b = a.yzy(); \ vec3 b = a.xyz(); \ vec3 b = a.yzy; \ vec3 b = a.z; void foo() { S s; s.member2 + s.member1; s.member3.zyx; s.member2.xyz; s.member2.yzy(); s.member2.xyz(); s.member2.yzy; FUN_MAC() yzy (); yzy }