Files
Sourcetrail/src/lib/data/parser/ParserClient.h
T

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