Пример #1
0
    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()
Пример #2
0
    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')
Пример #3
0
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")
Пример #4
0
Файл: main.py Проект: petoc96/sj
def main():
    with io.open("input_correct.txt", 'r') as fin:
        text = fin.read()
    lexer = Lexer(text)
    parser = Parser(lexer)
    parser.parse()