Fix for #214, plus similar issues

As per #214, the following lines were previously accepted by the compiler, with the offending parts silently ignored:
```
[A] RIGHT [B] -> [A] [B]
[A] C [B] -> [A] [B]
[A] ... [B] -> [A] [B]
```
In effect, the compiler previously treated all of these as ```[A] [B] -> [A] [B]``` without complaining about the invalid tokens in the middle of the rules.

Now it complains.