ui: show when type is built-in (issue #2)

* renamed DefinitionType to DefinitionKind
* passing DefinitionKind from Java to C++ instead of just a single bool
* omitting to create a symbol for undefined types

fortune cookie message = Happy news is on the way to you.
This commit is contained in:
malte_langkabel
2017-01-23 15:55:29 +01:00
parent 6ea248b500
commit 2759018374
30 changed files with 214 additions and 161 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
#define ACCESS_KIND_H
enum AccessKind
{ // these values need to be the same as AccessType in Java code
{ // these values need to be the same as AccessKind in Java code
ACCESS_NONE = 0,
ACCESS_PUBLIC = 1,
ACCESS_PROTECTED = 2,
+4 -4
View File
@@ -8,7 +8,7 @@
#include "data/parser/AccessKind.h"
#include "data/parser/ReferenceKind.h"
#include "data/parser/SymbolKind.h"
#include "data/DefinitionType.h"
#include "data/DefinitionKind.h"
#include "utility/file/FileInfo.h"
#include "utility/types.h"
@@ -33,17 +33,17 @@ public:
virtual Id recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
AccessKind access, DefinitionType definitionType) = 0;
AccessKind access, DefinitionKind definitionKind) = 0;
virtual Id recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
const ParseLocation& location,
AccessKind access, DefinitionType definitionType) = 0;
AccessKind access, DefinitionKind definitionKind) = 0;
virtual Id recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
const ParseLocation& location, const ParseLocation& scopeLocation,
AccessKind access, DefinitionType definitionType) = 0;
AccessKind access, DefinitionKind definitionKind) = 0;
virtual void recordReference(
ReferenceKind referenceKind, const NameHierarchy& referencedName, const NameHierarchy& contextName,
+12 -9
View File
@@ -35,11 +35,11 @@ void ParserClientImpl::finishParsingFile()
Id ParserClientImpl::recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
AccessKind access, DefinitionType definitionType
AccessKind access, DefinitionKind definitionKind
)
{
Id nodeId = addNodeHierarchy(symbolName, symbolKindToNodeType(symbolType));
addSymbol(nodeId, definitionType);
addSymbol(nodeId, definitionKind);
addAccess(nodeId, access);
return nodeId;
}
@@ -47,10 +47,10 @@ Id ParserClientImpl::recordSymbol(
Id ParserClientImpl::recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
const ParseLocation& location,
AccessKind access, DefinitionType definitionType
AccessKind access, DefinitionKind definitionKind
)
{
Id nodeId = recordSymbol(symbolName, symbolType, access, definitionType);
Id nodeId = recordSymbol(symbolName, symbolType, access, definitionKind);
addSourceLocation(nodeId, location, locationTypeToInt(LOCATION_TOKEN));
return nodeId;
}
@@ -58,10 +58,10 @@ Id ParserClientImpl::recordSymbol(
Id ParserClientImpl::recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
const ParseLocation& location, const ParseLocation& scopeLocation,
AccessKind access, DefinitionType definitionType
AccessKind access, DefinitionKind definitionKind
)
{
Id nodeId = recordSymbol(symbolName, symbolType, location, access, definitionType);
Id nodeId = recordSymbol(symbolName, symbolType, location, access, definitionKind);
addSourceLocation(nodeId, scopeLocation, locationTypeToInt(LOCATION_SCOPE));
return nodeId;
}
@@ -236,17 +236,20 @@ void ParserClientImpl::addFile(Id id, const FilePath& filePath, const std::strin
return;
}
return m_storage->addFile(id, filePath.str(), modificationTime);
m_storage->addFile(id, filePath.str(), modificationTime);
}
void ParserClientImpl::addSymbol(Id id, DefinitionType definitionType)
void ParserClientImpl::addSymbol(Id id, DefinitionKind definitionKind)
{
if (!m_storage)
{
return;
}
return m_storage->addSymbol(id, definitionTypeToInt(definitionType));
if (definitionKind != DEFINITION_NONE)
{
m_storage->addSymbol(id, definitionKindToInt(definitionKind));
}
}
Id ParserClientImpl::addEdge(int type, Id sourceId, Id targetId)
+5 -5
View File
@@ -8,7 +8,7 @@
#include "data/IntermediateStorage.h"
#include "data/graph/token_component/TokenComponentAccess.h"
#include "data/DefinitionType.h"
#include "data/DefinitionKind.h"
class ParserClientImpl: public ParserClient
{
@@ -24,17 +24,17 @@ public:
virtual Id recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
AccessKind access, DefinitionType definitionType);
AccessKind access, DefinitionKind definitionKind);
virtual Id recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
const ParseLocation& location,
AccessKind access, DefinitionType definitionType);
AccessKind access, DefinitionKind definitionKind);
virtual Id recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
const ParseLocation& location, const ParseLocation& scopeLocation,
AccessKind access, DefinitionType definitionType);
AccessKind access, DefinitionKind definitionKind);
virtual void recordReference(
ReferenceKind referenceKind, const NameHierarchy& referencedName, const NameHierarchy& contextName,
@@ -53,7 +53,7 @@ private:
Id addNode(Node::NodeType nodeType, NameHierarchy nameHierarchy);
void addFile(Id id, const FilePath& filePath, const std::string& modificationTime);
void addSymbol(Id id, DefinitionType definitionType);
void addSymbol(Id id, DefinitionKind definitionKind);
Id addEdge(int type, Id sourceId, Id targetId);
Id addLocalSymbol(const std::string& name);
void addSourceLocation(Id elementId, const ParseLocation& location, int type);
+1 -1
View File
@@ -2,7 +2,7 @@
#define SYMBOL_KIND_H
enum SymbolKind
{ // these values need to be the same as SymbolType in Java code
{ // these values need to be the same as SymbolKind in Java code
SYMBOL_BUILTIN_TYPE = 1,
SYMBOL_CLASS = 2,
SYMBOL_ENUM = 3,