Add Identifier property to Directive

This commit is contained in:
Yoshi Askharoun
2024-02-04 22:23:10 -06:00
parent 8bc1b983be
commit 804bca823b
2 changed files with 27 additions and 5 deletions
+11 -2
View File
@@ -1,6 +1,15 @@
namespace Microsoft.Iris.Asm.Models;
public record NamespaceImport(string Uri, string Name) : Import
public record NamespaceImport : Import
{
public override string ToString() => $".import-ns {Uri} as {Name}";
public NamespaceImport(string uri, string name) : base("ns")
{
Uri = uri;
Name = name;
}
public string Uri { get; init; }
public string Name { get; init; }
public override string ToString() => $"{base.ToString()} {Uri} as {Name}";
}
+16 -3
View File
@@ -14,11 +14,24 @@ public abstract record AsmItem : IAsmItem
internal const string DebuggerDisplay = "({Line}, {Column})";
}
public interface IDirective : IAsmItem;
public abstract record Directive : AsmItem, IDirective;
public interface IDirective : IAsmItem
{
string Identifier { get; init; }
}
public abstract record Directive(string Identifier) : AsmItem, IDirective
{
public override string ToString() => $".{Identifier}";
}
public interface IImport : IDirective;
public abstract record Import : Directive, IImport;
public abstract record Import : Directive, IImport
{
public Import(string Type) : base($"import-{Type}")
{
}
public override string ToString() => base.ToString();
}
public interface IBodyItem : IAsmItem;
public abstract record BodyItem : AsmItem, IBodyItem;