/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/Foundation/CodeUtils/Expression/Implementation/ExpressionParser_inl.h
50 строк
2 KB
Jan Krassnigg
Even more migration to ezStringView (Tools, Plugins, Foundation) (#979)
08 июн 2023, 15:18
Не верифицирован
08 июн 2023, 15:18
568268d
Код
Авторство
О чём код?
inline bool ezExpressionParser::AcceptStatementTerminator() { return ezTokenParseUtils::Accept(m_TokenStream, m_uiCurrentToken, ezTokenType::Newline) || ezTokenParseUtils::Accept(m_TokenStream, m_uiCurrentToken, ";"); } inline ezResult ezExpressionParser::Expect(ezStringView sToken, const ezToken** pExpectedToken) { ezUInt32 uiAcceptedToken = 0; if (ezTokenParseUtils::Accept(m_TokenStream, m_uiCurrentToken, sToken, &uiAcceptedToken) == false) { const ezUInt32 uiErrorToken = ezMath::Min(m_TokenStream.GetCount() - 1, m_uiCurrentToken); auto pToken = m_TokenStream[uiErrorToken]; ReportError(pToken, ezFmt("Syntax error, expected {} but got {}", sToken, pToken->m_DataView)); return EZ_FAILURE; } if (pExpectedToken != nullptr) { *pExpectedToken = m_TokenStream[uiAcceptedToken]; } return EZ_SUCCESS; } inline ezResult ezExpressionParser::Expect(ezTokenType::Enum Type, const ezToken** pExpectedToken /*= nullptr*/) { ezUInt32 uiAcceptedToken = 0; if (ezTokenParseUtils::Accept(m_TokenStream, m_uiCurrentToken, Type, &uiAcceptedToken) == false) { const ezUInt32 uiErrorToken = ezMath::Min(m_TokenStream.GetCount() - 1, m_uiCurrentToken); auto pToken = m_TokenStream[uiErrorToken]; ReportError(pToken, ezFmt("Syntax error, expected token type {} but got {}", ezTokenType::EnumNames[Type], ezTokenType::EnumNames[pToken->m_iType])); return EZ_FAILURE; } if (pExpectedToken != nullptr) { *pExpectedToken = m_TokenStream[uiAcceptedToken]; } return EZ_SUCCESS; } inline void ezExpressionParser::ReportError(const ezToken* pToken, const ezFormatString& message0) { ezStringBuilder tmp; ezStringView message = message0.GetText(tmp); ezLog::Error("{}({},{}): {}", pToken->m_File, pToken->m_uiLine, pToken->m_uiColumn, message); }