[Impl] 重构evaluator.cpp + hpp 全部 [Feat] 增加对于IndexExpr的解析 [Fix][Impl] 现在点运算符不由BinaryExpr负责,增加MemberExpr,单独实现解析 [Impl] 项目目录全部翻修, src/目录下单独文件夹放置每一个模块
55 lines
1.0 KiB
C++
55 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include <Core/fig_string.hpp>
|
|
|
|
#include <Utils/magic_enum/magic_enum.hpp>
|
|
#include <unordered_map>
|
|
|
|
namespace Fig
|
|
{
|
|
class Warning
|
|
{
|
|
private:
|
|
size_t id; // the id (standard) of warning
|
|
FString msg;
|
|
size_t line, column;
|
|
public:
|
|
static const std::unordered_map<size_t, FString> standardWarnings;
|
|
Warning(size_t _id, FString _msg)
|
|
{
|
|
id = _id;
|
|
msg = std::move(_msg);
|
|
}
|
|
Warning(size_t _id, FString _msg, size_t _line, size_t _column)
|
|
{
|
|
id = _id;
|
|
msg = std::move(_msg);
|
|
line = _line;
|
|
column = _column;
|
|
}
|
|
|
|
auto getIDName()
|
|
{
|
|
return standardWarnings.at(id);
|
|
}
|
|
|
|
auto getID()
|
|
{
|
|
return id;
|
|
}
|
|
auto getMsg()
|
|
{
|
|
return msg;
|
|
}
|
|
auto getLine()
|
|
{
|
|
return line;
|
|
}
|
|
auto getColumn()
|
|
{
|
|
return column;
|
|
}
|
|
|
|
};
|
|
|
|
}; |