Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Парсер, который принимает на вход текстовый файл, содержащий один корневой узел, и построить в памяти древовидное представление данных.

Каждому узлу назначить целочисленный id. Затем слить данные в текстовый

файл такой струтуры: (id узла, id вышестоящего узла, имя узла, значение в

узле)

В случае наличия ошибок формата данных, выдавать сообщение вида "Неверный формат данных" и завершать работу.

Пример иерархической структуры:

shape = {

type = "tetrahedron"

vertices = {

point = { x = "1" y = "0" z = "0"

}

point= { x = "0" y = "1" z = "0" }

point ={ x = "0" y = "0" z = "1" }

point = { x = "1" y = "1" z = "1" }

}

color = { r = "0xFF" g = "0x00" b = "0x80" alpha = "0x80" }a="25"

}

Пример выходного файла:

(1, 0, shape, )

(2, 1, type, tetrahedron)

(3, 1, vertices, )

(4, 3, point, )

(5, 4, x, 1)

(6, 4, y, 0)

(7, 4, z, 0)

(8, 3, point, )

(9, 8, x, 0)

(10, 8, y, 1)

(11, 8, z, 0)

(12, 3, point, )

(13, 12, x, 0)

(14, 12, y, 0)

(15, 12, z, 1)

(16, 3, point, )

(17, 16, x, 1)

(18, 16, y, 1)

(19, 16, z, 1)

(20, 1, color, )

(21, 20, r, 0xFF)

(22, 20, g, 0x00)

(23, 20, b, 0x80)

(24, 20, alpha, 0x80)

(25, 1, a, 25)

Условие: Есть текстовый формат для хранения произвольных данных, имеющих иерархическую структуру. Синтаксис файла такой:

имя_узла – строка из букв, цифр, и символа '_', начинающаяся не с цифры

значение_узла – произвольная строка в двойных кавычках, не содержащая символов перевода строки и двойных кавычек

узел ::= имя_узла '=' (значение_узла | список )

список = '{' узел [узел ... ] '}'

5 лет назад
QWERASD
34 годаРоссия
5 лет в сервисе
Был
5 лет назад