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); }
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 (args.Push(this)) { for (int i = 0; i < Items.Count; i++) { Parser item = Items[i]; if (item != null && item.IsLeftRecursive(args)) { args.Pop(); return(true); } } args.Pop(); } 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; }