Парсер на С++
Парсер, который принимает на вход текстовый файл, содержащий один корневой узел, и построить в памяти древовидное представление данных.
Каждому узлу назначить целочисленный 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)
Условие: Есть текстовый формат для хранения произвольных данных, имеющих иерархическую структуру. Синтаксис файла такой:
имя_узла – строка из букв, цифр, и символа '_', начинающаяся не с цифры
значение_узла – произвольная строка в двойных кавычках, не содержащая символов перевода строки и двойных кавычек
узел ::= имя_узла '=' (значение_узла | список )
список = '{' узел [узел ... ] '}'
-
104 Здравствуйте! В данный момент как раз работаю над библиотекой парсерных комбинаторов, основанной на STL и libicu (для поддержки Юникода), который, однако, легко убрать с небольшим количеством правок. Специфичных для ОС расширений не использую. В качестве системы сборки использую CMake, но могу и meson или visual studio.
Правда, опыт парсинга не особо велик, хотя и есть: irc и ini можно распарсить регулярными выражениями, а для аргументов командной строки (внедрял их в irc бота) использовал pegjs.
Могу ответить в telegram @handicraftsman или по email [email protected]
-
274 24 3 сделаю на С++. Есть опыт парсеров на плюсах. Учусь на втором курсе. На первом учили с/с++. Буду рад сотрудничать!
-
461 41 1 Зделаю, пишите мне в телеграмм @mars_d , или тут на сайте, буду рад Вам помочь.
Актуальні фриланс-проєкти в категорії C та C++
Консультація та аудит поточного проєкту на Odoo 19 Community EditionШукаємо Odoo Developer — соло-розробника з досвідом розробки на Odoo 19 Community Edition, у тому числі за допомогою Claude Code. Нам потрібен спеціаліст, який має успішно реалізовані проєкти в Odoo та практичний досвід розробки з використанням Claude Code. Важливо: розглядаємо… C та C++, Javascript та Typescript ∙ 1 день 5 годин тому ∙ 5 ставок |
Створення або доопрацювання прошивки та логіки під три автономні LoRa-станції на базі ESP32.
5000 UAH
створення або доопрацювання прошивки та логіки під три автономні LoRa-станції на базі ESP32. Пристрої повинні піднімати Wi-Fi точку доступу, віддавати локальний сайт через браузер (HTTP), приймати текст та зображення в радіусі 5-10 км (плюс-мінус), зберігати дані (бажано на… C та C++, C# ∙ 1 день 7 годин тому ∙ 3 ставки |
Розробка ПЗ для Arduino (RF-модулі 3–7.5 ГГц, автоматичне сканування частот)Потрібно розробити систему на Arduino для автоматичного пошуку активного аналогового відеосигналу та автоматичного налаштування передавача на виявлену частоту.Планується використання трьох окремих приймально-передавальних модулів: 3000–4200 МГц; 4900–6000 МГц; 6100–7500… C та C++, Вбудовані системи та мікроконтролери ∙ 2 дні 6 годин тому ∙ 4 ставки |
Чорна Україна (RP-проект на базі MTA)
51 638 UAH
|
Інженер інфраструктури резидентних проксіМи будуємо мережу резидентних проксі з нуля — повністю власну, без сторонніх постачальників. Нам потрібен один винятковий мережевий інженер, щоб побудувати всю технічну основу. Що ви будете будувати: - Android фоновий SDK, який маршрутизує проксі-трафік через пристрої… C та C++, DevOps ∙ 8 днів 2 години тому ∙ 13 ставок |