Steam Roller • We’re gonna be rolling machines.

    In this book we used to do all the parsing, but in this appendix we’re going to replace with our own hand rolled parser. The choice to use has by far been the main source of complaints by readers of this book, and before we dive into the details of hand-rolling I want to talk about some of the reasons I decided on using a parsing library in the first place.

    Another reason is that it gives new programmers a chance to learn how to use a library. It gets them comfortable early on with weird interfaces, and other peoples’ code.

    And finally, perhaps most importantly, using a library for the parsing allowed me to delay the topics of memory management and pointers for as long as possible - by which point readers should be much more comfortable with the C constructs they’d encountered so far.

    Can I do this if I’ve not finished the book?

    If you’ve not completed all the chapters of this book it is probably not a good idea to attempt this appendix. It may be possible to complete this appendix if you’re already past , but if you’re not completed this chapter already it might not make much sense. Sorry!