1617a3babSopenharmony_ci#version 310 es
2617a3babSopenharmony_ci#define X 1
3617a3babSopenharmony_ci#define Y clamp
4617a3babSopenharmony_ci#define Z X
5617a3babSopenharmony_ci
6617a3babSopenharmony_ci#define F 1, 2
7617a3babSopenharmony_ci
8617a3babSopenharmony_ci#define make_function \
9617a3babSopenharmony_ci  float fn ( float x ) \
10617a3babSopenharmony_ci  {\
11617a3babSopenharmony_ci    return x + 4.0; \
12617a3babSopenharmony_ci  }
13617a3babSopenharmony_ci
14617a3babSopenharmony_cimake_function
15617a3babSopenharmony_ci
16617a3babSopenharmony_ciint main() {
17617a3babSopenharmony_ci  gl_Position = vec4(X);
18617a3babSopenharmony_ci  gl_Position = Y(1, 2, 3);
19617a3babSopenharmony_ci  gl_Position = vec4(Z);
20617a3babSopenharmony_ci  gl_Position = vec4(F);
21617a3babSopenharmony_ci  gl_Position = vec4(fn(3));
22617a3babSopenharmony_ci  [] . ++ --
23617a3babSopenharmony_ci  + - * % / - ! ~
24617a3babSopenharmony_ci  << >> < > <= >=
25617a3babSopenharmony_ci  == !=
26617a3babSopenharmony_ci  & ^ | && ^^ || ? :
27617a3babSopenharmony_ci  += -= *= /= %= <<= >>= &= |= ^=
28617a3babSopenharmony_ci  1.2 2E10 5u -5lf
29617a3babSopenharmony_ci}
30617a3babSopenharmony_ci
31617a3babSopenharmony_cistruct S {
32617a3babSopenharmony_ci    int member1;
33617a3babSopenharmony_ci    float member2;
34617a3babSopenharmony_ci    vec4 member3;
35617a3babSopenharmony_ci};
36617a3babSopenharmony_ci
37617a3babSopenharmony_ci#define xyz xxyz
38617a3babSopenharmony_ci#define yzy() yyz
39617a3babSopenharmony_ci
40617a3babSopenharmony_ci#define FUN_MAC() \
41617a3babSopenharmony_ci	vec3 a = vec3(0); \
42617a3babSopenharmony_ci	vec3 b = a.zxyz;  \
43617a3babSopenharmony_ci	vec3 b = a.xyz;   \
44617a3babSopenharmony_ci	vec3 b = a.yzy();   \
45617a3babSopenharmony_ci	vec3 b = a.xyz();   \
46617a3babSopenharmony_ci	vec3 b = a.yzy;   \
47617a3babSopenharmony_ci	vec3 b = a.z;
48617a3babSopenharmony_ci
49617a3babSopenharmony_civoid bar(int x) {}
50617a3babSopenharmony_ci
51617a3babSopenharmony_civoid foo()
52617a3babSopenharmony_ci{
53617a3babSopenharmony_ci    S s;
54617a3babSopenharmony_ci    s.member2 + s.member1;
55617a3babSopenharmony_ci    s.member3.zyx;
56617a3babSopenharmony_ci    s.member2.xyz;
57617a3babSopenharmony_ci    s.member2.yzy();
58617a3babSopenharmony_ci    s.member2.xyz();
59617a3babSopenharmony_ci    s.member2.yzy;
60617a3babSopenharmony_ci    for(int i = 0;i < 100; i = i + 1) {
61617a3babSopenharmony_ci      bar (i)
62617a3babSopenharmony_ci    }
63617a3babSopenharmony_ci    FUN_MAC()
64617a3babSopenharmony_ci    yzy
65617a3babSopenharmony_ci
66617a3babSopenharmony_ci    ();
67617a3babSopenharmony_ci    yzy
68617a3babSopenharmony_ci
69617a3babSopenharmony_ci
70617a3babSopenharmony_ci}
71