data: Saving TokenLocations in Storage

This change adds structures for saving TokenLocations in the Storage and improves the location derival in the
ASTVisitor:
* TokenLocation saves an Id of a Token. For each Token two TokenLocations are created for both start- and endpoint. They
  keep a reference to each other and know whether they are start or end.
* TokenLocationLine saves all TokenLocations in a line and the lineNumber.
* TokenLocationFile saves all TokenLocationLines of a specific file and the filePath.
* TokenLocationCollection saves multiple TokenLocationFiles.
* TokenLocation can derive it's lineNumber and filePath through references to first TokenLocationLine and from there to
  TokenLocationFile.
This commit is contained in:
Eberhard Graether
2014-07-01 10:49:12 +02:00
parent e3cf57e2ec
commit cf6d17584f
27 changed files with 1109 additions and 243 deletions
+9 -4
View File
@@ -5,11 +5,16 @@
struct ParseLocation
{
ParseLocation(const std::string& file, unsigned int line, unsigned int column);
ParseLocation(
const std::string& filePath,
unsigned int startLineNumber, unsigned int startColumnNumber,
unsigned int endLineNumber, unsigned int endColumnNumber);
const std::string file;
const unsigned int line;
const unsigned int column;
const std::string filePath;
unsigned int startLineNumber;
unsigned int startColumnNumber;
unsigned int endLineNumber;
unsigned int endColumnNumber;
};
#endif // PARSE_LOCATION_H