public override void Match(MatchContext context) { pattern.TryMatch (context); }
public override void Match(MatchContext context) { foreach (var pattern in patterns) { pattern.Match (context); if (!context.success) break; } }
public override void Match(MatchContext context) { if (!a.TryMatch (context)) b.Match (context); }
public override void Match(MatchContext context) { if (context.instruction == null) { context.success = false; return; } context.success = context.instruction.OpCode == opcode; context.Advance (); }
protected static Instruction GetLastMatchingInstruction(MatchContext context) { if (context.instruction == null) return null; return context.instruction.Previous; }
public bool TryMatch(MatchContext context) { var instruction = context.instruction; Match (context); if (context.success) return true; context.Reset (instruction); return false; }
public abstract void Match(MatchContext context);
public static MatchContext Match(MethodBase method, ILPattern pattern) { if (method == null) throw new ArgumentNullException ("method"); if (pattern == null) throw new ArgumentNullException ("pattern"); var instructions = method.GetInstructions (); if (instructions.Count == 0) throw new ArgumentException (); var context = new MatchContext (instructions [0]); pattern.Match (context); return context; }
public override void Match(MatchContext context) { pattern.Match (context); if (!context.success) return; var match = GetLastMatchingInstruction (context); var field = (FieldInfo) match.Operand; context.AddData (FieldKey, field); }