'Print (to stderr) a warning message tied to the current logical
line in the current file.  If the current logical line in the
file spans multiple physical lines, the warning refers to the
whole range, eg. "lines 3-5".  If \'line\' supplied, it overrides
the current line number; it may be a list or tuple to indicate a
range of physical lines, or an integer for a single physical
line.'

def warn(self, msg, line=None):

    sys.stderr.write((('warning:    ' + self.gen_error(msg, line)) + '\n'))
