Module system

This commit is contained in:
nub31
2025-09-11 23:03:44 +02:00
parent 8c76f75f7c
commit 0fd1af7e60
15 changed files with 265 additions and 167 deletions

View File

@@ -1,6 +1,6 @@
namespace NubLang.Code;
public readonly struct SourceLocation : IEquatable<SourceLocation>
public readonly struct SourceLocation : IEquatable<SourceLocation>, IComparable<SourceLocation>
{
public static SourceLocation Zero => new(0, 0);
@@ -39,4 +39,10 @@ public readonly struct SourceLocation : IEquatable<SourceLocation>
public static bool operator >(SourceLocation left, SourceLocation right) => left.Line > right.Line || (left.Line == right.Line && left.Column > right.Column);
public static bool operator <=(SourceLocation left, SourceLocation right) => left.Line <= right.Line || (left.Line == right.Line && left.Column <= right.Column);
public static bool operator >=(SourceLocation left, SourceLocation right) => left.Line >= right.Line || (left.Line == right.Line && left.Column >= right.Column);
public int CompareTo(SourceLocation other)
{
var lineComparison = Line.CompareTo(other.Line);
return lineComparison != 0 ? lineComparison : Column.CompareTo(other.Column);
}
}