#include <iostream>

#define L (
#define R )
#define C ,
#define S ;

#define CALL(func, x, y) func(x, y)

void foo(int x, int y) {
	std::cout << "foo(" << x << ", " << y << ")\n";
}

#define X(y) y

int main() {
	CALL(foo, 1, 2); // "foo(1, 2)"
	CALL(foo, 3 C 4 R S L 1, 2); // "foo(3, 4)"
}