LINUX.ORG.RU

посоветуйте откуда взять парсер конфигов под BSD лицензией для С


1

0

Нужен парсер конфигов для голого С с лицензией BSD или public domain.

Чтобы понимал секции (как в win.ini) и кАмменты. Сам синтакс не обязан быть как в win.ini, но чтобы секции были обязательно!

Не подскажете, откуда такой можно взять? Лень писать код лишний.

Спасибо заранее!

anonymous

есть linconfig, но оно под gpl

theserg ★★★
()


дядь ты здивашься да?! этот "парсер" занимает ровно 150 строк и пишется на коленке "с секциями и каментами" меньше чем за час всё на том же C.

ps: OSS - это всё конечно здорово, но нельзя же быть до такой то степень ленивым, а?

// wbr

klalafuda ★☆☆
()

> Не подскажете, откуда такой можно взять? Лень писать код лишний.

а for (i = 0; i < 10; i++) писать не лень? это же так много если вдуматься! тем более, очевидно, что уже тысячи и тысячи программистов по всему свету делали ЭТО и не раз so должно быть уже готовое generic решение. желательно под BSD.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

это у тебя врождённое или так потрепался?

может ещё и xml парсеры писать: там ведь "всего 7 правил".

>вету делали ЭТО и не раз so должно быть уже готовое generic решение. желательно под BSD.

ты не поверишь, но почти это уже давно сделали. итераторами называются.

по делу: http://www.hyperrealm.com/libconfig/libconfig.html - не бсд, а lgpl - может подойдёт?

Pi ★★★★★
()
Ответ на: комментарий от Pi

> это у тебя врождённое или так потрепался?

нет, это конечно же так, потрепаться.
серьёзно на это вопрос отвечать просто невозможно.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

ну почему же? уж лучше человек спросит и узнает о существовании либы в 20 килов, нежели приделает к хелоуворду ксмл-парсер в Н мегов :)

Pi ★★★★★
()
Ответ на: комментарий от klalafuda

Согласен, писать с нуля свой - часа 2-3 на написание и отладку (это же С, а не С++ - свои списки, хэш-таблицы надо будет реализовывать), плюс немного нервов, переживаний.

Только зачем я их буду тратить если есть готовое? А эти 3 часа лучше погуляю.

В конце концов, я могу за эти 3 часа деньги зарабатывать на других проектах (30 баксов в час сейчас получаю).

anonymous
()
Ответ на: комментарий от anonymous

> Согласен, писать с нуля свой - часа 2-3 на написание и отладку (это же С, а не С++ - свои списки, хэш-таблицы надо будет реализовывать), плюс немного нервов, переживаний.

граждане, мы загружаем плоский INI файл. ну откуда тут списки и хешы, а? давайте тогда уже еще и btree навернем для красоты.

тривиальный парсер, который по мере обнаружения секций и элементов вызывает пользовательские калбаки. все. кода на C ровно на 100..150 строк.

> Только зачем я их буду тратить если есть готовое? А эти 3 часа лучше погуляю.

прекрасно. со вчерашнего дня прошло уже 24 часа. за это время вы нашли готовое решение под BSD лицензией или будете и дальше ждать у моря погоды?

> В конце концов, я могу за эти 3 часа деньги зарабатывать на других проектах (30 баксов в час сейчас получаю).

надеюсь, за простои вам платят? в противном случае, при таком подходе это выливается в 3 бакса в час а то и меньше.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

У мну есть красивый, самописаный и небольшой парсер. Собирающийся и славно работающий под dos, dos32, os/2, w32, linux/freebsd и netware. Но меня жабит релизить его под BSD лицензией. Или GPL, или могу продать топикстартеру. Я думаю $200 будет справедливо (3 часа моей работы по $30 плюс немножко сверху за то что топикстартер свою софтину потом продаст) dmt2000()list.ru

anonymous
()
Ответ на: комментарий от anonymous

Вдогонку. Двухпроходный красивый парсер с поддержкой переменных на trie деревьях я тоже для души помница писал... Только он на pascal :-) Совместимо с bp6 и bp7 (все таргеты), fpc, TMT и VP 2 (os2/w32 targets). Опять-же или GPL или продается по вышеуказаному адресу.

anonymous
()
Ответ на: комментарий от klalafuda

> граждане, мы загружаем плоский INI файл. ну откуда тут списки и хешы, а? давайте тогда уже еще и btree навернем для красоты.

Мне надо наследование из секций иметь (есть секция defaults где смотрится все, чего не найдено в произвольной секции). С коллбэками будет гемор.

> прекрасно. со вчерашнего дня прошло уже 24 часа. за это время вы нашли готовое решение под BSD лицензией или будете и дальше ждать у моря погоды?

У меня проектов много, поэтому простоя у меня нет.

> по делу: http://www.hyperrealm.com/libconfig/libconfig.html - не бсд, а lgpl - может подойдёт?

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

> У мну есть красивый, самописаный и небольшой парсер. Собирающийся и славно работающий под dos, dos32, os/2, w32, linux/freebsd и netware. Но меня жабит релизить его под BSD лицензией. Или GPL, или могу продать топикстартеру. Я думаю $200 будет справедливо (3 часа моей работы по $30 плюс немножко сверху за то что топикстартер свою софтину потом продаст) dmt2000()list.ru

Пасибо, я лучше откуда-нить его выдеру (из bsd софта) за полчаса тогда. Плюс мне заказали разработку модуля, поэтому покупать мне придется за свои деньги.

> Посмотри libiniparser - лицензия MIT http://ndevilla.free.fr/iniparser/

Пасибо огромное!!! Это ОНО!!!

anonymous
()

Очень понравилась библиотека spirit (в составе boost) Если ее освоить - можно самому писать парсеры на С++ оочень быстро. Парсер для ини-файлов на нем сделал. описательная часть заняла строк 20 С++.

В томже boost`е есть, кажется, готовый парсер для С. Лицензия для буста ни к чему особо не обязывает.

Ещё есть библиотеки flex/bison, могущие генерить программу на С++ по заданному шаблону, но, по моему, они морально устарели.

ierton ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.