redesigned SyntaxError to provide machine-accessible information about the cause of errors. This also resulted in a small tweak to some of the error messages which are generated.
made similar changes to RuntimeError.