Added null reference checks as well as exposed the ITreeBuilder interface in order to allow end-user devs to cache the parse tree generation