diff options
Diffstat (limited to 'src/3rdparty/angle/src/compiler/preprocessor/MacroExpander.h')
-rw-r--r-- | src/3rdparty/angle/src/compiler/preprocessor/MacroExpander.h | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/src/3rdparty/angle/src/compiler/preprocessor/MacroExpander.h b/src/3rdparty/angle/src/compiler/preprocessor/MacroExpander.h deleted file mode 100644 index fae7676fb0..0000000000 --- a/src/3rdparty/angle/src/compiler/preprocessor/MacroExpander.h +++ /dev/null @@ -1,83 +0,0 @@ -// -// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// - -#ifndef COMPILER_PREPROCESSOR_MACROEXPANDER_H_ -#define COMPILER_PREPROCESSOR_MACROEXPANDER_H_ - -#include <memory> -#include <vector> - -#include "compiler/preprocessor/Lexer.h" -#include "compiler/preprocessor/Macro.h" - -namespace pp -{ - -class Diagnostics; -struct SourceLocation; - -class MacroExpander : public Lexer -{ - public: - MacroExpander(Lexer *lexer, - MacroSet *macroSet, - Diagnostics *diagnostics, - int allowedMacroExpansionDepth); - ~MacroExpander() override; - - void lex(Token *token) override; - - private: - void getToken(Token *token); - void ungetToken(const Token &token); - bool isNextTokenLeftParen(); - - bool pushMacro(std::shared_ptr<Macro> macro, const Token &identifier); - void popMacro(); - - bool expandMacro(const Macro ¯o, const Token &identifier, std::vector<Token> *replacements); - - typedef std::vector<Token> MacroArg; - bool collectMacroArgs(const Macro ¯o, - const Token &identifier, - std::vector<MacroArg> *args, - SourceLocation *closingParenthesisLocation); - void replaceMacroParams(const Macro ¯o, - const std::vector<MacroArg> &args, - std::vector<Token> *replacements); - - struct MacroContext - { - MacroContext(); - ~MacroContext(); - bool empty() const; - const Token &get(); - void unget(); - - std::shared_ptr<Macro> macro; - std::size_t index; - std::vector<Token> replacements; - }; - - Lexer *mLexer; - MacroSet *mMacroSet; - Diagnostics *mDiagnostics; - - std::unique_ptr<Token> mReserveToken; - std::vector<MacroContext *> mContextStack; - size_t mTotalTokensInContexts; - - int mAllowedMacroExpansionDepth; - - bool mDeferReenablingMacros; - std::vector<std::shared_ptr<Macro>> mMacrosToReenable; - - class ScopedMacroReenabler; -}; - -} // namespace pp - -#endif // COMPILER_PREPROCESSOR_MACROEXPANDER_H_ |