12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #pragma once
- #ifdef __GNUC__
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-parameter"
- #endif
- //===--- SemaConsumer.h - Abstract interface for AST semantics --*- C++ -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- //
- // This file defines the SemaConsumer class, a subclass of
- // ASTConsumer that is used by AST clients that also require
- // additional semantic analysis.
- //
- //===----------------------------------------------------------------------===//
- #ifndef LLVM_CLANG_SEMA_SEMACONSUMER_H
- #define LLVM_CLANG_SEMA_SEMACONSUMER_H
- #include "clang/AST/ASTConsumer.h"
- namespace clang {
- class Sema;
- /// An abstract interface that should be implemented by
- /// clients that read ASTs and then require further semantic
- /// analysis of the entities in those ASTs.
- class SemaConsumer : public ASTConsumer {
- virtual void anchor();
- public:
- SemaConsumer() {
- ASTConsumer::SemaConsumer = true;
- }
- /// Initialize the semantic consumer with the Sema instance
- /// being used to perform semantic analysis on the abstract syntax
- /// tree.
- virtual void InitializeSema(Sema &S) {}
- /// Inform the semantic consumer that Sema is no longer available.
- virtual void ForgetSema() {}
- // isa/cast/dyn_cast support
- static bool classof(const ASTConsumer *Consumer) {
- return Consumer->SemaConsumer;
- }
- };
- }
- #endif
- #ifdef __GNUC__
- #pragma GCC diagnostic pop
- #endif
|