LINUX.ORG.RU

boost::spirit vs. yacc/lex


0

0

Здравствуйте.

Мне надо убедить начальство ис пользовать для нового проэкта boost::spirit вместо lex/yacc. Помогите привести убедительные аргументы.

Заранее благодарю.

Убедительных аргументов нет.

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

хммм такие картинки наверно видели все кто хоть как то сталкивался с boost::spirit ;-)
и эт тоже недостаток его и самого языка вообщем

acefsm
()

использовать надо yacc/lex. это надежно (ну была ошибка недавно в yyparse, но ошибке есть везде), есть куча парсеров на нем в интернете. а буст ничего кроме геморроя не даст.

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

> http://files.rsdn.ru/74426/spirit_crash.png

Во-во. От молодых горячих плюсофилов в проектах одни проблемы. Надо на багфиксинг сажать пока не станут пузатыми семейными конформистами.

Absurd ★★★
()

за: пишешь грамматики прямо на языке, можешь выполнять нужные действия по преобразованию данных во время разбора, динамические парсеры, генерируемые в зависимости от разбираемых данных

против: нужны современные компиляторы (gcc > 4.1 и т.д.), нужен большой опыт работы с С++ и шаблонами

P.S. у меня на спирите написано несколько DSL - я очень доволен

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

>пишешь грамматики прямо на языке

Сомнительное достижение применительно к ++. Ассемблер проще.

>можешь выполнять нужные действия по преобразованию данных во время разбора, динамические парсеры, генерируемые в зависимости от разбираемых данных

А в yacc что нельзя менять хандлер контента в зависимости от контекста разбора?

>нужны современные компиляторы (gcc > 4.1 и т.д.)

Это уже практический недостаток - компилятор С++ всегда недостаточно хорош, какой бы версии он не был. Кроме того, впоследствии всегда оказывается что нужно сделать даунгрейд на среду кастомера состоящей из говна мамонта на древней соляре.

>нужен большой опыт работы с С++ и шаблонами

Где ты такого найдешь? К моменту набора такого опыта он уже выполняет в основном административную работу либо полный неадекват.

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

>> нужен большой опыт работы с С++ и шаблонами

> Где ты такого найдешь? К моменту набора такого опыта он уже выполняет в основном административную работу либо полный неадекват.

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

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

В этом я с тобой совершенно согласен... но, если я не ошибаюсь, ты-то в Германии... там как и во всех нормальных странах это тоже понимают (у меня есть пример - Швеция)... но мы-то... несчастные... в России... а тут именно так как как пишет Absurd :)

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

я когда в москве работал, также было - кто хотел заниматься программированием, тот занимался им, за деньги, соответствующие квалификации

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

>Начальство право на 100%.

+1. На якке читабельнее эффективнее и проще.

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

Не буду утверждать, но мне кажется что это было скорее исключение... :)

Cy6erBr4in ★★★
()

yacc/lex - устарел

boost::spirit - прогресивненько

а какая разница. если проэкт на с++ и ты работал с boost::spirit - то сделай и покажи результат. А если не работал ни с тем ни с тем - то слушайся начальство.

stpg
()

yacc хорошо работает только с ситуациями, когда исходный текст верен, но это не всегда так. Он плохо восстанавливается после синтаксических ошибок.

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

>yacc хорошо работает только с ситуациями, когда исходный текст верен, но это не всегда так. Он плохо восстанавливается после синтаксических ошибок.

Сам - вообще не восстанавливается. Но там есть еррор - правила. При помощи него можно неплохо потюнить. (Особенно вставляя на это правила код)

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