Files
Dec2017-Script-Dump/System/Text/RegularExpressions/Syntax/CaptureAssertion.cs
T
2026-06-04 11:42:34 +02:00

93 lines
2.3 KiB
C#

using System;
namespace System.Text.RegularExpressions.Syntax
{
// Token: 0x020002E2 RID: 738
internal class CaptureAssertion : Assertion
{
// Token: 0x06001AD3 RID: 6867 RVA: 0x00062E1C File Offset: 0x0006101C
public CaptureAssertion(Literal l)
{
this.literal = l;
}
// Token: 0x17000832 RID: 2098
// (get) Token: 0x06001AD4 RID: 6868 RVA: 0x00062E2C File Offset: 0x0006102C
// (set) Token: 0x06001AD5 RID: 6869 RVA: 0x00062E34 File Offset: 0x00061034
public CapturingGroup CapturingGroup
{
get
{
return this.group;
}
set
{
this.group = value;
}
}
// Token: 0x06001AD6 RID: 6870 RVA: 0x00062E40 File Offset: 0x00061040
public override void Compile(ICompiler cmp, bool reverse)
{
if (this.group == null)
{
this.Alternate.Compile(cmp, reverse);
return;
}
int index = this.group.Index;
LinkRef linkRef = cmp.NewLink();
if (base.FalseExpression == null)
{
cmp.EmitIfDefined(index, linkRef);
base.TrueExpression.Compile(cmp, reverse);
}
else
{
LinkRef linkRef2 = cmp.NewLink();
cmp.EmitIfDefined(index, linkRef2);
base.TrueExpression.Compile(cmp, reverse);
cmp.EmitJump(linkRef);
cmp.ResolveLink(linkRef2);
base.FalseExpression.Compile(cmp, reverse);
}
cmp.ResolveLink(linkRef);
}
// Token: 0x06001AD7 RID: 6871 RVA: 0x00062EDC File Offset: 0x000610DC
public override bool IsComplex()
{
if (this.group == null)
{
return this.Alternate.IsComplex();
}
return (base.TrueExpression != null && base.TrueExpression.IsComplex()) || (base.FalseExpression != null && base.FalseExpression.IsComplex()) || base.GetFixedWidth() <= 0;
}
// Token: 0x17000833 RID: 2099
// (get) Token: 0x06001AD8 RID: 6872 RVA: 0x00062F48 File Offset: 0x00061148
private ExpressionAssertion Alternate
{
get
{
if (this.alternate == null)
{
this.alternate = new ExpressionAssertion();
this.alternate.TrueExpression = base.TrueExpression;
this.alternate.FalseExpression = base.FalseExpression;
this.alternate.TestExpression = this.literal;
}
return this.alternate;
}
}
// Token: 0x040015B8 RID: 5560
private ExpressionAssertion alternate;
// Token: 0x040015B9 RID: 5561
private CapturingGroup group;
// Token: 0x040015BA RID: 5562
private Literal literal;
}
}