public ATokenType GetTokenType(ref String token, String token2) { var result = ATokenType.Invalid; if (token.Length == 0) { return(result); } result = TokenToRegisterBit(token); // filter these 2 words token = UStringUtils.Replace(token, "LONG ", "", true); token = UStringUtils.Replace(token, "SHORT ", "", true); token = UStringUtils.Replace(token, "FAR ", "", true); var temp = AStringUtils.ConvertHexStrToRealStr(token); AStringUtils.Val(temp, out UInt64 _, out var err); if (err == 0) { result = ATokenType.Value; token = temp; } var brp = AStringUtils.Pos("[", token); if (brp != -1) { if (UStringUtils.IndexOf(token, "YMMWORD", 0, brp) != -1) { result = ATokenType.MemoryLocation256; } else if (UStringUtils.IndexOf(token, "XMMWORD", 0, brp) != -1) { result = ATokenType.MemoryLocation128; } else if (UStringUtils.IndexOf(token, "DQWORD", 0, brp) != -1) { result = ATokenType.MemoryLocation128; } else if (UStringUtils.IndexOf(token, "TBYTE", 0, brp) != -1) { result = ATokenType.MemoryLocation80; } else if (UStringUtils.IndexOf(token, "TWORD", 0, brp) != -1) { result = ATokenType.MemoryLocation80; } else if (UStringUtils.IndexOf(token, "QWORD", 0, brp) != -1) { result = ATokenType.MemoryLocation64; } else if (UStringUtils.IndexOf(token, "DWORD", 0, brp) != -1) { result = ATokenType.MemoryLocation32; } else if (UStringUtils.IndexOf(token, "WORD", 0, brp) != -1) { result = ATokenType.MemoryLocation16; } else if (UStringUtils.IndexOf(token, "BYTE", 0, brp) != -1) { result = ATokenType.MemoryLocation8; } else { result = ATokenType.MemoryLocation; } } if (result == ATokenType.MemoryLocation) { if (token2 == "") { result = ATokenType.MemoryLocation32; return(result); } // I need the helper param to figure it out switch (TokenToRegisterBit(token2)) { case ATokenType.Register8Bit: case ATokenType.Register8BitWithPrefix: result = ATokenType.MemoryLocation8; break; case ATokenType.RegisterSReg: case ATokenType.Register16Bit: result = ATokenType.MemoryLocation16; break; case ATokenType.Register64Bit: result = ATokenType.MemoryLocation64; break; default: result = ATokenType.MemoryLocation32; break; } } return(result); }
public static int PosEx(String needle, String str, int start) { return(UStringUtils.IndexOf(str, needle, start)); }
public static int PosEx(Char needle, String str, int start) { return(UStringUtils.IndexOf(str, needle.ToString(), start)); }
public static int Pos(String needle, String str, Boolean ignoreCase) { return(UStringUtils.IndexOf(str, needle, ignoreCase)); }
public static int Pos(String needle, String str) { return(UStringUtils.IndexOf(str, needle)); }
public static int Pos(Char needle, String str) { return(UStringUtils.IndexOf(str, needle.ToString())); }