Should probably do this after the parsing step, and throw an error if there is no `replacePart` and `lastSubstitute` is null.