def _parse_val(stream):
logger.debug("<STR_LIT>")<EOL>while True:<EOL><INDENT>c = stream.read(<NUM_LIT:1>)<EOL>if c == "<STR_LIT:{>":<EOL><INDENT>val = _parse_dict(stream)<EOL>break<EOL><DEDENT>elif c == "<STR_LIT:[>":<EOL><INDENT>val = _parse_array(stream)<EOL>break<EOL><DEDENT>elif c == '<STR_LIT:">':<EOL><INDENT>val = stream.advance_past_string_with_gdb_escapes()<EOL>break<EOL><DEDENT>elif _DEBUG:<EOL><INDENT>raise ValueError("<STR_LIT>" % c)<EOL><DEDENT>else:<EOL><INDENT>print(<EOL>'<STR_LIT>'<EOL>% c<EOL>)<EOL>val = "<STR_LIT>"  <EOL><DEDENT><DEDENT>logger.debug("<STR_LIT>")<EOL>logger.debug("<STR_LIT:%s>", fmt_green(val))<EOL>return val<EOL>
Parse value from string
    returns:
        Parsed value (either a string, array, or dict)