--- /dev/null
+void (string str, ...) print = #1;
+string (float val) ftos = #2;
+entity () spawn = #3;
+void (entity ent) kill = #4;
+string (vector vec) vtos = #5;
+void (string str) error = #6;
+float (vector vec) vlen = #7;
+string (entity ent) etos = #8;
+float (string str) stof = #9;
+string (...) strcat = #10;
+float (string str1, string str2) strcmp = #11;
+vector (vector vec) normalize = #12;
+float (float val) sqrt = #13;
+float (float val) floor = #14;
+float (float val1, float val2) pow = #15;
+vector (string str) stov = #16;
+
+void p() {
+ print("\n");
+}
+
+void pn(float n) {
+ print(ftos(n), "\n");
+}
+
+// ======================================
+
+float global_f;
+.float field_f;
+
+float global_af[5];
+//float[5] global_af_2; NOPE
+
+float(float) fn_f2f;
+float fn_f2f_2(float);
+float fn_f2f(float) { return 0; }
+float fn_f2f_2(float a) { return a; }
+
+.float() field_v2f_1;
+.float(void) field_v2f_2;
+.float(float) field_f2f;
+.float fn_f2pf(float);
+.float fn_f2pf(float) { return field_f; }
+
+float fn_f_f2f_2_f(float a, float(float wat) f2f) {
+ return f2f(a);
+}
+
+float fn_f_f2f_2_f_2(float a, float f2f(float wat)) {
+ return f2f(a);
+}
+
+typedef .float(float) Fn_f2pf;
+var Fn_f2pf var_fn_f2pf;
+//var .float(float) var_fn_f2pf_2;
+//.Fn_v2pf idk;
+//..float() idk2;
+//Fn_v2pf fn_v2pf() = { return field_f; }
+//.Fn_v2pf field_v2pf;
+
+typedef float(float) Fn_f2f;
+typedef float ty_f;
+typedef float ty_f5[5];
+
+var float(float) var_fn_f2f;
+
+float idk() { return 5; };
+float idk2()() { return idk; }
+float wtf(float, void) { return 6; }
+float wtf2()(float, void) { return wtf; }
+
+.float sanity;
+//.float(float) madness { return sanity; }
+void aaaaaa() {}
+.float(.float(float a) a()()()) cthulhu(.float a)(float, void, ...)(.float a(float))()()()() { return aaaaaa; }
+
+float unused;
+
+void main() {
+ //cthulhu(madness);
+
+ unused = 1;
+
+ global_f = 666;
+ global_af[4] = 10;
+ entity e = spawn();
+ e.field_f = 667;
+ //var_fn_f2pf_2 = fn_f2pf;
+ //var_fn_f2pf = fn_f2pf;
+ //e.field_v2pf = fn_v2pf;
+ //e.idk();
+ //idk = 6;
+ //idk2 = 7;
+
+ pn(global_f);
+ pn(e.field_f);
+ p();
+
+ pn(fn_f2f(1));
+ pn(fn_f2f_2(1));
+ p();
+
+ e.field_f2f = fn_f2f;
+ pn(e.field_f2f(2));
+ e.field_f2f = fn_f2f_2;
+ pn(e.field_f2f(2));
+ p();
+
+ pn(e.(fn_f2pf(3)));
+ p();
+
+ .float loc_field_f = fn_f2pf(3);
+ pn(e.loc_field_f);
+ pn(e.(loc_field_f));
+ p();
+
+ var_fn_f2f = fn_f2f_2;
+ pn(var_fn_f2f(4));
+ p();
+
+ pn(fn_f_f2f_2_f(5, fn_f2f_2));
+ pn(fn_f_f2f_2_f_2(5, fn_f2f_2));
+ p();
+
+ float x, y = 1;
+ //pn(x);
+ pn(y);
+}