clang: lib/Interpreter/IncrementalParser.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_CLANG_LIB_INTERPRETER_INCREMENTALPARSER_H

14#define LLVM_CLANG_LIB_INTERPRETER_INCREMENTALPARSER_H

15

16#include "llvm/ADT/StringRef.h"

17#include "llvm/Support/Error.h"

18

19#include

20#include

21

22namespace llvm {

24}

25

34

35

36

37

39protected:

40

42

43

44 std::unique_ptr P;

45

46

48

49

51

52

54

55 std::list &PTUs;

56

57public:

59 llvm::Error &Err, std::list &PTUs);

61

62

63

64

66

68

69

71 std::unique_ptrllvm::Module M = {});

72

73private:

75};

76}

77

78#endif

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.

IncrementalParser(CompilerInstance &Instance, IncrementalAction *Act, llvm::Error &Err, std::list< PartialTranslationUnit > &PTUs)

IncrementalAction * Act

The FrontendAction used during incremental parsing.

Definition IncrementalParser.h:53

std::list< PartialTranslationUnit > & PTUs

Definition IncrementalParser.h:55

virtual ~IncrementalParser()

unsigned InputCount

Counts the number of direct user input lines that have been parsed.

Definition IncrementalParser.h:50

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.

Definition IncrementalParser.h:44

ASTConsumer * Consumer

Consumer to process the produced top level decls. Owned by Act.

Definition IncrementalParser.h:47

Sema & S

The Sema performing the incremental compilation.

Definition IncrementalParser.h:41

Parser - This implements a parser for the C family of languages.

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.