Further exception handling for SugarCane. Now we'll attempt to peek and
produce errors earlier, so that we get more context as to why they
happened (instead of making them spawn when matching tokens).