public Call(MethodCallExpression callExpr)
     : base(callExpr.ToString())
 {
     _children.Add(callExpr);
 }
 void MethodCall(out Expression exp, bool popReturn)
 {
     Expect(6);
     List<object> list = new List<object>(); MethodCallExpression mexp = null; exp = null; string methodName = t.val.Replace(":","");  Token start = t;
     Expect(10);
     if (StartOf(1)) {
     CallParam(out exp);
     list.Add(exp);
     while (la.kind == 11) {
         Get();
         CallParam(out exp);
         list.Add(exp);
     }
     }
     Expect(12);
     mexp = new MethodCallExpression(methodName, list.ToArray()); mexp.PopReturnValue = popReturn; exp = mexp; SetPos(exp, start, t);
 }
 public virtual void Visit(MethodCallExpression node)
 {
 }
 public override void Visit(MethodCallExpression node)
 {
     List<string> children = PopChildren();
     Return(":" + node.MethodName + "(" + Join(", ", children) + ")");
 }