Есть ли смысл в парсерах?

Тема в разделе "WASM.HEAP", создана пользователем GoldFinch, 30 июл 2008.

  1. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    зачем в С++ тащить макросы, удел которых Си? в куче FAQ-ов по С++ не рекомендуют этого делать кстати.
    касаемо MAX: раз пишется на С++, то не проще(правильнее) ли использовать std::max<T> ?
     
  2. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    varnie, ну лично я про С говорю. В С++ макросы нафиг не сдались.
     
  3. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    W4FhLF
    несколько затуманенный ход беседы, потому я и засомневалса:) окей, Си.
    для языка Си есть бесплатные наработки в инете большом, вот, в частности:
    http://sglib.sourceforge.net/
     
  4. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    _basmp_
    > симпатичные фичи. Эта тулзень гдето лежит? В сорцах?
    > Или это внутреняя тулза. Нельзя-ли ее обнародовать? Или она строго комковая?
    обнародовать можно, но это же ее до ума доводить нужно.
    как минимум документировать, потому как без документации с ней никто кроме автора не разберется. к тому же она не лишена побочных эффектов, которые опять-таки надо документировать. в частности, конструкция .#.str означает, что str заменяется на temp = CRC(str) в _этом_ вызове, а во _всех_ _последующих_ подставляется temp, если нужно вызывать CRC заново, тогла пишем .#!R.str. конечно, это арабская грамота и "птичий" язык получается. местами не продуманный. для себя - сойдет, а так... навряд ли.

    W4FhLF
    > Что ты имеешь ввиду?
    нежелание использовать шаблоны без особой нужны, т.к. это несколько другая парадигма вообще-то...

    > Опять не понял. Что это значит? То, что компилятор часто игнорирует inline?
    static inline void INIT_LIST_HEAD(struct list_head *list)
    {
    list->next = list;
    list->prev = list;
    }
    почему ms это не компилит? ;)

    > Есть __forceinline (для компилера от MS) :)
    ага, и все остальные компилеры компилят это тоже ;) спасибо, не надо ;)

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

    > то для целых знаковых типов могу предложить каст до long.
    в том-то и дело, что MAX(a, b) позволяет забыть о типах.
    и это основная сила макросов. например, Z2ERR(a) ((a)?(a):-1), который возвращает -1 если a == 0, причем, a может быть и указателем. и никакой кастинг тут уже не прокатит. причем, пример, вовсе не надуманный.
     
  5. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    kaspersky
    В смысле функционал? ну хотябы вкратце - да. остальное выспросится
    в смысле одна переменная/дефайн на всех? Да это совсем некрасиво. Тут не документировать, а править надо. Даже самому запутаться на раз.
    Ничего, мы перлом битые. И не такие иероглифы видали.
    Ну так для этого и есть ос. Чтоб доводить интересные идеи на доводку которых у самого времени не хватает и комковости не предполагается.
     
  6. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Ну да, обобщённое программирование. Ты ведь сам их сравнил с макросами, поэтому я и спросил. А в рамках С++ эти средства прекрасно согласуются с парадигмой ООП, поэтому желание должно возникать само собой. Про С тут и говорить собственно не о чем. :)

    __inline

    Какой это раздел?

    Ты невнимательно читаешь, что я пишу: "В случае с MAX макрос это хорошее решение, не спорю." А вот использование макросов для расчёта хешей для строк -- вряд ли. Не знаю, что ты там пишешь, что расчёт хеша для строки является hot spot'om и приходится использовать какие-то китайские конструкции, кроме тебя никому непонятные.
     
  7. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    кстати, почему-то вспомнилось про существование PERL-а.
    kaspersky,
    не пытаешься ли ты через Си и макросы изобрести этот замечательный язык?