meowlang/parser/SwitchExpressionModel.cs

19 lines
554 B
C#
Raw Permalink Normal View History

2022-02-12 18:30:04 +01:00
namespace meowlang.parser;
public record SwitchExpressionModel(Span Span, ExpressionModel Expression,
List<(LiteralModel Value, ExpressionModel? Body)> Cases, ExpressionModel? Default) : ExpressionModel(Span)
{
public override IEnumerable<ModelBase> GetChildren()
{
foreach (var modelBase in base.GetChildren())
{
yield return modelBase;
}
foreach (var (condition, block) in Cases)
{
yield return condition;
if (block != null) yield return block;
}
}
}