gmqcc/tests/operators.qc

58 lines
1.1 KiB
C++
Raw Normal View History

2012-11-23 11:29:52 +00:00
.float mem;
void main() {
2013-08-27 10:41:03 +00:00
float a;
2012-11-23 11:29:52 +00:00
2013-08-27 10:41:03 +00:00
// regular binary+store
a = 5;
print(ftos(a += 1), " = ");
print(ftos(a), "\n");
2012-11-23 11:29:52 +00:00
2013-08-27 10:41:03 +00:00
entity e = spawn();
2012-11-23 11:29:52 +00:00
e.mem = 10;
2013-08-27 10:41:03 +00:00
print(ftos(e.mem += 1), " = ");
print(ftos(e.mem), "\n");
2012-11-23 11:29:52 +00:00
// prefix
2013-08-27 10:41:03 +00:00
print(ftos(++a), " = ");
print(ftos(a), "\n");
print(ftos(--a), " = ");
print(ftos(a), "\n");
print(ftos(++e.mem), " = ");
print(ftos(e.mem), "\n");
// suffix
print(ftos(a++), " = ");
print(ftos(a-1), "\n");
// the CLANG way:
a = 3;
print(ftos((a++ + a) + a), " = 11\n");
// check if minus translates
print(ftos(a--), "\n");
print(ftos(--a), "\n");
// postfix on members
print(ftos(e.mem--), " = ");
print(ftos(e.mem+1), "\n");
// compounds in general
a = 3;
print(ftos(a *= 2), " = 6\n");
print(ftos(a /= 2), " = 3\n");
2012-11-23 13:24:58 +00:00
// compounds on vectors
2013-08-27 10:41:03 +00:00
vector v;
v = '3 4 5';
print(vtos(v *= 2), " = '6 8 10'\n");
print(vtos(v /= 2), " = '3 4 5'\n");
// bit compounds
a = 1;
print(ftos(a |= 2), " = 3\n");
print(ftos(a &= 6), " = 2\n");
a = 7;
print(ftos(a &~= 3), " = 4\n");
2012-11-23 11:29:52 +00:00
}