Changed the source of data from a struct to a Reader

- This would allow greater flexibility to construct the parser from.
  With this change parser could theoretically accept files, buffers,
  etc.