I didn't roll my own parser generator, I used LPeg: http://www.inf.puc-rio.br/~roberto/lpeg/
It's a great library, I highly recommend it.
I've assembled a few parsers using various tools, and I must say PEGs are my favorite. They are very flexible and performance is comparable. (even CoffeeScript 2.0 is being written with a PEG.)
You can check out the guts of the parser here: https://github.com/leafo/moonscript/blob/master/moonscript/p...