]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - tests/enum.qc
update .gitignore
[xonotic/gmqcc.git] / tests / enum.qc
index 39b419643c68722b2e4d935bf0937e5c53c80c8a..42853d85ffc3886218c3d24319484c8daea3d890 100644 (file)
@@ -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");
+};