aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/parsing/ParserBase.h
diff options
context:
space:
mode:
authorChristian Parpart <christian@ethereum.org>2018-11-14 21:59:30 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2018-11-22 02:58:12 +0800
commit87821c53c3a73d3e35a0e50a7c159d9aa5d6b253 (patch)
treed0335db1bfe77f91168e14599e943105b7c9a2c3 /libsolidity/parsing/ParserBase.h
parentd47707abaddfd6820d8ff1f9ec5ec0d2a61ee622 (diff)
downloaddexon-solidity-87821c53c3a73d3e35a0e50a7c159d9aa5d6b253.tar.gz
dexon-solidity-87821c53c3a73d3e35a0e50a7c159d9aa5d6b253.tar.zst
dexon-solidity-87821c53c3a73d3e35a0e50a7c159d9aa5d6b253.zip
Isolating files shared between Yul- and Solidity language frontend.
Diffstat (limited to 'libsolidity/parsing/ParserBase.h')
-rw-r--r--libsolidity/parsing/ParserBase.h93
1 files changed, 0 insertions, 93 deletions
diff --git a/libsolidity/parsing/ParserBase.h b/libsolidity/parsing/ParserBase.h
deleted file mode 100644
index e01f37d8..00000000
--- a/libsolidity/parsing/ParserBase.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- This file is part of solidity.
-
- solidity is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- solidity is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with solidity. If not, see <http://www.gnu.org/licenses/>.
-*/
-/**
- * @author Christian <c@ethdev.com>
- * @date 2016
- * Solidity parser shared functionality.
- */
-
-#pragma once
-
-#include <memory>
-#include <libsolidity/parsing/Token.h>
-
-namespace dev
-{
-namespace solidity
-{
-
-class ErrorReporter;
-class Scanner;
-
-class ParserBase
-{
-public:
- explicit ParserBase(ErrorReporter& errorReporter): m_errorReporter(errorReporter) {}
-
- std::shared_ptr<std::string const> const& sourceName() const;
-
-protected:
- /// Utility class that creates an error and throws an exception if the
- /// recursion depth is too deep.
- class RecursionGuard
- {
- public:
- explicit RecursionGuard(ParserBase& _parser): m_parser(_parser)
- {
- m_parser.increaseRecursionDepth();
- }
- ~RecursionGuard() { m_parser.decreaseRecursionDepth(); }
- private:
- ParserBase& m_parser;
- };
-
- /// Start position of the current token
- int position() const;
- /// End position of the current token
- int endPosition() const;
-
- ///@{
- ///@name Helper functions
- /// If current token value is not _value, throw exception otherwise advance token.
- void expectToken(Token _value, bool _advance = true);
- Token currentToken() const;
- Token peekNextToken() const;
- std::string currentLiteral() const;
- Token advance();
- ///@}
-
- /// Increases the recursion depth and throws an exception if it is too deep.
- void increaseRecursionDepth();
- void decreaseRecursionDepth();
-
- /// Creates a @ref ParserError and annotates it with the current position and the
- /// given @a _description.
- void parserError(std::string const& _description);
-
- /// Creates a @ref ParserError and annotates it with the current position and the
- /// given @a _description. Throws the FatalError.
- void fatalParserError(std::string const& _description);
-
- std::shared_ptr<Scanner> m_scanner;
- /// The reference to the list of errors and warning to add errors/warnings during parsing
- ErrorReporter& m_errorReporter;
- /// Current recursion depth during parsing.
- size_t m_recursionDepth = 0;
-};
-
-}
-}