Нужно перевести логический калькулятор с Python на С++

нужна срочная помощь перевести код с Python в C++

Это калькулятор логических выражений,поддерживающий операции (скобок,и,или,отрицание,ввод переменных)

def ob():
    global res
    global lv
    global j
    if (lv[j]>='a' and lv[j]<='z'):
        t = input(lv[j]+"=")
        j += 1
        return int(t)
    elif (lv[j]=='0' or lv[j]=='1'):
        t = int(lv[j])
        j += 1
        return t
    elif (lv[j]=='('):
        t = int(v())
        j += 1
        if (lv[j-1]!=')'):
            print("Синтаксическая ошибка")
        else:
            return t


def mint():
    global res
    global lv
    global j
    t = ob()
    while(j<len(lv)):
        if (lv[j]=='&'):
            j += 1
            s = ob()
            t=t*s
        else:
            break
    return t


def v():
    global lv
    global res
    global j
    t = ob()
    if lv[j]=='^':
        otr = 1
        j += 1
    else:
        otr = 0
        j += 1
    t = mint()
    if otr ==1:
        t=(t+1)%2
    while(j<len(lv)):
        if (lv[j]=='+'):
            j+=1
            if mint()==1:
                t=1
        else:
            break
    return t


j = 0
lv = input("Введите логическое выражение:")
res = v()
print(res)

Начал пробовать сам,но не знаю как сделать в соответсвии python и чтоб работало. вот что накидал:

#include <iostream>
#include<string>
using namespace std;

string lv;
int j = 0;
int res;



int ob()
{
    t = ob();
    if (lv[j] >= 'a' and lv[j] <= 'z')
    {
        cout << "=";
        t = cin >> lv[j] ;
        j += 1;
        return int(t);
    }
    else if(lv[j] == '0' or lv[j] == '1')
    {
        t = int(lv[j]);
        j += 1;
        return t;
    }
    else if (lv[j] == '(')
    {
        t = int(v());
        j += 1;
        if (lv[j - 1] != ')')
        {
            cout << "Синтаксическая ошибка" << endl;
        }
        else
        {
            return t;
        }
    }
}


int mint()
{
    t = ob();
    while (j < lv.length())
    {
        if (lv[j] == '&')
        {
            j += 1;
            s = ob();
            t = t * s;
        }
        else
        {
            break;
        }
        return t;
    }

}




int v() 
{
    t = ob();
    int otr = -1;
    if (lv[j] == '^')
    {
        otr = 1;
        j += 1;
    }
    else
    {
        otr = 0;
        j += 1;
        t = mint();
    }
    if ( otr == 1) 
    {
        t = (t + 1) % 2;
    } 
     while (j < lv.length())
     {
         if (lv[j] == '+')
         {
             j += 1;
             if (mint() == 1)
             {
                 t = 1;
             }
         }
         else
         {
             break;
         }
         return t;       
     }
           
}

int main()
{

    cout << ("Введите логическое выражение:");
    cin >> lv;
    res = v();
    cout << (res);
}

Ответы (0 шт):