You can't parse context-free or context-sensitive
languages with regular expressions
I didn't say that.Also, to add to your point, current regexp libraries have capabilities that far exceed the concept in the formal languages theory. Features like capturing buffers or look-ahead assertions cannot describe a finite-state machine.
Also, Perl has had support for recursive regular expressions. Perl 5.10 even has support for recursive capture buffers.
To be able to produce a grammar specification
for the parser generator you need to understand
formal grammars
IMHO, that's the same as saying that in order to be a programmer then you need to know lots of math, which is in general bullshit. Even before the formal theory was available, people have been building compilers the good-old fashioned way - by writing top-down LL(k) parsers, without necessarily having a name for this technique.But I also said that one should remember some basics from its theory of computation class, as it is helpful to know what a pushdown automaton is and the difference between it and a finite-state machine.
All of this is vastly more involved than just
anding regular expressions
It involves functions calling each other, sometimes recursively and loops and switches and remembering where you are in the text and doing repetitive transformations. It's as if you're doing real programming. You probably meant parser generator, parser combinator
is a different thing
No, I meant parser combinator.