-void print(...) = #1;
-string ftos (float) = #2;
-
void test(float cond, float v1, float v2, float a) {
- print(ftos(cond ? v1 : v2), " ");
- print( (cond ? v1 : v2) ? ( (a == 1) ? "a=1"
- : (a == 2) ? "a=2"
- : "a=other"
- )
- : "not met",
- "\n");
+ print(ftos(cond ? v1 : v2), " ");
+ print( (cond ? v1 : v2) ? ( (a == 1) ? "a=1"
+ : (a == 2) ? "a=2"
+ : "a=other"
+ )
+ : "not met",
+ "\n");
+}
+
+void select_a(float x) {
+ print("select_a: ", ftos(x), "\n");
+}
+void select_b(float x) {
+ print("select_b: ", ftos(x), "\n");
}
void main() {
- test(0, -99, 1, 1);
- test(0, -99, 1, 2);
- test(0, -99, 1, 3);
- test(0, -99, 0, 1);
- test(0, -99, 0, 2);
- test(0, -99, 0, 3);
- test(1, 1, -99, 1);
- test(1, 1, -99, 2);
- test(1, 1, -99, 3);
- test(1, 0, -99, 1);
- test(1, 0, -99, 2);
- test(1, 0, -99, 3);
+ float a, b;
+ test(0, -99, 1, 1);
+ test(0, -99, 1, 2);
+ test(0, -99, 1, 3);
+ test(0, -99, 0, 1);
+ test(0, -99, 0, 2);
+ test(0, -99, 0, 3);
+ test(1, 1, -99, 1);
+ test(1, 1, -99, 2);
+ test(1, 1, -99, 3);
+ test(1, 0, -99, 1);
+ test(1, 0, -99, 2);
+ test(1, 0, -99, 3);
+
+ b = 5;
+ a = b ? 5 : 6;
+ print(ftos(a), "\n");
+ b ? a = 9 : a = 10;
+ print(ftos(a), "\n");
+ !b ? a = 9 : a = 10;
+ print(ftos(a), "\n");
+
+ ((1) ? select_a : select_b) (1);
+ ((0) ? select_a : select_b) (0);
}