From cc8583ec7d6fd86ca7e129475fde32b76d102e79 Mon Sep 17 00:00:00 2001 From: chriseth Date: Tue, 27 Sep 2016 21:37:32 +0200 Subject: Function types. --- libsolidity/parsing/Parser.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'libsolidity/parsing/Parser.h') diff --git a/libsolidity/parsing/Parser.h b/libsolidity/parsing/Parser.h index 26f347cb..a59d2688 100644 --- a/libsolidity/parsing/Parser.h +++ b/libsolidity/parsing/Parser.h @@ -53,6 +53,18 @@ private: bool allowLocationSpecifier = false; }; + /// This struct is shared for parsing a function header and a function type. + struct FunctionHeaderParserResult + { + ASTPointer name; + ASTPointer parameters; + ASTPointer returnParameters; + Declaration::Visibility visibility = Declaration::Visibility::Default; + bool isDeclaredConst = false; + bool isPayable = false; + std::vector> modifiers; + }; + ///@{ ///@name Parsing functions for the AST nodes ASTPointer parsePragmaDirective(); @@ -60,6 +72,7 @@ private: ASTPointer parseContractDefinition(bool _isLibrary); ASTPointer parseInheritanceSpecifier(); Declaration::Visibility parseVisibilitySpecifier(Token::Value _token); + FunctionHeaderParserResult parseFunctionHeader(bool _forceEmptyName, bool _allowModifiers); ASTPointer parseFunctionDefinition(ASTString const* _contractName); ASTPointer parseStructDefinition(); ASTPointer parseEnumDefinition(); @@ -75,6 +88,7 @@ private: ASTPointer parseIdentifier(); ASTPointer parseUserDefinedTypeName(); ASTPointer parseTypeName(bool _allowVar); + ASTPointer parseFunctionType(); ASTPointer parseMapping(); ASTPointer parseParameterList( VarDeclParserOptions const& _options, -- cgit v1.2.3