Как ты имеешь в виду? Что-то вроде:
(c-expression
(int main ((int argc) ((array (pointer char)) argv)
(block
(printf "%d arguments\n" argc)
(if (argc >= 1)
(printf "The first arg is %s\n" (ref argv 1)))
(return 0))))
=>
"int main (int argc, char *argv[])
{
printf("%d arguments\n", argc);
if (argc >= 1)
printf(The first arg is %s\n", argv[1]);
return 0;
}
Если так, то да, это определенно выполнимо. Тем не менее, это не совсем тривиально.