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; } }