1. C++ / Говнокод #27995

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 05 Февраля 2022

    Комментарии (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;
      }
      Ответить
    • наивно думать что это будет что-то подсвечивать
      Ответить
      • ладно, не компилятор, ассемблер. и помечтать нельзя...
        Ответить
    • Где говно?
      Ответить

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