X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=tests%2Fenum.qc;h=42853d85ffc3886218c3d24319484c8daea3d890;hp=39b419643c68722b2e4d935bf0937e5c53c80c8a;hb=e8133893a0bd4e1cc469864b3d6f621ed5f3186f;hpb=4a063d3518b1af9a0c6270d5603e01d88c36c453 diff --git a/tests/enum.qc b/tests/enum.qc index 39b4196..42853d8 100644 --- a/tests/enum.qc +++ b/tests/enum.qc @@ -1,25 +1,68 @@ -void(string, ...) print = #1; -string(float) ftos = #2; +enum { + // this behaviour is confusing, but I like that + // we support it. + __ = (__ - 1), + A = (__ + 1), + + B, + C +}; enum { - FOO, - BAR, - BAZ, - OMG = BAR, - POO, - LAST = OMG + POO + D = C + B, + E = C + C, + F = C + D, +}; + +enum { + G = (B + F), H = (C + F), + I = (D + F), J = (B + I) +}; +enum { + K = A + B - C + D - E + F * + G - H + I - J + A - B - + J + A, + L, + M, + N +}; + +enum : flag { + F1, /* = 1 << 1 */ + F2, /* = 1 << 2 */ + F3 /* = 1 << 3 */ }; -enum {A}; -enum {B=A+1}; -enum {C=A}; +/* reversed enumeration */ +enum : reverse { + R1, // 3 + R2, // 2 + R3, // 1 + R4 // 0 +}; void main() { - print(ftos(FOO), "\n"); - print(ftos(BAR), "\n"); - print(ftos(BAZ), "\n"); - print(ftos(OMG), "\n"); - print(ftos(POO), "\n"); - print(ftos(LAST), "\n"); + print(ftos(A), "\n"); + print(ftos(B), "\n"); print(ftos(C), "\n"); -} + print(ftos(D), "\n"); + print(ftos(E), "\n"); + print(ftos(F), "\n"); + print(ftos(G), "\n"); + print(ftos(H), "\n"); + print(ftos(I), "\n"); + print(ftos(J), "\n"); + print(ftos(K), "\n"); + print(ftos(L), "\n"); + print(ftos(M), "\n"); + print(ftos(N), "\n"); + + print(ftos(F1), "\n"); + print(ftos(F2), "\n"); + print(ftos(F3), "\n"); + + print(ftos(R1), "\n"); + print(ftos(R2), "\n"); + print(ftos(R3), "\n"); + print(ftos(R4), "\n"); +};