public override bool Contains(ParserContainsArgs args) { if (base.Contains(args)) return true; if (Inner != null && args.Push(this)) { var ret = Inner.Contains(args); args.Pop(); return ret; } return false; }
public override bool Contains(ParserContainsArgs args) { if (base.Contains(args)) return true; if (args.Push(this)) { foreach (var item in Items) { if (item != null && item.Contains(args)) { args.Pop(); return true; } } args.Pop(); } return false; }
public override bool IsLeftRecursive(ParserContainsArgs args) { if (base.IsLeftRecursive(args)) return true; if (Inner != null) { if (args.Push(this)) { var ret = Inner.IsLeftRecursive(args); args.Pop(); return ret; } return false; } return false; }
public override bool IsLeftRecursive(ParserContainsArgs args) { if (base.IsLeftRecursive(args)) return true; if (args.Push(this)) { var item = Items[0]; if (item != null && item.IsLeftRecursive(args)) { args.Pop(); return true; } args.Pop(); } return false; }