- if an parse error occurs, memory will be leaked--implement an allocator and do a non-recursive free if parse fails - do wide support string (?)