private static string CheckValues(List <string> storedValue, out string err) { err = string.Empty; List <string> cleanedVal = new List <string>(); if (storedValue.Count == 0) { err = " \t- Please initialize variable." + "\r\n"; return(string.Empty); } foreach (var sv in storedValue) { string tmp = sv; //if (tmp.Length > 3) //{ // if (tmp.Substring(0, 2) == "0x") // tmp = sv.Remove(0, 2); //} tmp = tmp.Replace("0x", ""); NUM_TYPES type = DataCleaner.CheckNumberType(tmp); if ((type == NUM_TYPES.DEC) || (type == NUM_TYPES.HEX) || (type == NUM_TYPES.BIN)) { if (sv.StartsWith("0x")) { cleanedVal.Add(tmp); } else { cleanedVal.Add(Converter.ConvertToHex(tmp)); } } else { if (DataCleaner.IsNumType(tmp, @"\A[-]{0,1}$?[0-9]+\Z")) { string binValue = Converter.ConvertDecToBin(tmp); binValue = binValue.Substring(binValue.Length - 32, 32); cleanedVal.Add(Converter.ConvertBinToHex(binValue)); } else { err = " \t- Specified an invalid value (" + tmp + ") that is neither an INT nor HEX." + "\r\n"; } } } return(string.Join(",", cleanedVal)); }
private static string ExtractValue(int type, string param, out string err) { err = string.Empty; string num; if (param.StartsWith("-")) { num = param; } else { num = GetNumber(param); } if ((!string.IsNullOrEmpty(num)) && (type > 0) && (Int32.Parse(num) > 32)) { err += " \t- Parameter " + param + " has exceeded the maximum register count." + "\r\n"; return(num); } else { if (type == 0) { return("Imm_" + Converter.ConvertNumber(param)); } if (type == 1) { return(Converter.ConvertDecToBin(num)); } if ((type == 2) && (param.StartsWith("-"))) { string val = Convert.ToString(Int32.Parse(num), 2); num = val.Substring(val.Length - 12, 12); return("Imm_" + num); } else { if (type == 2) { string paramBin = Converter.ConvertDecToBin(num); num = Converter.ConvertImm(GetImmediate(param)); if (num != "0") { if (DataCleaner.CheckNumberType(num) == NUM_TYPES.OTH) { num = GetDataAddress(dataDT, num); } if (DataCleaner.IsNumType(num, @"\A[0-1]+\Z")) { return(paramBin + "," + "Imm_" + num); } else { err += " \t- Immediate value " + num + " is neither a hexadecimal, binary or decimal." + "\r\n"; } } return(paramBin); } } } return(string.Empty); }