#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


}
