Add memory profiling. Use a sync.Pool for lexer. Add benchmark numbers before and after using sync.Pool. Simplify assignUids only.