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

112 lines
2.3 KiB
C#

using System;
namespace System.Text.RegularExpressions.Syntax
{
// Token: 0x020002E3 RID: 739
internal class ExpressionAssertion : Assertion
{
// Token: 0x06001AD9 RID: 6873 RVA: 0x00062FA4 File Offset: 0x000611A4
public ExpressionAssertion()
{
base.Expressions.Add(null);
}
// Token: 0x17000834 RID: 2100
// (get) Token: 0x06001ADA RID: 6874 RVA: 0x00062FB8 File Offset: 0x000611B8
// (set) Token: 0x06001ADB RID: 6875 RVA: 0x00062FC0 File Offset: 0x000611C0
public bool Reverse
{
get
{
return this.reverse;
}
set
{
this.reverse = value;
}
}
// Token: 0x17000835 RID: 2101
// (get) Token: 0x06001ADC RID: 6876 RVA: 0x00062FCC File Offset: 0x000611CC
// (set) Token: 0x06001ADD RID: 6877 RVA: 0x00062FD4 File Offset: 0x000611D4
public bool Negate
{
get
{
return this.negate;
}
set
{
this.negate = value;
}
}
// Token: 0x17000836 RID: 2102
// (get) Token: 0x06001ADE RID: 6878 RVA: 0x00062FE0 File Offset: 0x000611E0
// (set) Token: 0x06001ADF RID: 6879 RVA: 0x00062FF0 File Offset: 0x000611F0
public Expression TestExpression
{
get
{
return base.Expressions[2];
}
set
{
base.Expressions[2] = value;
}
}
// Token: 0x06001AE0 RID: 6880 RVA: 0x00063000 File Offset: 0x00061200
public override void Compile(ICompiler cmp, bool reverse)
{
LinkRef linkRef = cmp.NewLink();
LinkRef linkRef2 = cmp.NewLink();
if (!this.negate)
{
cmp.EmitTest(linkRef, linkRef2);
}
else
{
cmp.EmitTest(linkRef2, linkRef);
}
this.TestExpression.Compile(cmp, this.reverse);
cmp.EmitTrue();
if (base.TrueExpression == null)
{
cmp.ResolveLink(linkRef2);
cmp.EmitFalse();
cmp.ResolveLink(linkRef);
}
else
{
cmp.ResolveLink(linkRef);
base.TrueExpression.Compile(cmp, reverse);
if (base.FalseExpression == null)
{
cmp.ResolveLink(linkRef2);
}
else
{
LinkRef linkRef3 = cmp.NewLink();
cmp.EmitJump(linkRef3);
cmp.ResolveLink(linkRef2);
base.FalseExpression.Compile(cmp, reverse);
cmp.ResolveLink(linkRef3);
}
}
}
// Token: 0x06001AE1 RID: 6881 RVA: 0x000630CC File Offset: 0x000612CC
public override bool IsComplex()
{
return true;
}
// Token: 0x040015BB RID: 5563
private bool reverse;
// Token: 0x040015BC RID: 5564
private bool negate;
}
}