public override Node ExitInExpression(Production node) { IList childValues = this.GetChildValues(node); if (childValues.Count == 1) { this.AddFirstChildValue(node); return(node); } ExpressionElement operand = childValues[0] as ExpressionElement; childValues.RemoveAt(0); object second = childValues[0]; InElement op = default(InElement); if ((second) is IList) { op = new InElement(operand, (IList)second); } else { InvocationListElement il = new InvocationListElement(childValues, MyServices); op = new InElement(operand, il); } node.AddValue(op); return(node); }
public override Node ExitMemberExpression(Production node) { IList childValues = this.GetChildValues(node); object first = childValues[0]; if (childValues.Count == 1 && !(first is MemberElement)) { node.AddValue(first); } else { InvocationListElement list = new InvocationListElement(childValues, MyServices); node.AddValue(list); } return(node); }