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