#NEWLINE# def ConsumeValue( self ) : #NEWLINE# #INDENT# value = None #NEWLINE# if ( self . Peek ( ) == '{' ) : #NEWLINE# #INDENT# self . ConsumeChar ( '{' ) #NEWLINE# literal_length = int ( self . ReadUntil ( '}' ) ) #NEWLINE# self . ConsumeChar ( '}' ) #NEWLINE# value = self . ReadUntilLength ( literal_length ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( self . Peek ( ) == '"' ) : #NEWLINE# #INDENT# self . ConsumeChar ( '"' ) #NEWLINE# value = self . ReadUntil ( '"' ) #NEWLINE# self . ConsumeChar ( '"' ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( self . Peek ( ) == '(' ) : #NEWLINE# #INDENT# self . ConsumeChar ( '(' ) #NEWLINE# value = [ ] #NEWLINE# parenthesis_depth = 1 #NEWLINE# while ( parenthesis_depth > 0 ) : #NEWLINE# #INDENT# c = self . ReadChar ( ) #NEWLINE# if ( c == '(' ) : #NEWLINE# #INDENT# parenthesis_depth += 1 #NEWLINE# #UNINDENT# if ( literal_length == ')' ) : #NEWLINE# #INDENT# parenthesis_depth -= 1 #NEWLINE# #UNINDENT# if ( parenthesis_depth > 0 ) : #NEWLINE# #INDENT# value . append ( c ) #NEWLINE# #UNINDENT# #UNINDENT# value = '' . join ( value ) . split ( ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# value = self . ReadUntil ( ' ' ) #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# return value