From 882248ce755d8c905b69bc25964b343906bb94ae Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Fri, 4 May 2018 13:07:43 +0100 Subject: [PATCH] Remove code duplication in expectToken --- libsolidity/parsing/ParserBase.cpp | 34 ++++++++++-------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/libsolidity/parsing/ParserBase.cpp b/libsolidity/parsing/ParserBase.cpp index 797dea712..8277ff46f 100644 --- a/libsolidity/parsing/ParserBase.cpp +++ b/libsolidity/parsing/ParserBase.cpp @@ -68,35 +68,23 @@ void ParserBase::expectToken(Token::Value _value, bool _advance) Token::Value tok = m_scanner->currentToken(); if (tok != _value) { + string got; if (Token::isReservedKeyword(tok)) - { - fatalParserError( - string("Expected '") + - Token::friendlyName(_value) + - string("' but got reserved keyword '") + - Token::friendlyName(tok) + - string("'") - ); - } + got = "reserved keyword '" + Token::friendlyName(tok) + "'"; else if (Token::isElementaryTypeName(tok)) //for the sake of accuracy in reporting { ElementaryTypeNameToken elemTypeName = m_scanner->currentElementaryTypeNameToken(); - fatalParserError( - string("Expected '") + - Token::friendlyName(_value) + - string("' but got '") + - elemTypeName.toString() + - string("'") - ); + got = "'" + elemTypeName.toString() + "'"; } else - fatalParserError( - string("Expected '") + - Token::friendlyName(_value) + - string("' but got '") + - Token::friendlyName(tok) + - string("'") - ); + got = "'" + Token::friendlyName(tok) + "'"; + + fatalParserError( + string("Expected '") + + Token::friendlyName(_value) + + string("' but got ") + + got + ); } if (_advance) m_scanner->next();