def main(): while True: if len(sys.argv) == 3: if sys.argv[1] == '-d': break else: print("usage is py -3 WAE.py -d p1.ram") exit() else: print("number of arguments is less") print("usage is py -3 WAE.py -d p1.ram") exit() filename = sys.argv[2] # filename = "p1.ram" with open(filename) as file_object: lines = file_object.readlines() tree = list() registers_list = [] for line in lines: if line != '\n': tree.append(parser.parse(line)) registers_list += populate(line) pprint(tree) registers = {registers_list[i]: 0 for i in range(0, len(registers_list))} init, instructions = instruction(tree) pprint(instructions) print("\nINIT VALUES: \n ", init) # print(registers) # print(tree) eval_expression(registers, instructions, init) exit()
def main(): while True: data = read_input() if data == 'exit;': break try: tree = parser.parse(data) except Exception as inst: print(inst.args[0]) continue print(tree) # inOrderTraversal(tree) if tree[0] == 'FV': print(free_variables(tree[1])) elif tree[0] == 'ALPHA': print(alpha(tree[1], tree[2])) elif tree[0] == 'substitute': print(substitution(tree[1], tree[2], tree[3])) else: while True: found, tree = beta_reduction(tree) if not found: break print("beta: ", tree) # print() tree = eval(tree) print("beta: ", tree)
def main(): filename = sys.argv[1] with open(filename) as fp: waes = fp.readlines() file = open(r"Driver.scala", 'a') lines = [ 'object Driver extends App { \n', '''import WAE._ ''', 'val d = Map[String,Double]() \n' ] for l in lines: file.write(l) for (idx, wae) in enumerate(waes): try: tree = parser.parse(wae) if tree is not None: exp = eval(tree) file.write('val e' + str(idx) + ' = ' + exp) file.write('\n') file.write('println(eval(e' + str(idx) + ',d))') file.write("\n \n") else: print("else") except Exception as abcd: print(abcd) break file.write('} \n') file.close()
def main(): while True: data = read_input() if data == 'exit;': break try: tree = parser.parse(data) except Exception as inst: print(inst.args[0]) continue print(tree)
def main(): while True: data = read_input() if data == 'exit;': break try: if parser.parse(data): print("ACCEPT: No Repeated With-Vars") else: print("REJECT: Repeated With-Vars") except Exception as inst: print(inst.args[0]) continue
def main(): while True: data = read_input() if data == 'exit;': break try: if parser.parse(data): print("ACCEPT: CAN EVALUATE") else: print("REJECT: CANNOT EVALUATE") except Exception as inst: print(inst.args[0]) continue
def main(): while True: data = read_input() if data == 'exit;': break try: tree = parser.parse(data) except Exception as inst: print(inst.args[0]) continue # print(tree) try: answer = eval_expression(tree) if answer == 'ERROR': print('\nEVALUATION ERROR\n') else: print('\nThe value is ' + str(answer) + '\n') except: pass
from WAEParser import parser # data = '{+ 1 2};' # data = '{+ x y};' data = "{with {{x 5}{y 3}} {+ x y}};" try: tree = parser.parse(data) except Exception as inst: print(inst.args[0]) print(tree) # ['with', [['x', ['num', 5.0]], ['y', ['num', 3.0]]], ['+', ['id', 'x'], ['id', 'y']]]