"Fossies" - the Fresh Open Source Software Archive

Member "cfe-9.0.0.src/include/clang/Sema/SemaConsumer.h" (19 Jan 2019, 1521 Bytes) of package /linux/misc/cfe-9.0.0.src.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "SemaConsumer.h": 8.0.1_vs_9.0.0.

    1 //===--- SemaConsumer.h - Abstract interface for AST semantics --*- C++ -*-===//
    2 //
    3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
    4 // See https://llvm.org/LICENSE.txt for license information.
    5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
    6 //
    7 //===----------------------------------------------------------------------===//
    8 //
    9 //  This file defines the SemaConsumer class, a subclass of
   10 //  ASTConsumer that is used by AST clients that also require
   11 //  additional semantic analysis.
   12 //
   13 //===----------------------------------------------------------------------===//
   14 #ifndef LLVM_CLANG_SEMA_SEMACONSUMER_H
   15 #define LLVM_CLANG_SEMA_SEMACONSUMER_H
   16 
   17 #include "clang/AST/ASTConsumer.h"
   18 
   19 namespace clang {
   20   class Sema;
   21 
   22   /// An abstract interface that should be implemented by
   23   /// clients that read ASTs and then require further semantic
   24   /// analysis of the entities in those ASTs.
   25   class SemaConsumer : public ASTConsumer {
   26     virtual void anchor();
   27   public:
   28     SemaConsumer() {
   29       ASTConsumer::SemaConsumer = true;
   30     }
   31 
   32     /// Initialize the semantic consumer with the Sema instance
   33     /// being used to perform semantic analysis on the abstract syntax
   34     /// tree.
   35     virtual void InitializeSema(Sema &S) {}
   36 
   37     /// Inform the semantic consumer that Sema is no longer available.
   38     virtual void ForgetSema() {}
   39 
   40     // isa/cast/dyn_cast support
   41     static bool classof(const ASTConsumer *Consumer) {
   42       return Consumer->SemaConsumer;
   43     }
   44   };
   45 }
   46 
   47 #endif