파서 생성기가 제한하는 문법에 메이기 싫어 파서 생성기를 쓰지 않는다는 점은 공감하지만, 그렇다고 파서 생성기가 사용자에게 특정 문법을 강요하고 있다고 주장하는 건 이상해요.

파서 생성기는 선형시간 파싱의 장점이 있는 LR문법 파싱 테이블 제작이 너무 어려워서 이를 돕기위해 나온거지, 파싱이 비결정적인 context-sensitive 문법이나 파싱이 언제 끝날지도 모르는 재귀적인 파서를 생성해주는건 파서 생성기 연구자/개발자들의 관심대상이 아닐 거에요.

따라서 파서 생성기는 비직관적인 LR LALR 문법을 맹신하고 강요하는 프로그램이 아니라 선형시간 파싱과 이를 위한 파싱 테이블 제작이라는 아주 어려운 문제를 푸는 도구로서 제 역할을 다하고 있다고 생각합니다.

현실에서 볼 수 있는 거의 모든 언어는 LL(1) 문법을 가지고 있어서 LR 파서를 쓰지 않아도 선형 시간 파싱이 가능합니다. (해당 언어에 선호되는 문법이 LL(1)이라는 뜻은 아닙니다.) 따라서 선형 시간 파싱을 위해서 LR 파서를 써야 하는데 파싱 테이블을 만들기 어렵기 때문에 생성기가 필요하다는 말씀은 선후관계가 뒤집힌 것입니다. 또한 파싱 테이블을 만드는 과정 자체가 본질적으로 복잡하지는 않습니다(알고리즘의 증명이 어렵죠).