From 26a91109a781d583cf632a96561504ae520753c0 Mon Sep 17 00:00:00 2001 From: chriseth Date: Tue, 5 Apr 2016 14:57:40 +0200 Subject: Allow "byte" in inline assembly. --- libsolidity/inlineasm/AsmParser.cpp | 4 ++++ test/libsolidity/InlineAssembly.cpp | 5 +++++ 2 files changed, 9 insertions(+) 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 }")); -- cgit v1.2.3