#NEWLINE# def tokenCost( token ) : #NEWLINE# #INDENT# 'Calculate the bytecode size of a T2 Charstring token' #NEWLINE# tp = type ( token ) #NEWLINE# if issubclass ( tp , basestring ) : #NEWLINE# #INDENT# if ( token [ : 8 ] in ( 'hintmask' , 'cntrmask' ) ) : #NEWLINE# #INDENT# return ( 1 + len ( token [ 9 : ] ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( token in SINGLE_BYTE_OPS ) : #NEWLINE# #INDENT# return 1 #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return 2 #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if ( tp == tuple ) : #NEWLINE# #INDENT# assert ( token [ 0 ] in ( 'hintmask' , 'cntrmask' ) ) #NEWLINE# return ( 1 + len ( token [ 1 ] ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( tp == int ) : #NEWLINE# #INDENT# if ( ( - 107 ) <= token <= 107 ) : #NEWLINE# #INDENT# return 1 #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( ( 108 <= token <= 1131 ) or ( ( - 1131 ) <= token <= ( - 108 ) ) ) : #NEWLINE# #INDENT# return 2 #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return 3 #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if ( tp == float ) : #NEWLINE# #INDENT# return 5 #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# assert 0