mirror of
https://github.com/Ratstail91/Mementos.git
synced 2025-11-29 02:24:28 +11:00
Committed everything
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
|
||||
namespace Ink.Runtime
|
||||
{
|
||||
public class DebugMetadata
|
||||
{
|
||||
public int startLineNumber = 0;
|
||||
public int endLineNumber = 0;
|
||||
public int startCharacterNumber = 0;
|
||||
public int endCharacterNumber = 0;
|
||||
public string fileName = null;
|
||||
public string sourceName = null;
|
||||
|
||||
public DebugMetadata ()
|
||||
{
|
||||
}
|
||||
|
||||
// Currently only used in VariableReference in order to
|
||||
// merge the debug metadata of a Path.Of.Indentifiers into
|
||||
// one single range.
|
||||
public DebugMetadata Merge(DebugMetadata dm)
|
||||
{
|
||||
var newDebugMetadata = new DebugMetadata();
|
||||
|
||||
// These are not supposed to be differ between 'this' and 'dm'.
|
||||
newDebugMetadata.fileName = fileName;
|
||||
newDebugMetadata.sourceName = sourceName;
|
||||
|
||||
if (startLineNumber < dm.startLineNumber)
|
||||
{
|
||||
newDebugMetadata.startLineNumber = startLineNumber;
|
||||
newDebugMetadata.startCharacterNumber = startCharacterNumber;
|
||||
}
|
||||
else if (startLineNumber > dm.startLineNumber)
|
||||
{
|
||||
newDebugMetadata.startLineNumber = dm.startLineNumber;
|
||||
newDebugMetadata.startCharacterNumber = dm.startCharacterNumber;
|
||||
}
|
||||
else
|
||||
{
|
||||
newDebugMetadata.startLineNumber = startLineNumber;
|
||||
newDebugMetadata.startCharacterNumber = Math.Min(startCharacterNumber, dm.startCharacterNumber);
|
||||
}
|
||||
|
||||
if (endLineNumber > dm.endLineNumber)
|
||||
{
|
||||
newDebugMetadata.endLineNumber = endLineNumber;
|
||||
newDebugMetadata.endCharacterNumber = endCharacterNumber;
|
||||
}
|
||||
else if (endLineNumber < dm.endLineNumber)
|
||||
{
|
||||
newDebugMetadata.endLineNumber = dm.endLineNumber;
|
||||
newDebugMetadata.endCharacterNumber = dm.endCharacterNumber;
|
||||
}
|
||||
else
|
||||
{
|
||||
newDebugMetadata.endLineNumber = endLineNumber;
|
||||
newDebugMetadata.endCharacterNumber = Math.Max(endCharacterNumber, dm.endCharacterNumber);
|
||||
}
|
||||
|
||||
return newDebugMetadata;
|
||||
}
|
||||
|
||||
public override string ToString ()
|
||||
{
|
||||
if (fileName != null) {
|
||||
return string.Format ("line {0} of {1}", startLineNumber, fileName);
|
||||
} else {
|
||||
return "line " + startLineNumber;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user