def test_room_not_exist_errors(self):
     '''
     Тест на ошибки дверей
     '''
     print("\ntest_room_not_exist_errors")
     tree = create_tree('room a:' + "\n" + 'left a1' + "\n" + 'right a2' +
                        "\n" + 'up a3' + "\n" + 'down a4' + "\n" + 'end')
     print("4 errors: doors")
     self.assertTrue(analyse_all_errors(tree))
     print("test_room_not_exist_errors passed")
 def test_size_errors(self):
     '''
     Тест на ошибки размера комнаты
     '''
     print("\ntest_size_errors")
     tree = create_tree('room a:' + "\n" + 'height 12' + "\n" + 'width 12' +
                        "\n" + 'end')
     print("2 errors: size")
     self.assertTrue(analyse_all_errors(tree))
     print("test_size_errors passed")
 def test_doors_reuse_errors(self):
     '''
     Тест на ошибки дверей
     '''
     print("\ntest_doors_reuse_errors")
     tree = create_tree('room a:' + "\n" + 'right a' + "\n" + 'down b' +
                        "\n" + 'left b' + "\n" + 'end' + "\n" + 'room b:' +
                        "\n" + 'end')
     print("2 errors: dors already made in the room")
     self.assertTrue(analyse_all_errors(tree))
     print("test_doors_reuse_errors passed")
 def test_img_errors(self):
     '''
     Тест на ошибки изображений
     '''
     print("\ntest_img_errors")
     tree = create_tree('room a:' + "\n" + 'img "Bubbles.jp"' + "\n" +
                        'end' + "\n" + 'room b:' + "\n" +
                        'img "Bubblesjp"' + "\n" + 'end' + "\n" +
                        'room c:' + "\n" + 'img "Bubble.jpg"' + "\n" +
                        'end')
     print("3 errors: 2 - wrong image name, 1 - image not found")
     self.assertTrue(analyse_all_errors(tree))
     print("test_img_errors passed")
 def test_all(self):
     '''
     Тест проверяет все возможности анализатора
     '''
     print("\ntest_all")
     tree = create_tree('room a:' + "\n" + 'height 2000' + "\n" +
                        'width 2000' + "\n" + 'left a1' + "\n" +
                        'right a2' + "\n" + 'up a3' + "\n" + 'down a4' +
                        "\n" + 'img "Bubbles.jpg"' + "\n" + 'end' + "\n" +
                        'room a1:' + "\n" + 'img "Love.gif"' + "\n" +
                        'end' + "\n" + 'room a2:' + "\n" + 'end' + "\n" +
                        'room a3:' + "\n" + 'end' + "\n" + 'room a4:' +
                        "\n" + 'end')
     print("0 errors")
     self.assertFalse(analyse_all_errors(tree))
     print("test_all passed")
Example #6
0
def compile():
    '''
    Компилирует файл (собирает дерево и анализирует его, 
    используя модули scanner, parser, analyzer)
    В случае успешной компиляции возвращает собранное дерево
    В случае ошибки возвращает None
    '''
    print("compiling:")
    tokens = find_tokens()
    if tokens == None: 
        return None
    tree = build_tree(tokens)
    if tree == None:
        return None
    if analyse_all_errors(tree):
        return None
    print("compiled successfully")
    return tree