]> git.xonotic.org Git - xonotic/gmqcc.git/blob - data/parsing.qc
copy the function context over to its ir_value as well
[xonotic/gmqcc.git] / data / parsing.qc
1 /* this is the WIP test for the parser...
2  * constantly adding stuff here to see if things break
3  */
4 void(string,...)    print  = #1;
5 string(float)       ftos   = #2;
6 entity()            spawn  = #3;
7 void(entity)        kill   = #4;
8
9 .float mema;
10 .float memb;
11
12 $framevalue 0
13 $frame stand1 stand2 standX
14 $framerestore stand2
15 $frame stand3
16 $modelname foobar
17 $modelname foobar3
18
19 void(string a, ...) hasvaria = {
20 };
21
22 void() main = {
23     entity pawn;
24     vector vec;
25     float a;
26
27     vec = '3 4 5';
28     vec_z = 5;
29
30     a = 5;
31
32     if (a) {
33         print("a != 0\n");
34     } else {
35         print("not a\n");
36     }
37
38     a = 19;
39     print("Hello, World\n");
40
41     pawn = spawn();
42     pawn.mema = 3;
43     pawn.memb = 5;
44     print(ftos(pawn.mema), "\n");
45     print(ftos(pawn.memb), "\n");
46
47     print("SECOND TEST\n");
48     for (a = 0; a < 3; a = a + 1) {
49         print("LOOP ", ftos(a), "\n");
50     }
51
52     print("DO-WHILE test\n");
53     a = 2;
54     do {
55         print("Foo\n");
56         a = a - 1;
57     } while (a);
58
59     float b;
60     a = 5;
61     print("a = ", ftos(a), "\n");
62     b = a += 7;
63     print("adding\n");
64     print("a = ", ftos(a), "\n");
65     print("b = ", ftos(b), "\n");
66
67     print("memb = ", ftos(pawn.memb), "\n");
68     pawn.memb += -1;
69     print("memb = ", ftos(pawn.memb), "\n");
70     print("Frame stand3 is ", ftos($stand3), " wooh\n");
71 };
72
73 float() exprtest = {
74     local float x;
75     x = 3;
76     return (x); /* parens */
77 }