def read(img: Union[str, PicHandler], path: str='D:\\Project\\') -> ElemBlock: if isinstance(img, str): ph = PicHandler(img, path=path) else: ph = img blocks = Parser.parse(ph.blocksOfPixels(), sensivity=4, merge='math') Parser.swap_coordinates(blocks) elemBlocks = [FormulaRecognizer.recBlock(block) for block in blocks] try: f = Formula(elemBlocks) except: return ElemBlock('', Position(0, 0, 0, 0), ok=False) print(f.texCode) #ph._show() return f.getFormula()
def visit_collectionaccess(self, node): collection = self.search_scopes(node.collection.value) key = self.visit(node.key) if not key: key = node.key.value return collection[key] def interpret(self, tree): return self.visit(tree) def visit_print(self, node): print(self.visit(node.value)) if __name__ == '__main__': from my_lexer import Lexer from my_parser import Parser from my_preprocessor import Preprocessor file = 'test.my' code = open(file).read() lexer = Lexer(code, file) parser = Parser(lexer) t = parser.parse() symtab_builder = Preprocessor(parser.file_name) symtab_builder.check(t) if not symtab_builder.warnings: interpreter = Interpreter(parser.file_name) interpreter.interpret(t) else: print('Did not run')
from lexer import Lexer from my_parser import Parser from codegen import CodeGen if __name__ == '__main__': fname = "input.hel" with open(fname) as f: text_input = f.read() lexer = Lexer().get_lexer() tokens = lexer.lex(text_input) codegen = CodeGen() module = codegen.module builder = codegen.builder printf = codegen.printf pg = Parser(module, builder, printf) pg.parse() parser = pg.get_parser() parser.parse(tokens).eval() codegen.create_ir() codegen.save_ir("output.hll")
def main(): with io.open("input_correct.txt", 'r') as fin: text = fin.read() lexer = Lexer(text) parser = Parser(lexer) parser.parse()