parse keyword metadata
initial unescape
throw ParserError class so it can be caught
add std tests
don't stack overflow on every comment