def _parse_code(code):
parsed_code = []
while len(code):
next_token, code = CAM._get_next_token_new(code)
parsed_code.append(next_token)
if next_token == u'?' or next_token == 'Y':
arg, code = get_term_in_brackets(code)
parsed_code.append(CAM._parse_code(arg))
elif next_token == '\'':
arg = int(UnicodeHack(re.search(CAM.nums_re, code).group()))
parsed_code.append([arg])
length = int(log10(abs(arg))) + 1 if arg != 0 else 1
code = code[length if arg >= 0 else length + 1:]
elif next_token == 'br':
args, code = get_term_in_brackets(code, remove_brackets=False)
arg1, arg2 = parse_args_in_brackets(args)
parsed_code.append([CAM._parse_code(arg1), CAM._parse_code(arg2)])
return parsed_code[::-1]
评论列表
文章目录