Кресты / Говнокод #27995 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
std::vector<Token> Tokenizer::coreTokenize(std::string src)
{
    const boost::escaped_list_separator<char> els("\\"s, " \n\t"s, "\";");

    boost::replace_all(src, "\"", R"("\")");
    boost::replace_all(src, ";", ";\\;");
    boost::replace_all(src, "\\n", "\\\\n");
    boost::replace_all(src, "\n", "\\n");

    const boost::tokenizer tok(src, els);
    std::vector<Token> tokens;

    std::ranges::copy(tok, std::back_inserter(tokens));
    bool (std::string::*starts_with) (char const) const = &std::string::starts_with;
    std::remove_if(tokens.begin(), tokens.end(), boost::bind(starts_with, boost::placeholders::_1, ';'));

    return tokens;
}

захотел добавить в свой компилятор подсветку ошибок. пришлось накостылить.

Запостил: digitalEugene digitalEugene, (Updated )

Комментарии (4) RSS

  • без равстрок вообще красиво
    std::vector<Token> Tokenizer::coreTokenize(std::string src)
    {
        const boost::escaped_list_separator<char> els("\\"s, " \n\t"s, "\";");
    
        boost::replace_all(src, "\"", "\"\\\"");
        boost::replace_all(src, ";", ";\\;");
        boost::replace_all(src, "\\n", "\\\\n");
        boost::replace_all(src, "\n", "\\n");
    
        const boost::tokenizer tok(src, els);
        std::vector<Token> tokens;
    
        std::ranges::copy(tok, std::back_inserter(tokens));
        bool (std::string::*starts_with) (char const) const = &std::string::starts_with;
        std::remove_if(tokens.begin(), tokens.end(), boost::bind(starts_with, boost::placeholders::_1, ';'));
    
        return tokens;
    }
    Ответить
  • наивно думать что это будет что-то подсвечивать
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8