I used yacc, lex, and cc in the 80's on Onyx and Xenix machines. It was a painful way to write applications. GCC and Turbo C came out around '86-87, and I haven't directly touched yacc or lex since :)
Bad pre-compiler, but pretty good at what it does, if you take it literally.
When you see 'x', replace it with 'y'.
That part works great.
Good that they leave stubs back to things like yacc and grep and ls for us old guys that just type that at a prompt.
Because yacc is now bison, grep is now egrep, and ls? Maybe it's still ls, but they change the stuff behind the delimiter.
/johnny