Question: I'm trying to convert this Python code to C++. How can that be done? from sys import * tokens = [] def __open_file__(filename): data =

I'm trying to convert this Python code to C++. How can that be done?

from sys import *

tokens = []

def __open_file__(filename): data = open(filename, "r").read() return data

def __lex__(filecontents): tok = "" filecontents = list(filecontents) for char in filecontents: tok += char if tok == " ": tok = "" elif tok == "T": tokens.append("T") tok = "" elif tok == "F": tokens.append("F") tok = "" elif tok == "~": tokens.append("~") tok = "" elif tok == "->": tokens.append("->") tok = "" elif tok == "^": tokens.append("^") tok = "" elif tok == "v": tokens.append("v") tok = "" elif tok == " ": tok = "" elif tok == ".": tokens.append(".") tok = "" else: print("error") return "error"

return tokens

def __Bool_stmt__(): if(__Imply_term__(s.pop())): return True else: return False

def __Imply_term__(current_token): if(__Or_term__(current_token) and __Imply_tail__(s.pop())): return True else: return False

def __Or_term__(current_token): if(__And_term__(current_token) and __Or_tail__(s.pop())): return True else: return False

def __And_term__(current_token): if(__Literal__(current_token) and __And_tail__(current_token)): return True else: return False

def __Imply_tail__(current_token): if(current_token == "->" and __Or_term__(s.pop()) and __Imply_tail__(s.pop())): return True elif(current_token == ""): return True else: return False

def __Or_tail__(current_token): if(current_token == "v" and __And_term__(s.pop()) and __Or_tail__(s.pop())): return True elif(current_token == ""): return True else: return False

def __And_tail__(current_token): if(current_token == "^" and __Literal__(s.pop()) and __And_tail__(s.pop())): return True elif(current_token == ""): return True else: return False

def __Literal__(current_token): if(__Atom__(current_token)): return True elif(current_token == "~" and __Literal__(s.pop())): return True else: return False

def __Atom__(current_token): if(current_token == "T"): return True elif(current_token == "F"): return True elif(current_token =="("): if(__Imply_term__(s.pop())): if(s.pop() == ")"): True else: False else: False else: print("error: expecting 'T', 'F', or '() '") return False

def __put_stack__(tokens): for i in reversed(tokens): s.push(i) else: return False

def __Literal__(current_token): if(__Atom__(current_token)): return True

class __Stack__: def __init__(self): self.items = []

def isEmpty(self): return self.items == [] def push(self, item): self.items.append(item)

def pop(self): return self.items.pop()

def size(self): return len(self.items)

def printstack(self): for items in reversed(self.items): print(items)

s = __Stack__()

def __run__(): filename = input("enter file name: ") data = __open_file__(filename) toks = __lex__(data) __put_stack__(toks) if(__Bool_stmt__): print("valid") else: print("invalid")

__run__()

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!