clang 20.0.0git
Public Member Functions | List of all members
clang::PragmaNamespace Class Reference

PragmaNamespace - This PragmaHandler subdivides the namespace of pragmas, allowing hierarchical pragmas to be defined. More...

#include "clang/Lex/Pragma.h"

Inheritance diagram for clang::PragmaNamespace:
Inheritance graph
[legend]

Public Member Functions

 PragmaNamespace (StringRef Name)
 
PragmaHandlerFindHandler (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
 
PragmaNamespacegetIfNamespace () 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 PragmaNamespacegetIfNamespace ()
 getIfNamespace - If this is a namespace, return it.
 

Detailed Description

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.

Definition at line 96 of file Pragma.h.

Constructor & Destructor Documentation

◆ PragmaNamespace()

clang::PragmaNamespace::PragmaNamespace ( StringRef  Name)
inlineexplicit

Definition at line 102 of file Pragma.h.

Member Function Documentation

◆ AddPragma()

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().

◆ FindHandler()

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().

◆ getIfNamespace()

PragmaNamespace * clang::PragmaNamespace::getIfNamespace ( )
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().

◆ HandlePragma()

void PragmaNamespace::HandlePragma ( Preprocessor PP,
PragmaIntroducer  Introducer,
Token Tok 
)
overridevirtual

◆ IsEmpty()

bool clang::PragmaNamespace::IsEmpty ( ) const
inline

Definition at line 118 of file Pragma.h.

Referenced by clang::Preprocessor::RemovePragmaHandler().

◆ 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().


The documentation for this class was generated from the following files: