// // 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_MACRO_H_ #define COMPILER_PREPROCESSOR_MACRO_H_ #include #include #include #include namespace angle { namespace pp { struct Token; struct Macro { enum Type { kTypeObj, kTypeFunc }; typedef std::vector Parameters; typedef std::vector Replacements; Macro(); ~Macro(); bool equals(const Macro &other) const; bool predefined; mutable bool disabled; mutable int expansionCount; Type type; std::string name; Parameters parameters; Replacements replacements; }; typedef std::map> MacroSet; void PredefineMacro(MacroSet *macroSet, const char *name, int value); } // namespace pp } // namespace angle #endif // COMPILER_PREPROCESSOR_MACRO_H_