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

Парсер на С++

закрыт без выполнения


Парсер, который принимает на вход текстовый файл, содержащий один корневой узел, и построить в памяти древовидное представление данных.
Каждому узлу назначить целочисленный 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)

Условие: Есть текстовый формат для хранения произвольных данных, имеющих иерархическую структуру. Синтаксис файла такой:
имя_узла – строка из букв, цифр, и символа '_', начинающаяся не с цифры
значение_узла – произвольная строка в двойных кавычках, не содержащая символов перевода строки и двойных кавычек
узел ::= имя_узла '=' (значение_узла | список )
список = '{' узел [узел ... ] '}'



  1. 1 день300 ₴
    Дмитрий
    Дмитрий Кузнецов
    186     3  0

    Могу сделать. Есть опыт написания программ на С++. Связь Телеграм dimaprogr.

    Украина Одесса | 22 сентября в 10:53 |
  2. 1 день500 ₴
    Андрей
    Андрей Князев
    507     23  1

    Зделаю, пишите мне в телеграмм @mars_d , или тут на сайте, буду рад Вам помочь.

    Польша Lublin | 22 сентября в 11:08 |
  3. 1 день1 500 ₽
    Вячеслав
    Вячеслав Помощь
    126     4  3

    Добрый день. Могу написать требуемую программу в кратчайшие сроки.

    Россия Яя | 22 сентября в 11:21 |
  4. 2 дня3 000 ₽
    Anton
    Anton Kravtsov
    644     10  0

    Могу сделать для вас консольное приложение на C++ (портируемое, с использованием STL, комментарии на русском или английском).
    Результаты: исходный код на C++, собранное приложение для Windows, проект для VS2017 (если необходимо).

    Россия Россия | 22 сентября в 11:27 |
  5. 1 день550 ₴
    Сергей
    Сергей Черевичко
    1230   проверен    23  0

    Добрый день, Олег
    С удовольствием выполню Вашу задачу на языке C++.
    Имею профессиональный стаж на данном языке свыше 5 лет.

    Срок выполнения: сегодня до 00:00 по московскому времени

    Преимущества работы со мной:
    ✓ Хороший стиль кода (комментарии обеспечены благодаря программированию с использованием псевдокода)
    ✓ Гарантия на выполненную работу 2 недели. Если вы нашли ошибку в программе в течение 2 недель после завершения проекта, напишите мне и я ее исправлю как можно скорее
    ✓ Лояльно отношусь к незначительным изменениям в проекте в процессе работы, если они не очень большие (зачастую сам предлагаю небольшие коррективы, улучшающие конечный продукт)
    ✓ Доступен практически 24/7

    Буду рад сотрудничеству,
    Сергей

    Россия Санкт-Петербург | 22 сентября в 13:16 |
  6. 1 день200 ₴
    Oleg
    Oleg Zadorozhnyi
    335     2  1

    сделаю на С++. Есть опыт парсеров на плюсах. Учусь на втором курсе. На первом учили с/с++. Буду рад сотрудничать!

    Украина Киев | 22 сентября в 13:28 |
  7. 3 дня3 000 ₽
    Максим
    Максим Титович
    606     15  0

    Доброго времени суток.
    Посмотрел ваше задание - готов взяться за него, опыт в подобных проектах.

    Выполню в срок, качество гарантируется!

    Обращайтесь - обсудим все детали и будим работать!

    Беларусь Минск | 22 сентября в 16:17 |
  8. 2 дня1 500 ₽
    Николай
    Николай Ильюшин
    267   

    Здравствуйте! В данный момент как раз работаю над библиотекой парсерных комбинаторов, основанной на STL и libicu (для поддержки Юникода), который, однако, легко убрать с небольшим количеством правок. Специфичных для ОС расширений не использую. В качестве системы сборки использую CMake, но могу и meson или visual studio.

    Правда, опыт парсинга не особо велик, хотя и есть: irc и ini можно распарсить регулярными выражениями, а для аргументов командной строки (внедрял их в irc бота) использовал pegjs.

    Могу ответить в telegram @handicraftsman или по email [email protected]

    Украина Киев | 22 сентября в 20:57 |