public void Usb_ParseGlobalDeclaration_PointerToUnsignedInt() { var usb = new UserSignatureBuilder(program); var gbl = usb.ParseGlobalDeclaration("unsigned int *uiPtr"); Assert.AreEqual("uiPtr", gbl.Name); Assert.AreEqual("ptr(prim(UnsignedInt,4))", gbl.DataType.ToString()); }
public void Usb_ParseGlobalDeclaration_ArrayOfDouble() { var usb = new UserSignatureBuilder(program); var gbl = usb.ParseGlobalDeclaration("double dArr[12]"); Assert.AreEqual("dArr", gbl.Name); Assert.AreEqual("arr(prim(Real,8),12)", gbl.DataType.ToString()); }
public void Usb_ParseGlobalDeclaration_Int() { var usb = new UserSignatureBuilder(program); var gbl = usb.ParseGlobalDeclaration("int test123"); Assert.AreEqual("test123", gbl.Name); Assert.AreEqual("prim(SignedInt,4)", gbl.DataType.ToString()); }
private bool TryParseGlobal(string txtGlobal, out GlobalDataItem_v2 global) { global = null; if (program == null || program.Platform == null) { return(false); } // Attempt to parse the global declaration. var usb = new UserSignatureBuilder(program); global = usb.ParseGlobalDeclaration(txtGlobal); return(global != null); }
public void SetUserGlobal(ulong linearAddress, string decl) { var addr = Addr(linearAddress); var usb = new UserSignatureBuilder(program); var global = usb.ParseGlobalDeclaration(decl); var name = global?.Name; var dataType = global?.DataType; if (name is null || dataType is null) { throw new ArgumentException( $"Failed to parse global variable declaration: '{decl}'"); } program.User.Globals[addr] = new UserGlobal(addr, name, dataType); }
public void SetUserGlobal(Address addr, string decl) { var usb = new UserSignatureBuilder(program); var global = usb.ParseGlobalDeclaration(decl); var name = global?.Name; var dataType = global?.DataType; if (name is null || dataType is null) { throw new ArgumentException( $"Failed to parse global variable declaration: '{decl}'."); } var arch = program.Architecture; program.ModifyUserGlobal(arch, addr, dataType, name); }