protected void Signature_TextChanged(object sender, EventArgs e) { // Attempt to parse the signature. var CSignature = dlg.Signature.Text.Trim(); ProcedureBase_v1 sProc = null; bool isValid; if (!string.IsNullOrEmpty(CSignature)) { var usb = new UserSignatureBuilder(program); sProc = usb.ParseFunctionDeclaration(CSignature); isValid = (sProc != null); } else { CSignature = null; isValid = true; } EnableControls(isValid); if (isValid) { if (sProc != null) { dlg.ProcedureName.Text = sProc.Name; } EnableProcedureName(); } }
public ExternalProcedure LoadExternalProcedure(ProcedureBase_v1 sProc) { var sSig = sProc.Signature; var sser = new ProcedureSerializer(platform, this, this.defaultConvention); var sig = sser.Deserialize(sSig, platform.Architecture.CreateFrame()); //$BUGBUG: catch dupes? return(new ExternalProcedure(sProc.Name, sig) { EnclosingType = sSig.EnclosingType }); }
private bool TryParseSignature(string txtSignature, out ProcedureBase_v1 sProc) { sProc = null; if (program == null || program.Platform == null) { return(false); } // Attempt to parse the signature. var usb = new UserSignatureBuilder(program); sProc = usb.ParseFunctionDeclaration(txtSignature); return(sProc != null); }
public ExternalProcedure?LoadExternalProcedure( ProcedureBase_v1 sProc, ProcedureCharacteristics?chr = null) { if (sProc.Name is null) { return(null); } var sSig = sProc.Signature; var sser = new ProcedureSerializer(platform, this, this.defaultConvention ?? ""); var sig = sser.Deserialize(sSig, platform.Architecture.CreateFrame()); //$BUGBUG: catch dupes? if (sig is null) { return(null); } return(new ExternalProcedure(sProc.Name, sig, chr) { EnclosingType = sSig?.EnclosingType }); }