boost::spirit не на английском

7489098

помогите найти литературу по библиотеке boost::spirit не на английском! Такую, чтобы ботать можно было. Может, кто знает книгу какую с непаленым названием? В интернете нашел только прилагаемую к библиотеке документацию на английском.

agent007new

На сколько мне известно, по конкретно бустовым библиотекам, есть только книги по БГЛ и МПЛ. По Спириту, вроде как, нет. Но если вдруг обнаружишь что-нить (не обязательно на русском) кроме официальной доки - скинь, плиз

Werdna

помогите найти литературу по библиотеке boost::spirit не на английском! Такую, чтобы ботать можно было. Может, кто знает книгу какую с непаленым названием? В интернете нашел только прилагаемую к библиотеке документацию на английском.
Не используй буст спирит, я его использовал, но теперь — ни за что.
проще написать самому парсер, если случай простой. Если случай сложный — лучше использовать что-то типа lex/yacc.
Если есть вопросы — я очень хорошо знаю эту библиотеку, писал очень много на ней. Но не рекомендую.

tima56

но теперь — ни за что
Если не секрет - можешь рассказать, в чем причина?
А то я ее ботать собирался, а теперь вот сомневаюсь ).

Werdna

Если не секрет - можешь рассказать, в чем причина?
Ты сейчас напишешь, а кто исправить сможет? Синтаксис в стиле того как описывают языки специалисты по автоматам — это хорошо, но в плюсах это тебе что даст? Что кроме того, что ты своему начальнику покажешь как ты умеешь палочки и галочки ставить? Если тебе нужно показать виртуозное владение плюсами — да, спирит восхитителен. Если сделать работающее ПО — он просто не нужен.
Во-вторых мне не нравится скорость. Он ведь медленный, особенно если конструкторы все вызывать в реалтайме.
Опять же, ты не сказал какая у тебя задача. Если упражняешься — изучай, если в раочий проект я бы просто не тащил весь буст ради такой фигни.

tima56

Опять же, ты не сказал какая у тебя задача. Если упражняешься — изучай, если в раочий проект я бы просто не тащил весь буст ради такой фигни.
Упражняюсь ). Ну и еще пишу проги, которые кроме меня никто исправлять не будет. В рабочие проекты уже давно забил тащить что-либо стороннее - обычно начальство бывает против.

agent007new

Да ладно, спирит - это сила. Я вот на нем на работе наш внутренний скриптовый язык написал. Если еще с фениксом разобраться, то вообще получается офигенно

agent007new

В рабочие проекты уже давно забил тащить что-либо стороннее - обычно начальство бывает против.
У меня, кстати, начальство тоже было против спирита - хотел на яке написать. А я за выходные дома написал некоторую работающую основу интерпретатора и мне разрешили на спирите его наваять

Werdna

У меня, кстати, начальство тоже было против спирита - хотел на яке написать. А я за выходные дома написал некоторую работающую основу интерпретатора и мне разрешили на спирите его наваять.
Эх, молодость, молодость... Ты знаешь, я тоже когда-то допустил такую ошибку.
Надо на Яке писать, спирит тормозной. Если скрипты мелкие и их мало — работать будет, а если много и большие — работать не будет.
Топикстартеру — изучи, как упражнение по плюсам Спирит зачОтный.

okunek

впервые соглашусь с пеанистом :)
если писать серьезно что-либо на спирите, то это во-первых будет собираться полгода, во-вторых информативность ошибок, которые будут возникать во время компиляции (да если еще и феникс примешать) - практически нулевая и вообще это велосипед, вобщем ничего хорошего, кроме как хорошего примера силы языка, в спирите нету

slonishka

пианист в этом топеге впервые на моей памяти не поленился спокойно, без нервов выдвинуть свои аргументы. =)

agent007new

Эх, молодость, молодость... Ты знаешь, я тоже когда-то допустил такую ошибку.
Надо на Яке писать, спирит тормозной. Если скрипты мелкие и их мало — работать будет, а если много и большие — работать не будет.
Здесь этой ошибки я не совершил: мой мега-язык предназначен для получения и обработки инфы по сети, поэтому какой-бы тормозной спирит не был, по сравнению с сетевыми функциями он просто летает.

Werdna

какой-бы тормозной спирит не был, по сравнению с сетевыми функциями он просто летает.
Сетевый функции вообще не тормозят, они в ожидании ждут. Если закачивать и обрабатывать много, то процессор можно занять очень сильно. А закачивать можно в несколько потоков/процессов.

freezer

Ты сейчас напишешь, а кто исправить сможет? Синтаксис в стиле того как описывают языки специалисты по автоматам — это хорошо, но в плюсах это тебе что даст?
а что, EBNF - это нынче для людей большая сложность?
Вообще, у меня к spirit+phoenix была только одна проблема: при более-менее сложной грамматике MSVC 8.0 стала с internal compiler error вылетать :))

Werdna

Вообще, у меня к spirit+phoenix была только одна проблема: при более-менее сложной грамматике MSVC 8.0 стала с internal compiler error вылетать :))
Не знаю, у гнушного компилятора таких проблем не наблюдалось.
По поводу спирита — использовать можно, но смысла нет. Можно просто написать на Яке.

freezer

По поводу спирита — использовать можно, но смысла нет. Можно просто написать на Яке.
Чтобы просто использовать YACC, его надо сначала скачать и поставить, потом Custom build step настроить и т.д. А для Спирита ничего не нужно (предполагаем, что Буст и так у всех есть)

Werdna

предполагаем, что Буст и так у всех есть
У меня нет, нахуй отрубил.
В чем проблема поставить Як — не вижу, одна команда.

Werdna

Custom build step
Кстати, а что это такое?
Як очень легко прописывается в cmake-файлах. Тупо указываешь PREBUILD COMMAND (как-то так)...

freezer

ну у нас тут MSVS

agaaaa

Ты разбираешься с Phoenix Microsoft'а?

freezer

в смысле? Phoenix из буста, просто среда разработки MS

Werdna

ну у нас тут MSVS
cmake отлично работает с микрософтовской студией.

freezer

и как это работает?

Werdna

и как это работает?
отлично. cmake под все платформы есть.

freezer

это я уже понял. Вопрос, как именно она в MSVS интегрируется. Как я понял, там есть возможность генерить MS-овские проектные файлы и т.д. - это вся интеграция или там что-то ещё есть?

slonishka

(предполагаем, что Буст и так у всех есть)
жжошь :grin: :grin:

slonishka

> возможность генерить MS-овские проектные файлы
INCLUDE_EXTERNAL_MSPROJECT: Include an external Microsoft project file in a workspace.

Dasar

> INCLUDE_EXTERNAL_MSPROJECT: Include an external Microsoft project file in a workspace.
это обычно не интересно, хочется наоборот из msvs зацепить make, т.к. в msvs работать удобнее, чем в make-е

slonishka

я не совсем хорошо процитировал. =)
атилла сказал, что там есть такая возможность и спросил, какие есть еще.
я ему и ответил, какие есть еще.
насчет возможности атиллы я не в курсе, к сожалению.
а в make мне тоже неудобно. зато удобно в cmake. =)

bleyman

В VS есть MsBuild, я сам ему внутрь не лазил, но читал мануали и даже смотрел какое-то видео, там всё клёво и мощно.

freezer

ещё есть NAnt и вроде как есть XSLT-шки, которые преобразуют проекты MSVS в файлы NAnt...

freezer

мне бы хотелось иметь плагин под VS, позволяющий средствами VS редактировать проекты Cmake. Потому что есть реальная потребность собирать под разными платформами и поддерживать одновременно VS-овский solution и makefile'ы геморно

slonishka

ну если там и правда есть возможность, которую ты описал, то вместе с моей
возможностью они позволяют делать из одного другое в обоих направлениях.
> мне бы хотелось иметь плагин под VS, позволяющий средствами VS редактировать проекты Cmake
это я себе слабо представляю. =)
кому надо этим заниматься?

slonishka

да, и я не знаю, нафига, пользуясь cmake-ом, редактировать makefile-ы? :confused:

freezer

да, и я не знаю, нафига, пользуясь cmake-ом, редактировать makefile-ы? :confused:
я наверное непонятно выразился. Сейчас мы cmake'ом не пользуемся. Если бы можно было управлять проектами cmake из Студии, то тогда всей этой мутотенью с makefile'ами можно было бы не заниматься. А так - приходится.

slonishka

cmake != autotools.
управлять можно так: пишешь в своей студии проект, потом для сборки
в альтернативных ОС делаешь из CMakeLists.txt INCLUDE_..._MSPROJECT(...) и собираешь.
никаких makefile-ов править не надо.
мб, я не совсем точно описал процесс INCLUDE-а, т.к. никогда его не делал. =)
btw, это существенно удобнее, чем autotools.

freezer

ага, понятно.
есть ещё проблема... под виндой всё это в конце собирается WIX'ом в MSI-инсталлятор. Под линухом это должон быть деб-пакет... Вот если бы... ;)

slonishka

ну ты еще дебы из студии делать захоти. :)

freezer

ну а что... есть же там в проектах параметр "target platform"... :)
за cmake всем спасибо, предложу нашим посмотреть

Werdna

есть ещё проблема... под виндой всё это в конце собирается WIX'ом в MSI-инсталлятор. Под линухом это должон быть деб-пакет... Вот если бы...
Аффтар, пиши ТОЛЬКО один CMakeLists.txt. Писать цмейки существенно проще, чем делать что-то в визивиге студии. В конце-концов, откажись от студии, используй только их компилятор.

freezer

В конце-концов, откажись от студии, используй только их компилятор.
Нет, на это я пойтить не могу :mad:
Может мне ещё своё багло в gdb отлаживать? :crazy:

Werdna

Может мне ещё своё багло в gdb отлаживать? :crazy:
Ну я всегда знал, что в студии обычно пишут дроч-проекты охуенных масштабов без какой-то перспективы на работоспособность, но чтобы так открыто признавать, что то что ты пишешь — багло... :)

kokoc88

Надо на Яке писать, спирит тормозной. Если скрипты мелкие и их мало — работать будет, а если много и большие — работать не будет.
В релизе spirit проигрывает flex+bison примерно в 1.5 раза по времени выполнения.
Кстати, как называются unicode порты для этих парсер-генераторов? Желательно такие, чтобы можно было переключать unicode/ansi из командной строки.

freezer

Кстати, как называются unicode порты для этих парсер-генераторов? Желательно такие, чтобы можно было переключать unicode/ansi из командной строки.
называется boost::iostreams :grin:

kokoc88

называется boost::iostreams
Очень интересно, как эта библиотека поможет изменить генерируемую для char (0-255) таблицу парсера?

freezer

в смысле? :crazy:
какой параметр шаблона указал - такой и парсер получится

Werdna

называется boost::iostreams :grin:
пиздец. вот что запретил бы — так это иостримы. :smirk:

freezer

обратись в ISO :smirk:

Werdna

обратись в ISO :smirk:
зачем? я просто их не использую :)

kokoc88

в смысле?
какой параметр шаблона указал - такой и парсер получится
Где параметр шаблона? Речь идёт про flex/bison, у первого скелет вообще вкомпилирован и содержит char* в виде текста.

freezer

вы спрашивали: "Кстати, как называются unicode порты для этих парсер-генераторов?", для "этих" - вот я вам и ответил про то, что знаю

kokoc88

вы спрашивали: "Кстати, как называются unicode порты для этих парсер-генераторов?", для "этих" - вот я вам и ответил про то, что знаю
Под "этими" я, очевидно, имел в виду те, которые не написаны на шаблонах. Прежде чем отвечать и показывать какой ты умный, надо подумать над вопросом.

freezer

я, очевидно, имел в виду
совершенно не очевидно. Под "этими" обычно понимают всё только что перечисленное.

ava3443

Кстати, как называются unicode порты для этих парсер-генераторов?
под "unicode" понимается что-то отличное от UTF-8, я полагаю?

ppplva

В мире Windows под "unicode" понимается UTF-16LE, и ни что иное. Меня это тоже вначале в тупик поставило )

kokoc88

В мире Windows под "unicode" понимается UTF-16LE, и ни что иное. Меня это тоже вначале в тупик поставило )
Да, мы такие. :grin: Привик считать, что unicode помещается в wchar_t.

vall

В мире Windows под "unicode" понимается UTF-16LE, и ни что иное. Меня это тоже вначале в тупик поставило )
а не UCS-2LE?
UTF-8 действительно прекрасно побайтно парсится, диапазоны первого байта и последующих не пересекаются.
Оставить комментарий
Имя или ник:
Комментарий: