I realize this mirrors `makeGrammar`, but what do you think about making `bindings` optional and therefore moving it to after `input_stream`?

`input_stream` should probably be `inputStream` anyway, since everything else is camelCase.

Also, I'm unsure about the name `end`, but I'm at a loss coming up with anything better. `closeOnEOF`?