From a34f2f1a316d6093c14045ee8423d913ac01421d Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Sat, 18 Jun 2016 11:11:55 +0100 Subject: Support payable keyword for functions --- libsolidity/parsing/Parser.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index 1bffa5d7..1d76f80a 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -326,6 +326,12 @@ ASTPointer Parser::parseFunctionDefinition(ASTString const* else break; } + bool isPayable = false; + if (m_scanner->currentToken() == Token::Payable) + { + isPayable = true; + m_scanner->next(); + } ASTPointer returnParameters; if (m_scanner->currentToken() == Token::Returns) { @@ -354,6 +360,7 @@ ASTPointer Parser::parseFunctionDefinition(ASTString const* isDeclaredConst, modifiers, returnParameters, + isPayable, block ); } -- cgit v1.2.3 From 962531af96a8a3ed6b28462d43c69d78fa48d511 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Fri, 26 Aug 2016 19:37:10 +0100 Subject: Merged in changes from chriseth/payable --- libsolidity/parsing/Parser.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index 1d76f80a..0e99d1e7 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -305,6 +305,7 @@ ASTPointer Parser::parseFunctionDefinition(ASTString const* options.allowLocationSpecifier = true; ASTPointer parameters(parseParameterList(options)); bool isDeclaredConst = false; + bool isPayable = false; Declaration::Visibility visibility(Declaration::Visibility::Default); vector> modifiers; while (true) @@ -315,6 +316,11 @@ ASTPointer Parser::parseFunctionDefinition(ASTString const* isDeclaredConst = true; m_scanner->next(); } + else if (m_scanner->currentToken() == Token::Payable) + { + isPayable = true; + m_scanner->next(); + } else if (token == Token::Identifier) modifiers.push_back(parseModifierInvocation()); else if (Token::isVisibilitySpecifier(token)) @@ -326,12 +332,6 @@ ASTPointer Parser::parseFunctionDefinition(ASTString const* else break; } - bool isPayable = false; - if (m_scanner->currentToken() == Token::Payable) - { - isPayable = true; - m_scanner->next(); - } ASTPointer returnParameters; if (m_scanner->currentToken() == Token::Returns) { -- cgit v1.2.3