Собственно, мне нечего больше сказать про генератор грамматик, который для определения конца инпута использует эксепшены.