Adding collapsible nodes to SPPF to support parse tree preserving grammar transformation