From 804bca823bfd13dfcf7692e33ffa01fcad43edab Mon Sep 17 00:00:00 2001 From: Yoshi Askharoun Date: Sun, 4 Feb 2024 22:23:10 -0600 Subject: [PATCH] Add Identifier property to Directive --- libs/UIX.Asm/Models/Imports.cs | 13 +++++++++++-- libs/UIX.Asm/Models/Interfaces.cs | 19 ++++++++++++++++--- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/libs/UIX.Asm/Models/Imports.cs b/libs/UIX.Asm/Models/Imports.cs index 2d95287..65b2e10 100644 --- a/libs/UIX.Asm/Models/Imports.cs +++ b/libs/UIX.Asm/Models/Imports.cs @@ -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}"; } diff --git a/libs/UIX.Asm/Models/Interfaces.cs b/libs/UIX.Asm/Models/Interfaces.cs index ce2b528..d0ddb81 100644 --- a/libs/UIX.Asm/Models/Interfaces.cs +++ b/libs/UIX.Asm/Models/Interfaces.cs @@ -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;