clang 20.0.0git
|
PragmaNamespace - This PragmaHandler subdivides the namespace of pragmas, allowing hierarchical pragmas to be defined. More...
#include "clang/Lex/Pragma.h"
Public Member Functions | |
PragmaNamespace (StringRef Name) | |
PragmaHandler * | FindHandler (StringRef Name, bool IgnoreNull=true) const |
FindHandler - Check to see if there is already a handler for the specified name. | |
void | AddPragma (PragmaHandler *Handler) |
AddPragma - Add a pragma to this namespace. | |
void | RemovePragmaHandler (PragmaHandler *Handler) |
RemovePragmaHandler - Remove the given handler from the namespace. | |
bool | IsEmpty () const |
void | HandlePragma (Preprocessor &PP, PragmaIntroducer Introducer, Token &Tok) override |
PragmaNamespace * | getIfNamespace () override |
getIfNamespace - If this is a namespace, return it. | |
Public Member Functions inherited from clang::PragmaHandler | |
PragmaHandler ()=default | |
PragmaHandler (StringRef name) | |
virtual | ~PragmaHandler () |
StringRef | getName () const |
virtual void | HandlePragma (Preprocessor &PP, PragmaIntroducer Introducer, Token &FirstToken)=0 |
virtual PragmaNamespace * | getIfNamespace () |
getIfNamespace - If this is a namespace, return it. | |
PragmaNamespace - This PragmaHandler subdivides the namespace of pragmas, allowing hierarchical pragmas to be defined.
Common examples of namespaces are "\#pragma GCC", "\#pragma STDC", and "\#pragma omp", but any namespaces may be (potentially recursively) defined.
|
inlineexplicit |
void PragmaNamespace::AddPragma | ( | PragmaHandler * | Handler | ) |
AddPragma - Add a pragma to this namespace.
Definition at line 92 of file Pragma.cpp.
References clang::PragmaHandler::getName().
Referenced by clang::Preprocessor::AddPragmaHandler().
PragmaHandler * PragmaNamespace::FindHandler | ( | StringRef | Name, |
bool | IgnoreNull = true |
||
) | const |
FindHandler - Check to see if there is already a handler for the specified name.
If not, return the handler for the null name if it exists, otherwise return null. If IgnoreNull is true (the default) then the null handler isn't returned on failure to match.
If not, return the handler for the null identifier if it exists, otherwise return null. If IgnoreNull is true (the default) then the null handler isn't returned on failure to match.
Definition at line 79 of file Pragma.cpp.
Referenced by clang::Preprocessor::AddPragmaHandler(), and HandlePragma().
|
inlineoverridevirtual |
getIfNamespace - If this is a namespace, return it.
This is equivalent to using a dynamic_cast, but doesn't require RTTI.
Reimplemented from clang::PragmaHandler.
Definition at line 123 of file Pragma.h.
Referenced by clang::Preprocessor::AddPragmaHandler().
|
overridevirtual |
Implements clang::PragmaHandler.
Definition at line 107 of file Pragma.cpp.
References clang::Preprocessor::Diag(), FindHandler(), clang::Token::getIdentifierInfo(), clang::IdentifierInfo::getName(), clang::PragmaHandler::HandlePragma(), and clang::Preprocessor::LexUnexpandedToken().
|
inline |
Definition at line 118 of file Pragma.h.
Referenced by clang::Preprocessor::RemovePragmaHandler().
void PragmaNamespace::RemovePragmaHandler | ( | PragmaHandler * | Handler | ) |
RemovePragmaHandler - Remove the given handler from the namespace.
Definition at line 98 of file Pragma.cpp.
References clang::PragmaHandler::getName().
Referenced by clang::Preprocessor::RemovePragmaHandler().