loom

Форк
0
/
Reporter_abstract.cpp 
54 строки · 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

11
#include "simodo/inout/convert/functions.h"
12

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

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

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

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

51
        return str;
52
    }
53

54
}

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

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

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

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