Lexer returns NULL on EOF rather than special token, and multi-digit integers are supported.
Example now includes multi-digit integer
Added cleanup of allocated memory.