/// <summary> /// Iterates through the tokens in the expression and extracts the arguments, if any. /// </summary> /// <returns>Returns the arguments.</returns> protected IList <Argument> CollectArguments() { // Find the argument list. ArgumentList argumentList = this.FindFirstChild <ArgumentList>(); if (argumentList != null) { List <Argument> list = new List <Argument>(); for (Argument argument = argumentList.FindFirstChild <Argument>(); argument != null; argument = argument.FindNextSibling <Argument>()) { list.Add(argument); } return(list.AsReadOnly()); } return(Argument.EmptyArgumentArray); }