CODE-0006 · gpt-5.6-terra (high)
def eval_expr(s):
    if not isinstance(s, str):
        raise ValueError("expression must be a string")

    pos = 0
    length = len(s)

    def skip_whitespace():
        nonlocal pos
        while pos < length and s[pos].isspace():
            pos += 1

    def parse_number():
        nonlocal pos
        start = pos
        has_digits = False
        has_decimal = False

        while pos < length and "0" <= s[pos] <= "9":
            pos += 1
            has_digits = True

        if pos < length and s[pos] == ".":
            has_decimal = True
            pos += 1
            while pos < length and "0" <= s[pos] <= "9":
                pos += 1
                has_digits = True

        if not has_digits:
            raise ValueError("invalid number")

        token = s[start:pos]
        try:
            return float(token) if has_decimal else int(token)
        except ValueError:
            raise ValueError("invalid number") from None

    def parse_primary():
        nonlocal pos
        skip_whitespace()

        if pos >= length:
            raise ValueError("expected operand")

        char = s[pos]

        if char == "(":
            pos += 1
            value = parse_expression()
            skip_whitespace()
            if pos >= length or s[pos] != ")":
                raise ValueError("mismatched parentheses")
            pos += 1
            return value

        if ("0" <= char <= "9") or (
            char == "." and pos + 1 < length and "0" <= s[pos + 1] <= "9"
        ):
            return parse_number()

        raise ValueError("expected number or parenthesized expression")

    def parse_unary():
        nonlocal pos
        skip_whitespace()

        if pos < length and s[pos] in "+-":
            operator = s[pos]
            pos += 1
            value = parse_unary()
            return value if operator == "+" else -value

        return parse_primary()

    def parse_term():
        nonlocal pos
        value = parse_unary()

        while True:
            skip_whitespace()
            if pos >= length or s[pos] not in "*/":
                return value

            operator = s[pos]
            pos += 1
            right = parse_unary()

            if operator == "*":
                value *= right
            else:
                if right == 0:
                    raise ValueError("division by zero")
                value /= right

    def parse_expression():
        nonlocal pos
        value = parse_term()

        while True:
            skip_whitespace()
            if pos >= length or s[pos] not in "+-":
                return value

            operator = s[pos]
            pos += 1
            right = parse_term()

            if operator == "+":
                value += right
            else:
                value -= right

    try:
        skip_whitespace()
        if pos >= length:
            raise ValueError("empty expression")

        result = parse_expression()
        skip_whitespace()

        if pos != length:
            raise ValueError("unexpected token")

        if isinstance(result, float) and result.is_integer():
            return int(result)
        return result
    except RecursionError:
        raise ValueError("expression is too deeply nested") from None