112 lines
2.3 KiB
C#
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;
|
|
}
|
|
}
|