40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
#ifndef PARSER_CLIENT_H
|
|
#define PARSER_CLIENT_H
|
|
|
|
#include <string>
|
|
|
|
#include "AccessKind.h"
|
|
#include "DefinitionKind.h"
|
|
#include "NameHierarchy.h"
|
|
#include "ParseLocation.h"
|
|
#include "ReferenceKind.h"
|
|
#include "SymbolKind.h"
|
|
#include "types.h"
|
|
|
|
class ParserClient
|
|
{
|
|
public:
|
|
virtual ~ParserClient() = default;
|
|
|
|
virtual Id recordFile(const FilePath& filePath, bool indexed) = 0;
|
|
virtual void recordFileLanguage(Id fileId, const std::wstring& languageIdentifier) = 0;
|
|
|
|
virtual Id recordSymbol(const NameHierarchy& symbolName) = 0;
|
|
virtual void recordSymbolKind(Id symbolId, SymbolKind symbolKind) = 0;
|
|
virtual void recordAccessKind(Id symbolId, AccessKind accessKind) = 0;
|
|
virtual void recordDefinitionKind(Id symbolId, DefinitionKind definitionKind) = 0;
|
|
|
|
virtual Id recordReference(ReferenceKind referenceKind, Id referencedSymbolId, Id contextSymbolId,
|
|
const ParseLocation& location) = 0;
|
|
|
|
virtual void recordLocalSymbol(const std::wstring& name, const ParseLocation& location) = 0;
|
|
virtual void recordLocation(Id elementId, const ParseLocation& location, ParseLocationType type) = 0;
|
|
virtual void recordComment(const ParseLocation& location) = 0;
|
|
|
|
virtual void recordError(const std::wstring& message, bool fatal, bool indexed, const FilePath& translationUnit, const ParseLocation& location) = 0;
|
|
|
|
virtual bool hasContent() const = 0;
|
|
};
|
|
|
|
#endif // PARSER_CLIENT_H
|