13#ifndef LLVM_CLANG_LIB_INTERPRETER_INCREMENTALPARSER_H
14#define LLVM_CLANG_LIB_INTERPRETER_INCREMENTALPARSER_H
16#include "llvm/ADT/StringRef.h"
17#include "llvm/Support/Error.h"
28class CompilerInstance;
31class TranslationUnitDecl;
32class IncrementalAction;
33struct PartialTranslationUnit;
44 std::unique_ptr<Parser>
P;
55 std::list<PartialTranslationUnit> &
PTUs;
59 llvm::Error &Err, std::list<PartialTranslationUnit> &
PTUs);
71 std::unique_ptr<llvm::Module> M = {});
ASTConsumer - This is an abstract interface that should be implemented by clients that read ASTs.
CompilerInstance - Helper class for managing a single instance of the Clang compiler.
A custom action enabling the incremental processing functionality.
Provides support for incremental compilation.
IncrementalAction * Act
The FrontendAction used during incremental parsing.
std::list< PartialTranslationUnit > & PTUs
virtual ~IncrementalParser()
unsigned InputCount
Counts the number of direct user input lines that have been parsed.
void CleanUpPTU(TranslationUnitDecl *MostRecentTU)
PartialTranslationUnit & RegisterPTU(TranslationUnitDecl *TU, std::unique_ptr< llvm::Module > M={})
Register a PTU produced by Parse.
std::unique_ptr< Parser > P
Parser.
ASTConsumer * Consumer
Consumer to process the produced top level decls. Owned by Act.
Sema & S
The Sema performing the incremental compilation.
Sema - This implements semantic analysis and AST building for C.
The top declaration context.
The JSON file list parser is used to communicate input to InstallAPI.
@ Parse
Parse the block; this code is always used.
@ Module
Module linkage, which indicates that the entity can be referred to from other translation units withi...
Diagnostic wrappers for TextAPI types for error reporting.
The class keeps track of various objects created as part of processing incremental inputs.