1 //===---- ParserPragmas.h - Language specific pragmas -----------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines #pragma handlers for language specific pragmas.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_CLANG_PARSE_PARSEPRAGMA_H
15 #define LLVM_CLANG_PARSE_PARSEPRAGMA_H
17 #include "clang/Lex/Pragma.h"
23 class PragmaAlignHandler : public PragmaHandler {
26 explicit PragmaAlignHandler(Sema &A) : PragmaHandler("align"), Actions(A) {}
28 virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
32 class PragmaGCCVisibilityHandler : public PragmaHandler {
35 explicit PragmaGCCVisibilityHandler(Sema &A) : PragmaHandler("visibility"),
38 virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
42 class PragmaOptionsHandler : public PragmaHandler {
45 explicit PragmaOptionsHandler(Sema &A) : PragmaHandler("options"),
48 virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
52 class PragmaPackHandler : public PragmaHandler {
55 explicit PragmaPackHandler(Sema &A) : PragmaHandler("pack"),
58 virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
62 class PragmaMSStructHandler : public PragmaHandler {
65 explicit PragmaMSStructHandler(Sema &A) : PragmaHandler("ms_struct"),
68 virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
72 class PragmaUnusedHandler : public PragmaHandler {
76 PragmaUnusedHandler(Sema &A, Parser& p)
77 : PragmaHandler("unused"), Actions(A), parser(p) {}
79 virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
83 class PragmaWeakHandler : public PragmaHandler {
86 explicit PragmaWeakHandler(Sema &A)
87 : PragmaHandler("weak"), Actions(A) {}
89 virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
93 class PragmaOpenCLExtensionHandler : public PragmaHandler {
97 PragmaOpenCLExtensionHandler(Sema &S, Parser& p) :
98 PragmaHandler("EXTENSION"), Actions(S), parser(p) {}
99 virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
104 class PragmaFPContractHandler : public PragmaHandler {
108 PragmaFPContractHandler(Sema &S, Parser& p) :
109 PragmaHandler("FP_CONTRACT"), Actions(S), parser(p) {}
110 virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
115 } // end namespace clang