+ def __init__(self, message, lineno, expected=None):
+ if expected:
+ if isinstance(expected, (tuple, list)):
+ exp = ' (expected %s or %s)' % (', '.join(expected[:-1]), expected[-1])
+ else:
+ exp = ''
+
+ msg = '%s%s at line %d' % (message, exp, lineno)
+
+ SyntaxError.__init__(self, msg)