Files
2026-06-04 11:42:34 +02:00

50 lines
1.2 KiB
C#

using System;
namespace System.Text.RegularExpressions.Syntax
{
// Token: 0x020002E4 RID: 740
internal class Alternation : CompositeExpression
{
// Token: 0x17000837 RID: 2103
// (get) Token: 0x06001AE3 RID: 6883 RVA: 0x000630D8 File Offset: 0x000612D8
public ExpressionCollection Alternatives
{
get
{
return base.Expressions;
}
}
// Token: 0x06001AE4 RID: 6884 RVA: 0x000630E0 File Offset: 0x000612E0
public void AddAlternative(Expression e)
{
this.Alternatives.Add(e);
}
// Token: 0x06001AE5 RID: 6885 RVA: 0x000630F0 File Offset: 0x000612F0
public override void Compile(ICompiler cmp, bool reverse)
{
LinkRef linkRef = cmp.NewLink();
foreach (object obj in this.Alternatives)
{
Expression expression = (Expression)obj;
LinkRef linkRef2 = cmp.NewLink();
cmp.EmitBranch(linkRef2);
expression.Compile(cmp, reverse);
cmp.EmitJump(linkRef);
cmp.ResolveLink(linkRef2);
cmp.EmitBranchEnd();
}
cmp.EmitFalse();
cmp.ResolveLink(linkRef);
cmp.EmitAlternationEnd();
}
// Token: 0x06001AE6 RID: 6886 RVA: 0x000631A0 File Offset: 0x000613A0
public override void GetWidth(out int min, out int max)
{
base.GetWidth(out min, out max, this.Alternatives.Count);
}
}
}