use generator to reduce memory usage
enable to find sub parser for last part