diff options
Diffstat (limited to 'libyul/optimiser/Utilities.cpp')
-rw-r--r-- | libyul/optimiser/Utilities.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libyul/optimiser/Utilities.cpp b/libyul/optimiser/Utilities.cpp index b8cdd339..b3b580d5 100644 --- a/libyul/optimiser/Utilities.cpp +++ b/libyul/optimiser/Utilities.cpp @@ -21,6 +21,7 @@ #include <libyul/optimiser/Utilities.h> #include <libyul/AsmData.h> +#include <libyul/Exceptions.h> #include <libdevcore/CommonData.h> @@ -37,3 +38,11 @@ void yul::removeEmptyBlocks(Block& _block) }; boost::range::remove_erase_if(_block.statements, isEmptyBlock); } + +u256 yul::valueOfNumberLiteral(Literal const& _literal) +{ + assertThrow(_literal.kind == LiteralKind::Number, OptimizerException, ""); + std::string const& literalString = _literal.value.str(); + assertThrow(isValidDecimal(literalString) || isValidHex(literalString), OptimizerException, ""); + return u256(literalString); +} |