1
0
forked from liza/Questionable
Questionable/QuestPathGenerator/RoslynElements/ExcelRefExtensions.cs
2024-08-17 21:01:46 +02:00

31 lines
1.2 KiB
C#

using System;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Questionable.Model.Questing;
using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory;
using static Questionable.QuestPathGenerator.RoslynShortcuts;
namespace Questionable.QuestPathGenerator.RoslynElements;
internal static class ExcelRefExtensions
{
public static ExpressionSyntax ToExpressionSyntax(this ExcelRef excelRef)
{
if (excelRef.Type == ExcelRef.EType.Key)
return ObjectCreationExpression(
IdentifierName(nameof(ExcelRef)))
.WithArgumentList(
ArgumentList(
SingletonSeparatedList(
Argument(LiteralValue(excelRef.AsKey())))));
else if (excelRef.Type == ExcelRef.EType.RowId)
return ObjectCreationExpression(
IdentifierName(nameof(ExcelRef)))
.WithArgumentList(
ArgumentList(
SingletonSeparatedList(
Argument(LiteralValue(excelRef.AsRowId())))));
else
throw new Exception($"Unsupported ExcelRef type {excelRef.Type}");
}
}