gmqcc/tests/parens.qc

45 lines
1.2 KiB
C++
Raw Normal View History

void(string...) print = #1;
string(float) ftos = #2;
float arr[2];
string gets() { return "S\n"; }
void main(float x) {
string s;
s = gets(); // 0 params
print(s); // 1 param
print("A ", "B\n"); // 2 params
print("A ", "B ", "C\n"); // more params
print(gets()); // 0-param call in call
print(gets(), "next\n"); // 0-param call and another
print("-> ", gets()); // param + 0-param call
print(ftos(x), "\n"); // param-call + another
print(x ? "xA\n" : "xB\n"); // ternary in PAREN_FUNC
print(!x ? "xA\n" : "xB\n"); // ternary in PAREN_FUNC
// PAREN_INDEX
arr[0] = 10;
arr[1] = 11;
// PAREN_TERNARY + PAREN_INDEX
arr[x ? 0 : 1] += 100;
print(ftos(arr[0]), "\n");
print(ftos(arr[1]), "\n");
print(ftos(arr[x ? 0 : 1]), "\n");
print(ftos(arr[!x ? 0 : 1]), "\n");
// loops with comma operators
float i, j;
for (i = 0, j = 0; i < x; ++i)
print("-");
print("\n");
// if + PAREN_TERNARY2
if (x ? 1 : 0)
print("OK\n");
if (x ? 0 : 1)
print("NO\n");
// PAREN_FUNC in PAREN_EXPR
print(("Is this wrong ", "now?\n"));
}