def t_NUMBER(self, t):
if re.match(r'<STR_LIT>',t.value):<EOL><INDENT>multiplyer = <NUM_LIT:1><EOL>try:<EOL><INDENT>suffix = (t.value[-<NUM_LIT:2>:]).lower()<EOL>if suffix in ['<STR_LIT>']:<EOL><INDENT>multiplyer = <NUM_LIT><EOL><DEDENT>elif suffix in ['<STR_LIT>']:<EOL><INDENT>multiplyer = <NUM_LIT>*<NUM_LIT><EOL><DEDENT>elif suffix in ['<STR_LIT>']:<EOL><INDENT>multiplyer = <NUM_LIT>*<NUM_LIT>*<NUM_LIT><EOL><DEDENT>elif suffix in ['<STR_LIT>']:<EOL><INDENT>multiplyer = <NUM_LIT>*<NUM_LIT>*<NUM_LIT>*<NUM_LIT><EOL><DEDENT>elif suffix in ['<STR_LIT>']:<EOL><INDENT>multiplyer = <NUM_LIT>*<NUM_LIT>*<NUM_LIT>*<NUM_LIT>*<NUM_LIT><EOL><DEDENT>if multiplyer > <NUM_LIT:1>:<EOL><INDENT>t.value = t.value[:-<NUM_LIT:2>]<EOL><DEDENT><DEDENT>except:<EOL><INDENT>pass<EOL><DEDENT>try:<EOL><INDENT>f = float(t.value)<EOL>try:<EOL><INDENT>e = int(t.value)<EOL><DEDENT>except ValueError:<EOL><INDENT>e = f<EOL><DEDENT>if (e == f):<EOL><INDENT>t.value = multiplyer*e<EOL><DEDENT>else:<EOL><INDENT>t.value = multiplyer*f<EOL><DEDENT><DEDENT>except ValueError:<EOL><INDENT>_LOGGER.error("<STR_LIT>" % t.value)<EOL>t.value = <NUM_LIT:0><EOL><DEDENT><DEDENT>else:<EOL><INDENT>t.type = '<STR_LIT>'<EOL><DEDENT>return t<EOL>
r'(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?(kb|gb|mb|tb|pb|Kb|Gb|Mb|Tb|Pb)?