Because as soon as you adopt the s-expressions, what you got is no longer <language>, but lisp itself. Something like this:
static char _getch() {
char buf;
if (read(0, &buf, 1)) return buf;
return '\0';
}
would become: (define _getchar ()
(declare static)
(return-type 'char)
(let ((buf (char)))
(if (read 0 (& buf) 1)
buf
"\0")))