""" =============================================================================== ENGR 13300 Fall 2023 Program Description This is the function that parses the expression. It goes through the expression, and produces a list of 'tokens', where each token represents a part of the expression. For example, '3 + 2' would yield the tokens '3', '+' and '2'. It then returns the list of tokens. Assignment Information Assignment: Individual Project Author: Aadhavan Srinivasan, srini193@purdue.edu Team ID: LC3 - 19 Contributor: Name, login@purdue [repeat for each] My contributor(s) helped me: [ ] understand the assignment expectations without telling me how they will approach it. [ ] understand different ways to think about a solution without helping me plan my solution. [ ] think through the meaning of a specific error or bug present in my code without looking at my code. Note that if you helped somebody else with their code, you have to list that person as a contributor here as well. ACADEMIC INTEGRITY STATEMENT I have not used source code obtained from any other unauthorized source, either modified or unmodified. Neither have I provided access to my code to another. The project I am submitting is my own original work. =============================================================================== """ def parse(expr): opers = ['+', '-', '*', '/', '='] num_par = 0 tokenized = [] temp_string = "" index = 0 while index < len(expr): if expr[index] in opers: tokenized.append(expr[index]) index += 1 elif expr[index].isdigit() or expr[index] == '.': while (index < len(expr)) and (expr[index].isdigit() or expr[index] == '.'): temp_string += expr[index] index += 1 tokenized.append(temp_string) elif expr[index] == '(': num_par = 1 temp_string += expr[index] index += 1 while index < len(expr) and num_par != 0: temp_string += expr[index] if expr[index] == '(': num_par += 1 if expr[index] == ')': num_par -= 1 index += 1 tokenized.append(temp_string) elif expr[index].isalpha(): # If you encounter a variable temp_string += expr[index] index += 1 while index < len(expr) and expr[index].isalpha(): temp_string += expr[index] index += 1 tokenized.append(temp_string) else: index += 1 temp_string = "" return tokenized