С переменным успехом бизоню bison. Всё в нём замечательно, если не считать функции yyparse. Она читает stdin и парсит всё что туда попало. Но что делать если у меня stdin читает, например, readline? Или мне просто нужно разобрать строчку текста (которая уже лежит в памяти)?