Я тоже часто сталкиваюсь с задачей разбора текстовых файлов данных - типа текстового структурированного представления данных, которое вы использовали до того, как "каждый" использовал XML - это своего рода отраслевой стандарт. (Их слишком много).
В любом случае основная задача - всегда брать текстовый файл и набивать то, что там есть в какой-то структуре данных, чтобы наш код на С++ мог что-то сделать с информацией.
Теперь я выполнил несколько простых (и ох, таких багги) парсеров вручную, и я немного презираю больше.: -)
Итак - мне было интересно, что такое современное состояние, когда я хочу "разбор" структурированных текстовых данных в представление в памяти (подумайте: привязка данных XML для произвольного языка).
То, что я нашел до сих пор, было "Какой генератор парсера вы порекомендовали", но я не уверен, что после генератора парсера (например, ANTLR).
Очевидные кандидаты кажутся pegtl и Boost. Spirit, но оба они кажутся довольно сложными (но, по крайней мере, они на языке), и в прошлый раз, когда я попробовал Spirit, ошибки компилятора заставили меня с ума сойти. (И pegtl нуждается в компиляторе, совместимом с С++ 11, который по-прежнему является проблемой (VС++ 2005).)
Итак, я пропустил более простое решение для получения чего-то вроде
/begin COMPU_METHOD
DEC " Decimal value"
RAT_FUNC
"%3.0"
"dec"
COEFFS 0 1.000000 0.000000 0 0.000000 1.000000
/end COMPU_METHOD
в С++ datastructure? (Это просто произвольный пример того, как может выглядеть часть такого файла. Для этого формата я мог (и, вероятно, должен) купить библиотеку для ее анализа, поскольку он достаточно распространен - это не относится ко всем форматам я встреча.)
- или я должен просто пойти на сложность, скажем Boost.Spirit?