diff options
-rw-r--r-- | libsolidity/inlineasm/AsmParser.cpp | 4 | ||||
-rw-r--r-- | test/libsolidity/InlineAssembly.cpp | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/libsolidity/inlineasm/AsmParser.cpp b/libsolidity/inlineasm/AsmParser.cpp index 124a5d26..3f794351 100644 --- a/libsolidity/inlineasm/AsmParser.cpp +++ b/libsolidity/inlineasm/AsmParser.cpp @@ -73,6 +73,7 @@ assembly::Statement Parser::parseStatement() return assembly::Assignment{assembly::Identifier{name}}; } case Token::Return: // opcode + case Token::Byte: // opcode default: break; } @@ -143,10 +144,13 @@ assembly::Statement Parser::parseElementaryOperation(bool _onlySinglePusher) { case Token::Identifier: case Token::Return: + case Token::Byte: { string literal; if (m_scanner->currentToken() == Token::Return) literal = "return"; + else if (m_scanner->currentToken() == Token::Byte) + literal = "byte"; else literal = m_scanner->currentLiteral(); // first search the set of instructions. diff --git a/test/libsolidity/InlineAssembly.cpp b/test/libsolidity/InlineAssembly.cpp index 153b3fa8..779fc3f8 100644 --- a/test/libsolidity/InlineAssembly.cpp +++ b/test/libsolidity/InlineAssembly.cpp @@ -88,6 +88,11 @@ BOOST_AUTO_TEST_CASE(simple_instructions) BOOST_CHECK(successParse("{ dup1 dup1 mul dup1 sub }")); } +BOOST_AUTO_TEST_CASE(keywords) +{ + BOOST_CHECK(successParse("{ byte return }")); +} + BOOST_AUTO_TEST_CASE(constants) { BOOST_CHECK(successParse("{ 7 8 mul }")); |