loom

Форк
0
/
Reporter_abstract.cpp 
53 строки · 1.7 Кб
1
/*
2
MIT License
3

4
Copyright (c) 2021 МГТУ им. Н.Э. Баумана, кафедра ИУ-6, Михаил Фетисов,
5

6
https://bmstu.codes/lsx/simodo
7
*/
8

9
#include "simodo/inout/reporter/Reporter_abstract.h"
10
#include "simodo/inout/convert/functions.h"
11

12
namespace simodo::inout
13
{
14
    void Reporter_abstract::reportWithPosition(const SeverityLevel level, const Location &location, const std::string &briefly, const std::string &atlarge) const
15
    {
16
        report( level,
17
                location,
18
                briefly,
19
                atlarge.empty() ? ("Позиция разбора: " + getLocationString(location)) : atlarge);
20
    }
21

22
    const char * getSeverityLevelName(const SeverityLevel level) 
23
    {
24
        switch(level)
25
        {
26
        case SeverityLevel::Information:
27
            return "";
28
        case SeverityLevel::Warning:
29
            return "Предупреждение: ";
30
        case SeverityLevel::Error:
31
            return "Ошибка: ";
32
        case SeverityLevel::Fatal:
33
            return "Сбой! ";
34
        }
35
        return "";
36
    }
37

38
    std::string getLocationString(const Location &location, bool in_detail) 
39
    {
40
        /// \todo Нужно убрать лишнее преобразование кодировок
41
        std::string str = location.uri()
42
                + ":" + std::to_string(static_cast<unsigned>(location.range().start().line()+1))
43
                + ":" + std::to_string(static_cast<unsigned>(location.range().start().character()+1));
44

45
        if (in_detail)
46
            str += "[" + std::to_string(location.range().end().line()+1)
47
                    + "," + std::to_string(location.range().end().character()+1)
48
                    + "]";
49

50
        return str;
51
    }
52

53
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.