fix: do not sys.exit(), raise SyntaxError instead