'Parses arguments of an escape sequence.
All parameters are unsigned, positive decimal integers, with
the most significant digit sent first. Any parameter greater
than 9999 is set to 9999. If you do not specify a value, a 0
value is assumed.
.. seealso::
`VT102 User Guide <http://vt100.net/docs/vt102-ug/>`_
For details on the formatting of escape arguments.
`VT220 Programmer Reference <http://http://vt100.net/docs/vt220-rm/>`_
For details on the characters valid for use as arguments.'

def _arguments(self, char):

    if (char == u'?'):
        self.flags[u'private'] = True
    elif (char in [ctrl.BEL, ctrl.BS, ctrl.HT, ctrl.LF, ctrl.VT, ctrl.FF, ctrl.CR]):
        self.dispatch(self.basic[char], reset=False)
    elif (char == ctrl.SP):
        pass
    elif (char in [ctrl.CAN, ctrl.SUB]):
        self.dispatch(u'draw', char)
        self.state = u'stream'
    elif char.isdigit():
        self.current += char
    else:
        self.params.append(min(int((self.current or 0)), 9999))
        if (char == u';'):
            self.current = u''
        else:
            self.dispatch(self.csi[char], *self.params)
