2022-02-12 18:30:04 +01:00
|
|
|
namespace meowlang.parser;
|
|
|
|
|
|
|
|
public record SwitchExpressionModel(Span Span, ExpressionModel Expression,
|
2022-02-13 02:41:16 +01:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|