diff options
author | RJ Catalano <rcatalano@macsales.com> | 2016-03-09 01:23:32 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2016-03-12 00:49:32 +0800 |
commit | 67793f1aedab8cae956e8df0eec5e6a99f06b87b (patch) | |
tree | 4282fd76d51f39e8293d64a85dad56ca7a9df966 /libsolidity/parsing | |
parent | 9f5c3977fb0c1a4607a955811ea3cda6e0547b66 (diff) | |
download | dexon-solidity-67793f1aedab8cae956e8df0eec5e6a99f06b87b.tar.gz dexon-solidity-67793f1aedab8cae956e8df0eec5e6a99f06b87b.tar.zst dexon-solidity-67793f1aedab8cae956e8df0eec5e6a99f06b87b.zip |
changed documentation and using lexical cast
Diffstat (limited to 'libsolidity/parsing')
-rw-r--r-- | libsolidity/parsing/Token.cpp | 8 | ||||
-rw-r--r-- | libsolidity/parsing/Token.h | 6 |
2 files changed, 3 insertions, 11 deletions
diff --git a/libsolidity/parsing/Token.cpp b/libsolidity/parsing/Token.cpp index 332d27f7..4f04ea7a 100644 --- a/libsolidity/parsing/Token.cpp +++ b/libsolidity/parsing/Token.cpp @@ -112,14 +112,10 @@ unsigned Token::extractUnsigned(string::const_iterator const& _begin, string::co { try { - unsigned short m = stoi(string(_begin, _end)); + unsigned short m = boost::lexical_cast<unsigned short>(string(_begin, _end)); return m; } - catch(out_of_range& e) - { - return 0; - } - catch (invalid_argument& e) + catch(const boost::bad_lexical_cast &) { return 0; } diff --git a/libsolidity/parsing/Token.h b/libsolidity/parsing/Token.h index fea80ef7..0e5b594c 100644 --- a/libsolidity/parsing/Token.h +++ b/libsolidity/parsing/Token.h @@ -305,11 +305,7 @@ public: static std::tuple<Token::Value, unsigned short, unsigned short> fromIdentifierOrKeyword(std::string const& _literal); private: - // extractUnsigned provides a safe way to extract numbers, - // if out_of_range error is thrown, they returns 0s, therefore securing - // the variable's identity as an identifier. If an invalid conversion - // error is thrown (usually in the case of grabbing N from a fixed type) - // then a 0 is thrown to purposely ensure that it will declare itself as an identifier + // @returns 0 on error (invalid digit or number too large) static unsigned extractUnsigned(std::string::const_iterator const& _begin, std::string::const_iterator const& _end); // @returns the keyword with name @a _name or Token::Identifier of no such keyword exists. static Token::Value keywordByName(std::string const& _name); |