Implement self analyzing parser