def set_parse_globals(p, extra_str=""): global prodname_log lexer = p.lexer if type(lexer) == LexWithPrev: lexer = lexer.lexer c, cid = [lexer.comment, lexer.comment_id] if c != None and cid-1 != glob.g_comment_id and c != "": glob.g_comment_id = cid-1 glob.g_comment = c glob.g_comment_line = lexer.comments[lexer.comment_id-1][1] glob.g_tried_semi = False if (p.lexer.cur != None): glob.g_line = p.lexer.cur.lineno else: glob.g_line = p.lineno if type(glob.g_line) != int: glob.g_line = glob.g_line(0) if type(glob.g_line) != int: glob.g_line = glob.g_line(0) l = 0 for i in range(len(p)): l = max(l, p.lexpos(i)) if l == 0 and p.lexer.cur != None: l = p.lexer.prev_lexpos - p.lexer.token_len(p.lexer.cur) - 1 glob.g_lexpos = l p.lexpos2 = l
def set_parse_globals_error(p): c, cid = [p.lexer.comment, p.lexer.comment_id] if cid != glob.g_comment_id: glob.g_comment_id = cid if (p.lexer.cur != None): glob.g_line = p.lexer.cur.lineno else: glob.g_line = p.lineno if type(glob.g_line) != int: glob.g_line = glob.g_line(0) if type(glob.g_line) != int: glob.g_line = glob.g_line(0)