diff options
author | Lazaridis <info@lazaridis.com> | 2018-10-01 05:27:16 +0800 |
---|---|---|
committer | Lazaridis <info@lazaridis.com> | 2018-10-09 11:51:19 +0800 |
commit | 4bcd89105cf294d65443cbc7bfe2aaffd571f6d3 (patch) | |
tree | 3f1b5075448b1345ab84e2bb2a1397a7278ed72d /libsolidity | |
parent | 4ab2e03be3e5550a68a2fcf1608cdcb942dd8957 (diff) | |
download | dexon-solidity-4bcd89105cf294d65443cbc7bfe2aaffd571f6d3.tar dexon-solidity-4bcd89105cf294d65443cbc7bfe2aaffd571f6d3.tar.gz dexon-solidity-4bcd89105cf294d65443cbc7bfe2aaffd571f6d3.tar.bz2 dexon-solidity-4bcd89105cf294d65443cbc7bfe2aaffd571f6d3.tar.lz dexon-solidity-4bcd89105cf294d65443cbc7bfe2aaffd571f6d3.tar.xz dexon-solidity-4bcd89105cf294d65443cbc7bfe2aaffd571f6d3.tar.zst dexon-solidity-4bcd89105cf294d65443cbc7bfe2aaffd571f6d3.zip |
provide general hex-literal error message, fixes #1802
dummy
Diffstat (limited to 'libsolidity')
-rw-r--r-- | libsolidity/parsing/Parser.cpp | 3 | ||||
-rw-r--r-- | libsolidity/parsing/Scanner.cpp | 6 | ||||
-rw-r--r-- | libsolidity/parsing/Token.h | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index 1228b833..b390459a 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -1554,6 +1554,9 @@ ASTPointer<Expression> Parser::parsePrimaryExpression() expression = nodeFactory.createNode<TupleExpression>(components, isArray); break; } + case Token::IllegalHex: + fatalParserError("Expected even number of hex-nibbles within double-quotes."); + break; default: if (Token::isElementaryTypeName(token)) { diff --git a/libsolidity/parsing/Scanner.cpp b/libsolidity/parsing/Scanner.cpp index 9a7f85cb..87d7c535 100644 --- a/libsolidity/parsing/Scanner.cpp +++ b/libsolidity/parsing/Scanner.cpp @@ -612,7 +612,7 @@ void Scanner::scanToken() if (m_char == '"' || m_char == '\'') token = scanHexString(); else - token = Token::Illegal; + token = Token::IllegalHex; } } else if (isDecimalDigit(m_char)) @@ -736,11 +736,11 @@ Token::Value Scanner::scanHexString() { char c = m_char; if (!scanHexByte(c)) - return Token::Illegal; + return Token::IllegalHex; addLiteralChar(c); } if (m_char != quote) - return Token::Illegal; + return Token::IllegalHex; literal.complete(); advance(); // consume quote return Token::StringLiteral; diff --git a/libsolidity/parsing/Token.h b/libsolidity/parsing/Token.h index 73c85482..8ecc850a 100644 --- a/libsolidity/parsing/Token.h +++ b/libsolidity/parsing/Token.h @@ -261,6 +261,8 @@ namespace solidity \ /* Illegal token - not able to scan. */ \ T(Illegal, "ILLEGAL", 0) \ + /* Illegal hex token */ \ + T(IllegalHex, "ILLEGAL_HEX", 0) \ \ /* Scanner-internal use only. */ \ T(Whitespace, NULL, 0) |