public InvokeStm(AAsyncInvokeStm node)
 {
     Node = node;
     if (node.GetName() is AAmbiguousNameLvalue)
     {
         AAmbiguousNameLvalue ambigious = (AAmbiguousNameLvalue)node.GetName();
         AAName name = (AAName)ambigious.GetAmbiguous();
         Name = (TIdentifier)name.GetIdentifier()[name.GetIdentifier().Count - 1];
         name.GetIdentifier().RemoveAt(name.GetIdentifier().Count - 1);
         if (name.GetIdentifier().Count == 0)
             Base = null;
         else
             Base = name;
     }
     else
     {
         AStructLvalue lvalue = (AStructLvalue)node.GetName();
         Name = lvalue.GetName();
         Base = lvalue.GetReceiver();
     }
 }
 public override void CaseAAsyncInvokeStm(AAsyncInvokeStm node)
 {
     InAAsyncInvokeStm(node);
     {
         Object[] temp = new Object[node.GetArgs().Count];
         node.GetArgs().CopyTo(temp, 0);
         for (int i = temp.Length - 1; i >= 0; i--)
         {
             ((PExp)temp[i]).Apply(this);
         }
     }
     if (node.GetName() != null)
     {
         node.GetName().Apply(this);
     }
     if (node.GetToken() != null)
     {
         node.GetToken().Apply(this);
     }
     OutAAsyncInvokeStm(node);
 }