public InvokeStm(ASyncInvokeExp node) { Node = node; if (node.GetName() is AAmbiguousNameLvalue) { AAmbiguousNameLvalue ambigious = (AAmbiguousNameLvalue) node.GetName(); AAName name = (AAName)ambigious.GetAmbiguous(); /*List<List<Node>>[] targets; List<ANamespaceDecl> namespaces = new List<ANamespaceDecl>(); /*bool b; TypeLinking.GetTargets(name, out targets, namespaces, data, null, out b); for (int i = 0; i < 3; i++) { }*/ 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 CaseASyncInvokeExp(ASyncInvokeExp node) { InASyncInvokeExp(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); } OutASyncInvokeExp(node); }