Introduce Token::friendlyName() helper

This commit is contained in:
Alex Beregszaszi 2018-04-18 13:29:44 +01:00
parent e3279d8af8
commit 252bde8542
2 changed files with 16 additions and 5 deletions

View File

@ -72,9 +72,9 @@ void ParserBase::expectToken(Token::Value _value, bool _advance)
{
fatalParserError(
string("Expected '") +
string(Token::toString(_value)) +
Token::friendlyName(_value) +
string("' but got reserved keyword '") +
string(Token::toString(tok)) +
Token::friendlyName(tok) +
string("'")
);
}
@ -83,7 +83,7 @@ void ParserBase::expectToken(Token::Value _value, bool _advance)
ElementaryTypeNameToken elemTypeName = m_scanner->currentElementaryTypeNameToken();
fatalParserError(
string("Expected '") +
string(Token::toString(_value)) +
Token::friendlyName(_value) +
string("' but got '") +
elemTypeName.toString() +
string("'")
@ -92,9 +92,9 @@ void ParserBase::expectToken(Token::Value _value, bool _advance)
else
fatalParserError(
string("Expected '") +
string(Token::toString(_value)) +
Token::friendlyName(_value) +
string("' but got '") +
string(Token::toString(m_scanner->currentToken())) +
Token::friendlyName(tok) +
string("'")
);
}

View File

@ -304,6 +304,17 @@ public:
return m_string[tok];
}
static std::string friendlyName(Value tok)
{
char const* ret = toString(tok);
if (ret == nullptr)
{
ret = name(tok);
solAssert(ret != nullptr, "");
}
return std::string(ret);
}
// @returns the precedence > 0 for binary and compare
// operators; returns 0 otherwise.
static int precedence(Value tok)