Merge pull request #475 from chriseth/byteasm

Allow "byte" in inline assembly.
This commit is contained in:
chriseth 2016-04-06 16:40:20 +02:00
commit 193b1c940c
2 changed files with 9 additions and 0 deletions

View File

@ -72,6 +72,7 @@ assembly::Statement Parser::parseStatement()
return assembly::Assignment{assembly::Identifier{name}};
}
case Token::Return: // opcode
case Token::Byte: // opcode
default:
break;
}
@ -142,10 +143,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.

View File

@ -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 }"));