todo: POSIX yacc and prototypes