import sys import ply.yacc as yacc from Cparser import Cparser from TypeChecker import TypeChecker from Interpreter import Interpreter if __name__ == '__main__': try: filename = sys.argv[1] if len(sys.argv) > 1 else "example.txt" input_file = open(filename, "r") except IOError: print("Cannot open {0} file".format(filename)) sys.exit(0) Cparser = Cparser() parser = yacc.yacc(module=Cparser) text = input_file.read() ast = parser.parse(text, lexer=Cparser.scanner) checker = TypeChecker() types_ok = checker.generic_visit(ast) #~ print(ast) if(types_ok): interpreter = Interpreter() interpreter.generic_execute(ast)