diff --git a/main.py b/main.py index f76ad3c..df76eca 100644 --- a/main.py +++ b/main.py @@ -5,6 +5,7 @@ from lexical.lexical import Lexical from syntax.syntax import Syntax from syntax.syntax import LL1Generator import sys +from Optimizer.optimizer import optimize, output_ir_str from semantic.rule import symbol_table_pool @@ -48,6 +49,15 @@ if lexical_success: for code in syntax.get_result().root.code: i += 1 print(i, ' \t', code) + + quads = [tuple(map(str.strip, str(item).strip("()").split(","))) for item in syntax.get_result().root.code] + + optimized_quads = optimize(quads) + + print() + print(f"优化后的四元式:\t") + print(output_ir_str(optimized_quads)) + else: print('错误原因:\t', syntax.get_error().info) else: