def parse_exp7(lexer): exp = ExpParser.parse_exp6(lexer) while lexer.look_ahead() == TokenKind.OP_BAND: line, op, _ = lexer.get_next_token() bor = lua_exp.BinopExp(line, op, exp, ExpParser.parse_exp8(lexer)) exp = Optimizer.optimize_bitwise_binary_op(bor) return exp
def parse_exp6(lexer): exp = ExpParser.parse_exp5(lexer) if lexer.look_ahead() in (TokenKind.OP_SHL, TokenKind.OP_SHR): line, op, _ = lexer.get_next_token() shx = lua_exp.BinopExp(line, op, exp, ExpParser.parse_exp5(lexer)) exp = Optimizer.optimize_bitwise_binary_op(shx) else: return exp return exp